diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightFacet.java @ 7984:cf674b03901a facet-metadata

Bedheight facet now returns double[][]. Removed obsolete processor code.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 01 Jul 2014 13:27:53 +0200
parents 42076d94977e
children b0cee7dfd6fe
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightFacet.java	Tue Jul 01 13:25:46 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightFacet.java	Tue Jul 01 13:27:53 2014 +0200
@@ -8,6 +8,11 @@
 
 package org.dive4elements.river.artifacts.model.minfo;
 
+import gnu.trove.TDoubleArrayList;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
 import org.dive4elements.artifacts.Artifact;
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.D4EArtifact;
@@ -21,6 +26,8 @@
 extends      BlackboardDataFacet
 implements   FacetTypes {
 
+    private static final Logger logger = Logger.getLogger(BedHeightFacet.class);
+
     private String type;
 
     public BedHeightFacet(String name, String description, String type) {
@@ -50,18 +57,39 @@
              * @return List of {@link BedHeightSingleValue}s */
             BedHeightSingle single = BedHeightSingle.getBedHeightSingleById(
                     access.getHeightId());
-            return BedHeightSingleValue.getBedHeightSingleValues(single,
+            List<BedHeightSingleValue> bedheightValues =
+                BedHeightSingleValue.getBedHeightSingleValues(
+                    single,
                     access.getFrom(),
                     access.getTo());
+            double[][] values = new double[2][bedheightValues.size()];
+            int i = 0;
+            for (BedHeightSingleValue bedheightValue : bedheightValues) {
+                values[0][i] = bedheightValue.getStation();
+                values[1][i] = bedheightValue.getHeight();
+                i++;
+            }
+            return values;
         }
         else {
             /* Former doc (from BedHeightAccess):
              * Return the {@link BedHeight} at the height_id and time of the artifact
              * @return {@link BedHeight} */
-            return BedHeightFactory.getHeight(
+            BedHeightData data = BedHeightFactory.getHeight(
                 access.getType(),
                 access.getHeightId(),
                 access.getTime());
+            //data.removeNaNs();
+            TDoubleArrayList stations= data.getStations();
+            double[][] values = new double[2][stations.size()];
+            logger.debug("stations: " + stations.size());
+            for (int i = 0; i < stations.size(); i++) {
+                logger.debug("station: " + stations.get(i));
+                values[0][i] = stations.get(i);
+                logger.debug("height: " + data.getHeight(i));
+                values[1][i] = data.getHeight(i);
+            }
+            return values;
         }
     }
 

http://dive4elements.wald.intevation.org