teichmann@5831: package org.dive4elements.river.artifacts.access; rrenkert@4371: rrenkert@4371: import gnu.trove.TIntArrayList; rrenkert@4371: rrenkert@4371: import org.apache.log4j.Logger; rrenkert@4371: teichmann@5831: import org.dive4elements.artifacts.CallContext; felix@4826: teichmann@5831: import org.dive4elements.river.artifacts.FLYSArtifact; rrenkert@4371: rrenkert@4371: rrenkert@4371: public class SedimentLoadAccess felix@4826: extends RangeAccess 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 String time; rrenkert@4371: private String unit; rrenkert@4371: felix@4826: public SedimentLoadAccess(FLYSArtifact artifact, CallContext context) { felix@4826: super(artifact, context); rrenkert@4371: } rrenkert@4371: rrenkert@4371: public Double getLowerKM() { felix@4826: // TODO update callers felix@4826: return getFrom(); rrenkert@4371: } rrenkert@4371: rrenkert@4371: public Double getUpperKM() { felix@4826: // TODO update callers felix@4826: return getTo(); 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 :