diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/BedQualityD50TimeRangeConfig.java @ 9522:23d97d60b889

Selection range of D50 values for tkh calculation can now be configured with a river specific table.
author gernotbelger
date Mon, 01 Oct 2018 16:37:12 +0200
parents 787fc085459b
children 8e6b9cb9486a
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/BedQualityD50TimeRangeConfig.java	Mon Oct 01 16:35:03 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/BedQualityD50TimeRangeConfig.java	Mon Oct 01 16:37:12 2018 +0200
@@ -19,6 +19,7 @@
 
 import org.dive4elements.river.artifacts.model.Calculation;
 import org.dive4elements.river.artifacts.model.DateRange;
+import org.dive4elements.river.artifacts.sinfo.tkhcalculation.BedQualityD50KmValueFinder;
 import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException;
 import org.dive4elements.river.model.River;
 
@@ -39,13 +40,17 @@
 
         private static final long serialVersionUID = 1L;
 
-        private BedQualityParseException(final String string) {
-            super(string);
+        BedQualityParseException(final String message) {
+            super(message);
+        }
+
+        BedQualityParseException(final String message, final Throwable cause) {
+            super(message, cause);
         }
     }
 
     public static synchronized DateRange getDefaults(final River river, final int soundingYear, final Calculation problems)
-            throws BedQualityParseException, IOException, TsvReaderException {
+            throws BedQualityParseException {
         return INSTANCE.getBedHeightDefaultsForRiver(river, soundingYear, problems);
     }
 
@@ -92,11 +97,11 @@
             return Integer.valueOf(value);
         }
         catch (final NumberFormatException e) {
-            throw new BedQualityParseException("Invalid input; should be year ('yyyy') or 'MIN' or 'MAX'");
+            throw new BedQualityParseException("Invalid input; should be year ('yyyy') or 'MIN' or 'MAX'", e);
         }
     }
 
-    private static class CalRange {
+    private static final class CalRange {
         private final long startTimeSounding;
         private final long endTimeSounding;
 
@@ -105,23 +110,20 @@
 
         private final static Calendar cal = Calendar.getInstance();
 
-        private Date getStartTimeQuery() {
+        public Date getStartTimeQuery() {
             return new Date(this.startTimeQuery);
         }
 
-        private Date getEndTimeQuery() {
+        public Date getEndTimeQuery() {
             return new Date(this.endTimeQuery);
         }
 
-        private CalRange(final Integer startYearSounding, final Integer endYearSounding, final Integer startYearQuery, final Integer endYearQuery) {
+        public CalRange(final Integer startYearSounding, final Integer endYearSounding, final Integer startYearQuery, final Integer endYearQuery) {
 
-            this.startTimeSounding = 1L;// (startYearSounding != null) ? getLongValForYear(startYearSounding, 0, 1) :
-                                        // BedQualityD50KmValueFinder.MIN_DATE.getTime();
-            this.startTimeQuery = 1L;// (startYearQuery != null) ? getLongValForYear(startYearQuery, 0, 1) : BedQualityD50KmValueFinder.MIN_DATE.getTime();
-            this.endTimeSounding = 1L;// (endYearSounding != null) ? getLongValForYear(endYearSounding, 11, 31) :
-                                      // BedQualityD50KmValueFinder.MAX_DATE.getTime();
-            this.endTimeQuery = 1L;// (endYearQuery != null) ? getLongValForYear(endYearQuery, 11, 31) : BedQualityD50KmValueFinder.MAX_DATE.getTime();
-
+            this.startTimeSounding = (startYearSounding != null) ? getLongValForYear(startYearSounding, 0, 1) : BedQualityD50KmValueFinder.MIN_DATE.getTime();
+            this.startTimeQuery = (startYearQuery != null) ? getLongValForYear(startYearQuery, 0, 1) : BedQualityD50KmValueFinder.MIN_DATE.getTime();
+            this.endTimeSounding = (endYearSounding != null) ? getLongValForYear(endYearSounding, 11, 31) : BedQualityD50KmValueFinder.MAX_DATE.getTime();
+            this.endTimeQuery = (endYearQuery != null) ? getLongValForYear(endYearQuery, 11, 31) : BedQualityD50KmValueFinder.MAX_DATE.getTime();
         }
 
         private long getLongValForYear(final int year, final int month0based, final int dayOfMonth) {
@@ -131,7 +133,7 @@
             return cal.getTimeInMillis();
         }
 
-        private boolean isSoundingYearInRange(final int soundingYear) {
+        public boolean isSoundingYearInRange(final int soundingYear) {
             cal.clear();
 
             cal.set(soundingYear, 5, 5); // random date in the middle of the year
@@ -143,7 +145,5 @@
 
             return false;
         }
-
     }
-
-}
+}
\ No newline at end of file

http://dive4elements.wald.intevation.org