Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/FixationArtifactAccess.java @ 3394:f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
flys-artifacts/trunk@5024 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Tue, 17 Jul 2012 18:31:34 +0000 |
parents | 4a70525c5b0d |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.access; import de.intevation.artifactdatabase.data.StateData; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.DateRange; import java.util.Arrays; import java.util.Date; import org.apache.log4j.Logger; public class FixationArtifactAccess extends Access { private static Logger log = Logger.getLogger(FixationArtifactAccess.class); protected String river; protected String calculationMode; protected Double from; protected Double to; protected Double step; protected Long start; protected Long end; protected Integer qSectorStart; protected Integer qSectorEnd; protected DateRange referencePeriod; protected DateRange [] analysisPeriods; protected int [] events; protected Boolean preprocessing; protected String function; protected double [] qs; public FixationArtifactAccess() { } public FixationArtifactAccess(FLYSArtifact artifact) { super(artifact); } public String getRiver() { if (river == null) { river = getString("river"); } if (log.isDebugEnabled()) { log.debug("river: '" + river + "'"); } return river; } public String getCalculationMode() { if (calculationMode == null) { calculationMode = getString("calculation.mode"); } if (log.isDebugEnabled()) { log.debug("calculationMode: '" + calculationMode + "'"); } return calculationMode; } public Double getFrom() { if (from == null) { from = getDouble("from"); } if (log.isDebugEnabled()) { log.debug("from: '" + from + "'"); } return from; } public Double getTo() { if (to == null) { to = getDouble("to"); } if (log.isDebugEnabled()) { log.debug("to: '" + to + "'"); } return to; } public Double getStep() { if (step == null) { step = getDouble("step"); } if (log.isDebugEnabled()) { log.debug("step: '" + step + "'"); } return step; } public Long getStart() { if (start == null) { start = getLong("start"); } if (log.isDebugEnabled()) { log.debug("start: '" + start + "'"); } return start; } public Long getEnd() { if (end == null) { end = getLong("end"); } if (log.isDebugEnabled()) { log.debug("end: '" + end + "'"); } return end; } public Integer getQSectorStart() { if (qSectorStart == null) { qSectorStart = getInteger("q1"); } if (log.isDebugEnabled()) { log.debug("q1: '" + qSectorStart + "'"); } return qSectorStart; } public Integer getQSectorEnd() { if (qSectorEnd == null) { qSectorEnd = getInteger("q2"); } if (log.isDebugEnabled()) { log.debug("q2: '" + qSectorEnd + "'"); } return qSectorEnd; } public int [] getEvents() { if (events == null) { events = getIntArray("events"); } if (log.isDebugEnabled() && events != null) { log.debug("events: " + Arrays.toString(events)); } return events; } public DateRange getReferencePeriod() { if (referencePeriod == null) { StateData refStart = artifact.getData("ref_start"); StateData refEnd = artifact.getData("ref_end"); if (refStart == null || refEnd == null) { log.warn("missing 'ref_start' or 'ref_start' value"); return null; } try { long rs = Long.parseLong((String)refStart.getValue()); long re = Long.parseLong((String)refEnd .getValue()); if (rs > re) { long t = rs; rs = re; re = t; } Date from = new Date(rs); Date to = new Date(re); referencePeriod = new DateRange(from, to); } catch (NumberFormatException nfe) { log.warn("ref_start or ref_end is not an integer."); } } return referencePeriod; } public DateRange [] getAnalysisPeriods() { if (analysisPeriods == null) { analysisPeriods = getDateRange("ana_data"); } return analysisPeriods; } /** * @return DateRange object ranging from eldest to youngest date * of analysis and reference periods. */ public DateRange getDateRange() { DateRange refP = getReferencePeriod(); Date from = refP.getFrom(); Date to = refP.getTo(); DateRange[] rs = getAnalysisPeriods(); for(DateRange r : rs) { if(r.getFrom().before(from)) { from = r.getFrom(); } if(r.getTo().after(to)) { to = r.getTo(); } } return new DateRange(from, to); } public Boolean getPreprocessing() { if (preprocessing == null) { preprocessing = getBoolean("preprocessing"); } if (log.isDebugEnabled()) { log.debug("preprocessing: " + preprocessing); } return preprocessing; } public String getFunction() { if (function == null) { function = getString("function"); } if (log.isDebugEnabled()) { log.debug("function: " + function); } return function; } public double [] getQs() { if (qs == null) { qs = getDoubleArray("qs"); } if (log.isDebugEnabled() && qs != null) { log.debug("qs: " + Arrays.toString(qs)); } return qs; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :