Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java @ 1096:9f88cc54570c
Set some WSPLGENJob parameters which are stored in FLYSArtifact in the Floodmap state.
flys-artifacts/trunk@2599 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 26 Aug 2011 15:01:20 +0000 |
parents | f465785ed1ae |
children | af73f196eccc |
line wrap: on
line source
package de.intevation.flys.utils; import gnu.trove.TDoubleArrayList; import de.intevation.flys.artifacts.FLYSArtifact; public class FLYSUtils { public static enum KM_MODE { RANGE, LOCATIONS, NONE }; private FLYSUtils() { } public static KM_MODE getKmRangeMode(FLYSArtifact flys) { String mode = flys.getDataAsString("ld_mode"); if (mode == null || mode.length() == 0) { return KM_MODE.NONE; } else if (mode.equals("distance")) { return KM_MODE.RANGE; } else if (mode.equals("locations")) { return KM_MODE.LOCATIONS; } else { return KM_MODE.NONE; } } public static double[] getKmRange(FLYSArtifact flys) { switch (getKmRangeMode(flys)) { case RANGE: { return getKmFromTo(flys); } case LOCATIONS: { double[] locs = getLocations(flys); return new double[] { locs[0], locs[locs.length-1] }; } case NONE: { double[] locs = getLocations(flys); if (locs != null) { return new double[] { locs[0], locs[locs.length-1] }; } else { return getKmFromTo(flys); } } } return new double[] { Double.NaN, Double.NaN }; } public static double[] getKmFromTo(FLYSArtifact flys) { String strFrom = flys.getDataAsString("ld_from"); String strTo = flys.getDataAsString("ld_to"); if (strFrom == null || strTo == null) { return null; } try { return new double[] { Double.parseDouble(strFrom), Double.parseDouble(strTo) }; } catch (NumberFormatException nfe) { return null; } } public static double[] getLocations(FLYSArtifact flys) { String locationStr = flys.getDataAsString("ld_locations"); if (locationStr == null || locationStr.length() == 0) { return null; } String[] tmp = locationStr.split(" "); TDoubleArrayList locations = new TDoubleArrayList(); for (String l: tmp) { try { locations.add(Double.parseDouble(l)); } catch (NumberFormatException nfe) { } } locations.sort(); return locations.toNativeArray(); } }