Mercurial > dive4elements > river
comparison 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 |
comparison
equal
deleted
inserted
replaced
3000:3dd1c320cf81 | 3001:619fe13e2397 |
---|---|
1 package de.intevation.flys.artifacts; | 1 package de.intevation.flys.artifacts; |
2 | 2 |
3 import java.util.ArrayList; | |
3 import java.util.Arrays; | 4 import java.util.Arrays; |
4 | 5 |
5 import de.intevation.artifactdatabase.data.StateData; | 6 import de.intevation.artifactdatabase.data.StateData; |
6 | 7 |
7 import gnu.trove.TDoubleArrayList; | 8 import gnu.trove.TDoubleArrayList; |
296 return referenceEnd; | 297 return referenceEnd; |
297 } | 298 } |
298 | 299 |
299 public long [][] getAnalysisPeriods() { | 300 public long [][] getAnalysisPeriods() { |
300 if (analysisPeriods == null) { | 301 if (analysisPeriods == null) { |
301 /** TODO: Use real arrays here! */ | |
302 StateData sd = artifact.getData("ana_data"); | 302 StateData sd = artifact.getData("ana_data"); |
303 | 303 |
304 if (sd == null) { | 304 if (sd == null) { |
305 log.warn("missing 'ana_data'"); | 305 log.warn("missing 'ana_data'"); |
306 return null; | 306 return null; |
307 } | 307 } |
308 | 308 |
309 try { | 309 String data = (String)sd.getValue(); |
310 String data = (String)sd.getValue(); | 310 String[] pairs = data.split(";"); |
311 String[] pairs = data.split(";"); | 311 |
312 for (int i = 0; i < pairs.length; i++) { | 312 ArrayList<long[]> aPs = new ArrayList<long[]>(pairs.length); |
313 String[] fromTo = pairs[i].split(","); | 313 |
314 analysisPeriods = new long [][] { | 314 for (int i = 0; i < pairs.length; i++) { |
315 { Long.parseLong(fromTo[0]), | 315 String[] fromTo = pairs[i].split(","); |
316 Long.parseLong(fromTo[1]) } | 316 if (fromTo.length >= 2) { |
317 }; | 317 try { |
318 aPs.add(new long [] { | |
319 Long.parseLong(fromTo[0]), | |
320 Long.parseLong(fromTo[1]) | |
321 }); | |
322 } | |
323 catch (NumberFormatException nfe) { | |
324 log.warn("ana_data contains no long values.", nfe); | |
325 } | |
318 } | 326 } |
319 } | 327 } |
320 catch (NumberFormatException nfe) { | 328 |
321 log.warn("ana_data contains no long values."); | 329 analysisPeriods = aPs.toArray(new long[aPs.size()][]); |
322 return null; | |
323 } | |
324 } | 330 } |
325 | 331 |
326 if (log.isDebugEnabled()) { | 332 if (log.isDebugEnabled()) { |
327 for (int i = 0; i < analysisPeriods.length; ++i) { | 333 for (int i = 0; i < analysisPeriods.length; ++i) { |
328 long [] ap = analysisPeriods[i]; | 334 long [] ap = analysisPeriods[i]; |