rrenkert@4371: package de.intevation.flys.artifacts.access; rrenkert@4371: rrenkert@4371: import gnu.trove.TIntArrayList; rrenkert@4371: rrenkert@4371: import org.apache.log4j.Logger; rrenkert@4371: rrenkert@4371: import de.intevation.flys.artifacts.FLYSArtifact; rrenkert@4371: rrenkert@4371: rrenkert@4371: public class SedimentLoadAccess rrenkert@4371: extends RiverAccess rrenkert@4371: { rrenkert@4371: private static final Logger logger = Logger.getLogger(BedHeightAccess.class); rrenkert@4371: rrenkert@4371: private int[] singleIDs; rrenkert@4371: private int[] epochIDs; rrenkert@4371: rrenkert@4371: private Double lowerKM; rrenkert@4371: private Double upperKM; rrenkert@4371: rrenkert@4371: private String time; rrenkert@4371: private String unit; rrenkert@4371: rrenkert@4371: public SedimentLoadAccess(FLYSArtifact artifact) { rrenkert@4371: super(artifact); rrenkert@4371: } rrenkert@4371: rrenkert@4371: public Double getLowerKM() { rrenkert@4371: if (lowerKM == null) { rrenkert@4371: lowerKM = getDouble("ld_from"); rrenkert@4371: } rrenkert@4371: rrenkert@4371: return lowerKM; rrenkert@4371: } rrenkert@4371: rrenkert@4371: public Double getUpperKM() { rrenkert@4371: if (upperKM == null) { rrenkert@4371: upperKM = getDouble("ld_to"); rrenkert@4371: } rrenkert@4371: rrenkert@4371: return upperKM; rrenkert@4371: } rrenkert@4371: rrenkert@4371: public String getYearEpoch() { rrenkert@4371: if (time == null) { rrenkert@4371: time = getString("ye_select"); rrenkert@4371: } rrenkert@4371: return time; rrenkert@4371: } rrenkert@4371: rrenkert@4371: public int[] getPeriod() { rrenkert@4371: if (getYearEpoch().equals("year") ) { rrenkert@4371: Integer start = getInteger("start"); rrenkert@4371: Integer end = getInteger("end"); rrenkert@4371: if (start == null || end == null) { rrenkert@4371: logger.warn("No 'start' or 'end' parameter specified!"); rrenkert@4371: return null; rrenkert@4371: } rrenkert@4371: rrenkert@4371: return new int[]{start.intValue(), end.intValue()}; rrenkert@4371: } rrenkert@4371: return null; rrenkert@4371: } rrenkert@4371: rrenkert@4371: public int[][] getEpochs() { rrenkert@4516: if (getYearEpoch().equals("epoch") || rrenkert@4516: getYearEpoch().equals("off_epoch") rrenkert@4516: ) { rrenkert@4371: String data = getString("epochs"); rrenkert@4371: rrenkert@4371: if (data == null) { rrenkert@4371: logger.warn("No 'epochs' parameter specified!"); rrenkert@4371: return null; rrenkert@4371: } rrenkert@4371: rrenkert@4371: String[] parts = data.split(";"); rrenkert@4371: rrenkert@4371: int[][] list = new int[parts.length][]; rrenkert@4371: rrenkert@4371: for (int i = 0; i < parts.length; i++) { rrenkert@4371: String[] values = parts[i].split(","); rrenkert@4371: TIntArrayList ints = new TIntArrayList(); rrenkert@4371: try { rrenkert@4371: ints.add(Integer.parseInt(values[0])); rrenkert@4371: ints.add(Integer.parseInt(values[1])); rrenkert@4371: list[i] = ints.toNativeArray(); rrenkert@4371: } rrenkert@4371: catch (NumberFormatException nfe) { rrenkert@4371: logger.warn("Cannot parse int from string: '" + values + "'"); rrenkert@4371: } rrenkert@4371: } rrenkert@4371: return list; rrenkert@4371: } rrenkert@4371: rrenkert@4371: return null; rrenkert@4371: } rrenkert@4371: rrenkert@4371: public String getUnit () { rrenkert@4371: if (unit == null) { rrenkert@4371: unit = getString("unit"); rrenkert@4371: } rrenkert@4371: return unit; rrenkert@4371: } rrenkert@4371: } rrenkert@4371: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :