Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java @ 3121:0b86b005bb9a
FixA: Respect the selected events and reference period correctly.
flys-artifacts/trunk@4722 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 20 Jun 2012 11:25:21 +0000 |
parents | 0b5a7a2c3724 |
children |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java Wed Jun 20 11:24:30 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java Wed Jun 20 11:25:21 2012 +0000 @@ -34,9 +34,7 @@ protected Integer qSectorStart; protected Integer qSectorEnd; - protected Long referenceStart; - protected Long referenceEnd; - + protected DateRange referencePeriod; protected DateRange [] analysisPeriods; protected int [] events; @@ -254,50 +252,32 @@ return events; } - public Long getReferenceStart() { - if (referenceStart == null) { - StateData sd = artifact.getData("ref_start"); - if (sd == null) { - log.warn("missing 'ref_start' value"); + 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 { - referenceStart = Long.valueOf((String)sd.getValue()); + 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 '" - + sd.getValue() + "' is not an integer."); + log.warn("ref_start or ref_end is not an integer."); } } - if (log.isDebugEnabled()) { - log.debug("referenceStart: '" + referenceStart + "'"); - } - - return referenceStart; - } - - public Long getReferenceEnd() { - if (referenceEnd == null) { - StateData sd = artifact.getData("ref_end"); - if (sd == null) { - log.warn("missing 'ref_end' value"); - return null; - } - try { - referenceEnd = Long.valueOf((String)sd.getValue()); - } - catch (NumberFormatException nfe) { - log.warn("ref_end '" - + sd.getValue() + "' is not an integer."); - } - } - - if (log.isDebugEnabled()) { - log.debug("referenceEnd: '" + referenceEnd + "'"); - } - - return referenceEnd; + return referencePeriod; } public DateRange [] getAnalysisPeriods() {