Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java @ 3001:619fe13e2397
FixA: Fixed access to analysis periods.
flys-artifacts/trunk@4557 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 30 May 2012 13:03:22 +0000 |
parents | 3dd1c320cf81 |
children | e5e6363e6cba |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java Wed May 30 12:12:45 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java Wed May 30 13:03:22 2012 +0000 @@ -1,5 +1,6 @@ package de.intevation.flys.artifacts; +import java.util.ArrayList; import java.util.Arrays; import de.intevation.artifactdatabase.data.StateData; @@ -298,7 +299,6 @@ public long [][] getAnalysisPeriods() { if (analysisPeriods == null) { - /** TODO: Use real arrays here! */ StateData sd = artifact.getData("ana_data"); if (sd == null) { @@ -306,21 +306,27 @@ return null; } - try { - String data = (String)sd.getValue(); - String[] pairs = data.split(";"); - for (int i = 0; i < pairs.length; i++) { - String[] fromTo = pairs[i].split(","); - analysisPeriods = new long [][] { - { Long.parseLong(fromTo[0]), - Long.parseLong(fromTo[1]) } - }; + String data = (String)sd.getValue(); + String[] pairs = data.split(";"); + + ArrayList<long[]> aPs = new ArrayList<long[]>(pairs.length); + + for (int i = 0; i < pairs.length; i++) { + String[] fromTo = pairs[i].split(","); + if (fromTo.length >= 2) { + try { + aPs.add(new long [] { + Long.parseLong(fromTo[0]), + Long.parseLong(fromTo[1]) + }); + } + catch (NumberFormatException nfe) { + log.warn("ana_data contains no long values.", nfe); + } } } - catch (NumberFormatException nfe) { - log.warn("ana_data contains no long values."); - return null; - } + + analysisPeriods = aPs.toArray(new long[aPs.size()][]); } if (log.isDebugEnabled()) {