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];

http://dive4elements.wald.intevation.org