Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/BedHeightAccess.java @ 6991:b656568bcb2b dc-km-filter-rr
Closing inaktive branch "dc-km-filter-rr".
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Wed, 11 Sep 2013 15:40:51 +0200 |
parents | cb4cc6414447 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.access; import java.util.List; import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.minfo.BedHeight; import de.intevation.flys.artifacts.model.minfo.BedHeightFactory; import de.intevation.flys.artifacts.states.SoundingsSelect; import de.intevation.flys.model.BedHeightSingle; import de.intevation.flys.model.BedHeightSingleValue; import gnu.trove.TIntArrayList; import org.apache.log4j.Logger; public class BedHeightAccess extends RangeAccess { private static final Logger logger = Logger.getLogger(BedHeightAccess.class); private int[] singleIDs; private int[] epochIDs; private String time; public BedHeightAccess(FLYSArtifact artifact, CallContext context) { super(artifact, context); } public Double getLowerKM() { // TODO update callers return getFrom(); } public Double getUpperKM() { // TODO update callers return getTo(); } public int[] getBedHeightSingleIDs() { if (singleIDs == null) { String data = getString("soundings"); if (data == null) { logger.warn("No 'soundings' parameter specified!"); return null; } else { logger.debug("getBedHeightSingleIDs(): data=" + data); } 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 { int i = Integer.parseInt(tmp); if (!ids.contains(i)) { ids.add(i); } } catch (NumberFormatException nfe) { logger.warn("Cannot parse int from string: '" + tmp + "'"); } } } singleIDs = ids.toNativeArray(); } return singleIDs; } public String getYearEpoch() { if (time == null) { time = getString("ye_select"); } return time; } 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; } /** * Return the {@link BedHeight} at the height_id and time of the artifact * @return {@link BedHeight} */ public BedHeight getHeight() { logger.debug("getHeight"); return BedHeightFactory.getHeight( artifact.getDataAsString("type"), Integer.parseInt(artifact.getDataAsString("height_id")), Integer.parseInt(artifact.getDataAsString("time"))); } /** * Return a {@link List} of {@link BedHeightSingleValue}s * at the range of the artifact * @return List of {@link BedHeightSingleValue}s */ public List<BedHeightSingleValue> getSingleValues() { logger.debug("getSingleValues"); BedHeightSingle single = BedHeightSingle.getBedHeightSingleById( artifact.getDataAsInteger("height_id")); return BedHeightSingleValue.getBedHeightSingleValues(single, getFrom(), getTo()); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :