Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/access/SedimentLoadAccess.java @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-artifacts/src/main/java/org/dive4elements/river/artifacts/access/SedimentLoadAccess.java@bd047b71ab37 |
children | 4897a58c8746 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/SedimentLoadAccess.java Thu Apr 25 15:23:37 2013 +0200 @@ -0,0 +1,98 @@ +package org.dive4elements.river.artifacts.access; + +import gnu.trove.TIntArrayList; + +import org.apache.log4j.Logger; + +import org.dive4elements.artifacts.CallContext; + +import org.dive4elements.river.artifacts.FLYSArtifact; + + +public class SedimentLoadAccess +extends RangeAccess +{ + private static final Logger logger = Logger.getLogger(BedHeightAccess.class); + + private int[] singleIDs; + private int[] epochIDs; + + private String time; + private String unit; + + public SedimentLoadAccess(FLYSArtifact artifact, CallContext context) { + super(artifact, context); + } + + public Double getLowerKM() { + // TODO update callers + return getFrom(); + } + + public Double getUpperKM() { + // TODO update callers + return getTo(); + } + + public String getYearEpoch() { + if (time == null) { + time = getString("ye_select"); + } + return time; + } + + public int[] getPeriod() { + if (getYearEpoch().equals("year") ) { + Integer start = getInteger("start"); + Integer end = getInteger("end"); + if (start == null || end == null) { + logger.warn("No 'start' or 'end' parameter specified!"); + return null; + } + + return new int[]{start.intValue(), end.intValue()}; + } + return null; + } + + public int[][] getEpochs() { + if (getYearEpoch().equals("epoch") || + getYearEpoch().equals("off_epoch") + ) { + String data = getString("epochs"); + + if (data == null) { + logger.warn("No 'epochs' parameter specified!"); + return null; + } + + String[] parts = data.split(";"); + + int[][] list = new int[parts.length][]; + + for (int i = 0; i < parts.length; i++) { + String[] values = parts[i].split(","); + TIntArrayList ints = new TIntArrayList(); + try { + ints.add(Integer.parseInt(values[0])); + ints.add(Integer.parseInt(values[1])); + list[i] = ints.toNativeArray(); + } + catch (NumberFormatException nfe) { + logger.warn("Cannot parse int from string: '" + values + "'"); + } + } + return list; + } + + return null; + } + + public String getUnit () { + if (unit == null) { + unit = getString("unit"); + } + return unit; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :