view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/BedHeightAccess.java @ 3252:62c9bcef0680

Fix issue705 (maĆ­n value names also in w/q-range mode). flys-artifacts/trunk@4886 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 06 Jul 2012 12:24:44 +0000
parents cdbc457e23e2
children 3c006a53e551
line wrap: on
line source
package de.intevation.flys.artifacts.access;

import gnu.trove.TIntArrayList;

import org.apache.log4j.Logger;

import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.states.SoundingsSelect;


public class BedHeightAccess extends Access {

	private static final Logger logger = Logger.getLogger(BedHeightAccess.class);


	private int[] singleIDs;
	private int[] epochIDs;

	private Double lowerKM;
	private Double upperKM;


	public BedHeightAccess(FLYSArtifact artifact) {
		super(artifact);
	}


	public Double getLowerKM() {
    	if (lowerKM == null) {
    		lowerKM = getDouble("ld_from");
    	}

    	return lowerKM;
    }


    public Double getUpperKM() {
    	if (upperKM == null) {
    		upperKM = getDouble("ld_to");
    	}

    	return upperKM;
    }


    public int[] getBedHeightSingleIDs() {
    	if (singleIDs == null) {
	        String data = getString("soundings");

	        if (data == null) {
	            logger.warn("No 'soundings' parameter specified!");
	            return null;
	        }

	        String[] parts = data.split(";");

	        TIntArrayList ids = new TIntArrayList();

	        for (String part: parts) {
	            if (part.indexOf(SoundingsSelect.PREFIX_SINGLE) >= 0) {
	                String tmp = part.replace(SoundingsSelect.PREFIX_SINGLE, "");

	                try {
	                    ids.add(Integer.parseInt(tmp));
	                }
	                catch (NumberFormatException nfe) {
	                    logger.warn("Cannot parse int from string: '" + tmp + "'");
	                }
	            }
	        }

	        singleIDs = ids.toNativeArray();
    	}

    	return singleIDs;
    }


    public int[] getBedHeightEpochIDs() {
    	if (epochIDs == null) {
	        String data = getString("soundings");

	        if (data == null) {
	            logger.warn("No 'soundings' parameter specified!");
	            return null;
	        }

	        String[] parts = data.split(";");

	        TIntArrayList ids = new TIntArrayList();

	        for (String part: parts) {
	            if (part.indexOf(SoundingsSelect.PREFIX_EPOCH) >= 0) {
	                String tmp = part.replace(SoundingsSelect.PREFIX_EPOCH, "");

	                try {
	                    ids.add(Integer.parseInt(tmp));
	                }
	                catch (NumberFormatException nfe) {
	                    logger.warn("Cannot parse int from string: '" + tmp + "'");
	                }
	            }
	        }

	        epochIDs = ids.toNativeArray();
    	}

    	return epochIDs;
    }
}

http://dive4elements.wald.intevation.org