# HG changeset patch # User gernotbelger # Date 1528287891 -7200 # Node ID 8cc192731c7dc34020bcd1af767f7782ff785e05 # Parent 0a19a79663ddbe8bac2665b1b081b5d45f366b81 WQSelect can now handle distance-only data diff -r 0a19a79663dd -r 8cc192731c7d artifacts/src/main/java/org/dive4elements/river/artifacts/access/ComputationRangeAccess.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/ComputationRangeAccess.java Wed Jun 06 14:17:18 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/ComputationRangeAccess.java Wed Jun 06 14:24:51 2018 +0200 @@ -54,6 +54,26 @@ } } + public final double getStartKm() { + + final KM_MODE mode = getKmRangeMode(); + switch (mode) { + case RANGE: + case DISTANCE_ONLY: + return getFrom(); + + case LOCATIONS: + case NONE: + default: + final double[] locations = getLocations(); + if( locations != null && locations.length > 0 ) + // TODO: this is the old behaviour, but what happens if the user enters the values unsorted? + return locations[0]; + + return Double.NaN; + } + } + public double[] getKms() { if (isRange()) diff -r 0a19a79663dd -r 8cc192731c7d artifacts/src/main/java/org/dive4elements/river/artifacts/access/DGMAccess.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/DGMAccess.java Wed Jun 06 14:17:18 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/DGMAccess.java Wed Jun 06 14:24:51 2018 +0200 @@ -18,9 +18,6 @@ private String geoJSON; - public DGMAccess() { - } - public DGMAccess(D4EArtifact artifact) { super(artifact); } diff -r 0a19a79663dd -r 8cc192731c7d artifacts/src/main/java/org/dive4elements/river/artifacts/access/RangeAccess.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RangeAccess.java Wed Jun 06 14:17:18 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RangeAccess.java Wed Jun 06 14:24:51 2018 +0200 @@ -23,49 +23,55 @@ private static Logger log = Logger.getLogger(RangeAccess.class); public static enum KM_MODE { - RANGE, LOCATIONS, NONE - }; + RANGE, LOCATIONS, NONE, DISTANCE_ONLY + } /** The default step width between the start end end kilometer. */ public static final double DEFAULT_KM_STEPS = 0.1; - double[] kmRange; + private Double from; - Double from; + private Double to; - Double to; - - Double step; + private Double step; private KM_MODE mode; - public RangeAccess() { - } - public RangeAccess(final D4EArtifact artifact) { super(artifact); } /** Evaluate the ld_mode data of artifact. */ public KM_MODE getKmRangeMode() { - if (this.mode != null) { + if (this.mode != null) return this.mode; - } - final String modeData = getString("ld_mode"); - if (modeData == null || modeData.length() == 0) { - this.mode = KM_MODE.NONE; - } else if (modeData.equals("distance")) { - this.mode = KM_MODE.RANGE; - } else if (modeData.equals("locations")) { - this.mode = KM_MODE.LOCATIONS; - } else { - this.mode = KM_MODE.NONE; - } + final String modeData = getString("ld_mode"); + this.mode = parseRangeMode(modeData); return this.mode; } + private KM_MODE parseRangeMode(final String modeData) { + + if (modeData == null) + return KM_MODE.NONE; + + switch (modeData) { + case "distance": + return KM_MODE.RANGE; + + case "distance_only": + return KM_MODE.DISTANCE_ONLY; + + case "locations": + return KM_MODE.LOCATIONS; + + default: + return KM_MODE.NONE; + } + } + public final DoubleRange getRange() { final double from = getFrom(); final double to = getTo(); @@ -204,9 +210,9 @@ public double[] getKmRange() { // TODO store kmRange in field. switch (getKmRangeMode()) { - case RANGE: { + case RANGE: + case DISTANCE_ONLY: return getKmFromTo(); - } case LOCATIONS: { final double[] locs = getLocations(); diff -r 0a19a79663dd -r 8cc192731c7d artifacts/src/main/java/org/dive4elements/river/artifacts/access/RiverAccess.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RiverAccess.java Wed Jun 06 14:17:18 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RiverAccess.java Wed Jun 06 14:24:51 2018 +0200 @@ -24,11 +24,7 @@ private static Logger log = Logger.getLogger(RiverAccess.class); /** River name. */ - protected String river; - - - public RiverAccess() { - } + private String river; public RiverAccess(D4EArtifact artifact) { super(artifact); diff -r 0a19a79663dd -r 8cc192731c7d artifacts/src/main/java/org/dive4elements/river/artifacts/access/SQRelationAccess.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/SQRelationAccess.java Wed Jun 06 14:17:18 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/SQRelationAccess.java Wed Jun 06 14:24:51 2018 +0200 @@ -22,18 +22,15 @@ { private static Logger log = Logger.getLogger(SQRelationAccess.class); - protected Double location; + private Double location; - protected DateRange period; + private DateRange period; - protected Double outliers; + private Double outliers; private String method; - protected MeasurementStation measurementStation; - - public SQRelationAccess() { - } + private MeasurementStation measurementStation; public SQRelationAccess(D4EArtifact artifact) { super(artifact);