diff artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java @ 7689:4374a8d26706

(issue1225) Unify "Width" processor
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 13 Dec 2013 15:39:05 +0100
parents 1508ee33f85f
children 8faa8cfd2385
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java	Thu Dec 12 16:26:21 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java	Fri Dec 13 15:39:05 2013 +0100
@@ -11,6 +11,8 @@
 import org.apache.log4j.Logger;
 import org.jfree.data.xy.XYSeries;
 
+import java.util.List;
+
 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.model.FacetTypes;
@@ -20,6 +22,9 @@
 import org.dive4elements.river.themes.ThemeDocument;
 
 import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult;
+import org.dive4elements.river.model.BedHeightSingleValue;
+import org.dive4elements.river.artifacts.model.minfo.BedHeightSingleData;
+
 import org.dive4elements.river.artifacts.model.minfo.MorphologicWidth;
 
 public class BedWidthProcessor extends DefaultProcessor {
@@ -49,6 +54,20 @@
         } else if (data instanceof MorphologicWidth) {
             MorphologicWidth bData = (MorphologicWidth) data;
             StyledSeriesBuilder.addPoints(series, bData.getAsArray(), true);
+        } else if (data instanceof BedHeightSingleData) {
+            BedHeightSingleData bData = (BedHeightSingleData)data;
+            double[] width = bData.getMorphWidths();
+            double[] stations = bData.getStations().toNativeArray();
+
+            for (int i = 0; i < width.length; i++) {
+                series.add(stations[i], width[i], false);
+            }
+        } else if (data instanceof List<?>) {
+            List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data;
+
+            for(BedHeightSingleValue bvalue: bData) {
+                series.add(bvalue.getStation(), bvalue.getSoundingWidth());
+            }
         } else {
             logger.error("Unknown data for facet: " + bundle.getFacetName());
         }
@@ -59,7 +78,8 @@
     @Override
     public boolean canHandle(String facettype) {
         return facettype.equals(FacetTypes.BED_DIFFERENCE_MORPH_WIDTH) ||
-            facettype.equals(FacetTypes.MORPHOLOGIC_WIDTH);
+            facettype.equals(FacetTypes.MORPHOLOGIC_WIDTH) ||
+            facettype.equals(FacetTypes.BEDHEIGHT_SOUNDING_WIDTH);
     }
 
     @Override

http://dive4elements.wald.intevation.org