diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoad.java @ 4370:6a65e7ef43c0

Updated data object and factory for sediment load. * Added new data fields to object and cache key. * Fixed SQL statement in factory and fill load objects correctly. *
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 02 Nov 2012 14:48:16 +0100
parents 3051bc28ac43
children 3937c6a85db4
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoad.java	Fri Nov 02 14:44:11 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoad.java	Fri Nov 02 14:48:16 2012 +0100
@@ -1,8 +1,13 @@
 package de.intevation.flys.artifacts.model.minfo;
 
 import gnu.trove.TDoubleArrayList;
+import gnu.trove.TDoubleByteHashMap;
+import gnu.trove.TDoubleHash;
+import gnu.trove.TDoubleHashSet;
 
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Set;
 
 import org.apache.log4j.Logger;
 
@@ -19,14 +24,10 @@
     protected Date end;
     protected boolean isEpoch;
 
-    protected TDoubleArrayList sand_values;
-    protected TDoubleArrayList fine_middle_values;
-    protected TDoubleArrayList coarse_values;
-    protected TDoubleArrayList susp_sediment_values;
-    protected TDoubleArrayList susp_sand_bed_values;
-
+    protected HashMap<Double, SedimentLoadFraction> kms;
 
     public SedimentLoad() {
+        kms = new HashMap<Double, SedimentLoadFraction>();
     }
 
     public SedimentLoad(
@@ -35,6 +36,7 @@
         Date end,
         boolean isEpoch
     ) {
+        this();
         this.description = description;
         this.start = start;
         this.end = end;
@@ -73,63 +75,95 @@
         this.isEpoch = isEpoch;
     }
 
-    public void addSandValue(double value) {
-        this.sand_values.add(value);
-    }
-
-    public void addSandValues(TDoubleArrayList values) {
-        this.sand_values.add(values.toNativeArray());
-    }
-
-    public TDoubleArrayList getSandValues() {
-        return this.sand_values;
-    }
-
-    public void addFineMiddleValue(double value) {
-        this.fine_middle_values.add(value);
-    }
-
-    public void addFineMiddleValues(TDoubleArrayList values) {
-        this.fine_middle_values.add(values.toNativeArray());
-    }
-
-    public TDoubleArrayList getFineMiddleValues() {
-        return this.fine_middle_values;
-    }
-
-    public void addCoarseValue(double value) {
-        this.coarse_values.add(value);
+    public Set<Double> getKms() {
+        return kms.keySet();
     }
 
-    public void addCoarseValues(TDoubleArrayList values) {
-        this.coarse_values.add(values.toNativeArray());
-    }
-
-    public TDoubleArrayList getCoarseValues() {
-        return this.coarse_values;
-    }
-
-    public void addSuspSedimentValue(double value) {
-        this.susp_sediment_values.add(value);
-    }
-
-    public void addSuspSedimentValues(TDoubleArrayList values) {
-        this.susp_sediment_values.add(values.toNativeArray());
+    public void addKm(double km, SedimentLoadFraction fraction) {
+        kms.put(km, fraction);
     }
 
-   public TDoubleArrayList getSuspSedimentValues() {
-        return this.susp_sediment_values;
-    }
-
-    public void addSuspSandBedValue(double value) {
-        this.susp_sand_bed_values.add(value);
+    public SedimentLoadFraction getFraction(double km) {
+        if (kms.get(km) == null) {
+            return new SedimentLoadFraction();
+        }
+        return kms.get(km);
     }
 
-    public void addSuspSandBedValues(TDoubleArrayList values) {
-        this.susp_sand_bed_values.add(values.toNativeArray());
+    public void setCoarse(double km, double coarse) {
+        if (kms.containsKey(km)) {
+            kms.get(km).setCoarse(coarse);
+        }
+        else {
+            SedimentLoadFraction f = new SedimentLoadFraction();
+            f.setCoarse(coarse);
+            kms.put(km, f);
+        }
     }
 
-    public TDoubleArrayList getSuspSandBedValues() {
-        return this.susp_sand_bed_values;
+    public void setFineMiddle(double km, double fine_middle) {
+        if (kms.containsKey(km)) {
+            kms.get(km).setFine_middle(fine_middle);
+        }
+        else {
+            SedimentLoadFraction f = new SedimentLoadFraction();
+            f.setFine_middle(fine_middle);
+            kms.put(km, f);
+        }
+    }
+
+    public void setSand(double km, double sand) {
+        if (kms.containsKey(km)) {
+            kms.get(km).setSand(sand);
+        }
+        else {
+            SedimentLoadFraction f = new SedimentLoadFraction();
+            f.setSand(sand);
+            kms.put(km, f);
+        }
+    }
+
+    public void setSuspSand(double km, double susp_sand) {
+        if (kms.containsKey(km)) {
+            kms.get(km).setSusp_sand(susp_sand);
+        }
+        else {
+            SedimentLoadFraction f = new SedimentLoadFraction();
+            f.setSusp_sand(susp_sand);
+            kms.put(km, f);
+        }
+    }
+
+    public void setSuspSandBed(double km, double susp_sand_bed) {
+        if (kms.containsKey(km)) {
+            kms.get(km).setSusp_sand_bed(susp_sand_bed);
+        }
+        else {
+            SedimentLoadFraction f = new SedimentLoadFraction();
+            f.setSusp_sand_bed(susp_sand_bed);
+            kms.put(km, f);
+        }
+    }
+
+    public void setSuspSediment(double km, double susp_sediment) {
+        if (kms.containsKey(km)) {
+            kms.get(km).setSusp_sediment(susp_sediment);
+        }
+        else {
+            SedimentLoadFraction f = new SedimentLoadFraction();
+            f.setSusp_sediment(susp_sediment);
+            kms.put(km, f);
+        }
+    }
+
+    public void setTotal(double km, double total) {
+        if (kms.containsKey(km)) {
+            kms.get(km).setTotal(total);
+        }
+        else {
+            SedimentLoadFraction f = new SedimentLoadFraction();
+            f.setTotal(total);
+            kms.put(km, f);
+        }
     }
 }

http://dive4elements.wald.intevation.org