# HG changeset patch # User Raimund Renkert # Date 1351864160 -3600 # Node ID 26afee1b89594628230c601b8257829c4ab9fb22 # Parent 6a65e7ef43c0052cd723cb701afaff12161f58ee Added access object for artifact containing sediment load parameters. diff -r 6a65e7ef43c0 -r 26afee1b8959 flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/SedimentLoadAccess.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/SedimentLoadAccess.java Fri Nov 02 14:49:20 2012 +0100 @@ -0,0 +1,103 @@ +package de.intevation.flys.artifacts.access; + +import gnu.trove.TIntArrayList; + +import org.apache.log4j.Logger; + +import de.intevation.flys.artifacts.FLYSArtifact; + + +public class SedimentLoadAccess +extends RiverAccess +{ + private static final Logger logger = Logger.getLogger(BedHeightAccess.class); + + private int[] singleIDs; + private int[] epochIDs; + + private Double lowerKM; + private Double upperKM; + + private String time; + private String unit; + + public SedimentLoadAccess(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 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")) { + 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 :