diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java @ 3757:e8a90a5ce624

Added facets and chart generator for bed quality calculation. flys-artifacts/trunk@5454 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 13 Sep 2012 12:08:50 +0000
parents e560a9a10eb1
children 066e2b4d69ca
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java	Thu Sep 13 10:49:49 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java	Thu Sep 13 12:08:50 2012 +0000
@@ -11,36 +11,53 @@
 import de.intevation.flys.artifacts.access.BedQualityAccess;
 import de.intevation.flys.artifacts.model.BedQualityCalculation;
 import de.intevation.flys.artifacts.model.CalculationResult;
+import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.minfo.BedDensityFacet;
+import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet;
+import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet;
+import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet;
 import de.intevation.flys.artifacts.states.DefaultState;
 
-public class BedQualityState extends DefaultState {
 
-    private static final Logger logger = Logger.getLogger(BedQualityState.class);
+public class BedQualityState extends DefaultState implements FacetTypes {
+
+    private static final long serialVersionUID = 1L;
+
+    private static final Logger logger = Logger
+        .getLogger(BedQualityState.class);
 
     @Override
-    public Object computeAdvance(
-        FLYSArtifact artifact,
-        String       hash,
-        CallContext  context,
-        List<Facet>  facets,
-        Object       old
-    ) {
+    public Object computeAdvance(FLYSArtifact artifact, String hash,
+        CallContext context, List<Facet> facets, Object old) {
         logger.debug("BedQualityState.computeAdvance");
 
         List<Facet> newFacets = new ArrayList<Facet>();
 
         BedQualityAccess access = new BedQualityAccess(artifact);
 
-        CalculationResult res = old instanceof CalculationResult
-            ? (CalculationResult) old
+        CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old
             : new BedQualityCalculation().calculate(access);
 
         if (facets == null || res == null) {
             return res;
         }
 
+        String stateId = getID();
+
+        // TODO CREATE FACETS DEPENDING ON THE CALCULATION RESULT
+        newFacets.add(new BedDiameterFacet(0, BED_QUALITY_BED_DIAMETER,
+            "bed diameter", ComputeType.ADVANCE, stateId, hash));
+
+        newFacets.add(new BedloadDiameterFacet(0, BED_QUALITY_BEDLOAD_DIAMETER,
+            "bedload diameter", ComputeType.ADVANCE, stateId, hash));
+
+        newFacets.add(new BedPorosityFacet(0, BED_QUALITY_POROSITY, "porosity",
+            ComputeType.ADVANCE, stateId, hash));
+
+        newFacets.add(new BedDensityFacet(0, BED_QUALITY_SEDIMENT_DENSITY,
+            "density", ComputeType.ADVANCE, stateId, hash));
+
         logger.debug("Created " + newFacets.size() + " new Facets.");
-
         facets.addAll(newFacets);
 
         return res;

http://dive4elements.wald.intevation.org