diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java @ 3784:9f9d5ada96ca

Merged revisions 5498-5499 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk ........ r5498 | rrenkert | 2012-09-17 16:38:47 +0200 (Mo, 17 Sep 2012) | 3 lines Refactor MINFO bed quality resultsets and facets. ........ r5499 | rrenkert | 2012-09-17 16:47:05 +0200 (Mo, 17 Sep 2012) | 2 lines Fixed date range in minfo bed quality result. ........ flys-artifacts/tags/2.9.1@5530 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 19 Sep 2012 14:56:13 +0000
parents 5a8f8fd5310c
children a5f65e8983be
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java	Mon Sep 17 10:12:32 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java	Wed Sep 19 14:56:13 2012 +0000
@@ -14,14 +14,16 @@
 import de.intevation.flys.artifacts.model.CalculationResult;
 import de.intevation.flys.artifacts.model.DateRange;
 import de.intevation.flys.artifacts.model.FacetTypes;
-import de.intevation.flys.artifacts.model.minfo.BedBedQualityResult;
 import de.intevation.flys.artifacts.model.minfo.BedDensityFacet;
 import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet;
-import de.intevation.flys.artifacts.model.minfo.BedLoadBedQualityResult;
+import de.intevation.flys.artifacts.model.minfo.BedDiameterResult;
+import de.intevation.flys.artifacts.model.minfo.BedParametersResult;
 import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet;
 import de.intevation.flys.artifacts.model.minfo.BedQualityCalculation;
+import de.intevation.flys.artifacts.model.minfo.BedQualityDiameterResult;
 import de.intevation.flys.artifacts.model.minfo.BedQualityResult;
 import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet;
+import de.intevation.flys.artifacts.model.minfo.BedloadDiameterResult;
 import de.intevation.flys.artifacts.resources.Resources;
 import de.intevation.flys.artifacts.states.DefaultState;
 
@@ -83,53 +85,76 @@
 
         for (int idx = 0; idx < results.length; idx++) {
             BedQualityResult result = results[idx];
-
-            if (result instanceof BedBedQualityResult) {
-                BedBedQualityResult data = (BedBedQualityResult) result;
-                newFacets.add(new BedPorosityFacet(idx,
-                    BED_QUALITY_POROSITY_TOPLAYER,
-                    createPorosityTopLayerDescription(meta, data),
-                    ComputeType.ADVANCE, stateId, hash));
-
-                newFacets.add(new BedPorosityFacet(idx,
-                    BED_QUALITY_POROSITY_SUBLAYER,
-                    createPorositySubLayerDescription(meta, data),
-                    ComputeType.ADVANCE, stateId, hash));
-
-                newFacets.add(new BedDensityFacet(idx,
-                    BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER,
-                    createDensityTopLayerDescription(meta, data),
+            DateRange range = result.getDateRange();
+            BedDiameterResult[] bedDiameter = result.getBedResults();
+            for (int j = 0; j < bedDiameter.length; j++) {
+                newFacets.add(new BedDiameterFacet((idx << 8) + j,
+                    BED_QUALITY_BED_DIAMETER_TOPLAYER,
+                    createDiameterTopLayerDescription(
+                        meta,
+                        bedDiameter[j],
+                        range),
                     ComputeType.ADVANCE, stateId, hash));
 
-                newFacets.add(new BedDensityFacet(idx,
-                    BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER,
-                    createDensitySubLayerDescription(meta, data),
+                newFacets.add(new BedDiameterFacet((idx << 8) +j,
+                    BED_QUALITY_BED_DIAMETER_SUBLAYER,
+                    createDiameterSubLayerDescription(
+                        meta,
+                        bedDiameter[j],
+                        range),
                     ComputeType.ADVANCE, stateId, hash));
+            }
+            BedloadDiameterResult[] bedloadDiameter = result.getBedloadResults();
+            for (int j = 0;  j < bedloadDiameter.length; j++) {
+                newFacets.add(new BedloadDiameterFacet(
+                    (idx << 8) + j,
+                    BED_QUALITY_BEDLOAD_DIAMETER,
+                    createDiameterDescription(
+                        meta, bedloadDiameter[j]),
+                    ComputeType.ADVANCE,
+                    stateId,
+                    hash));
 
-                newFacets.add(new BedloadDiameterFacet(idx,
-                    BED_QUALITY_BED_DIAMETER_TOPLAYER,
-                    createDiameterTopLayerDescription(meta, data),
+            }
+            BedParametersResult[] bedParameters = result.getParameters();
+            for (int j = 0; j < bedParameters.length; j++) {
+                newFacets.add(new BedPorosityFacet((idx << 8) + j,
+                    BED_QUALITY_POROSITY_TOPLAYER,
+                    createPorosityTopLayerDescription(
+                        meta,
+                        bedParameters[j],
+                        range),
                     ComputeType.ADVANCE, stateId, hash));
 
-                newFacets.add(new BedloadDiameterFacet(idx,
-                    BED_QUALITY_BED_DIAMETER_SUBLAYER,
-                    createDiameterSubLayerDescription(meta, data),
+                newFacets.add(new BedPorosityFacet((idx << 8) + j,
+                    BED_QUALITY_POROSITY_SUBLAYER,
+                    createPorositySubLayerDescription(
+                        meta,
+                        bedParameters[j],
+                        range),
                     ComputeType.ADVANCE, stateId, hash));
-            }
-            else if (result instanceof BedLoadBedQualityResult) {
-                newFacets.add(new BedDiameterFacet(idx,
-                    BED_QUALITY_BEDLOAD_DIAMETER, createDiameterDescription(
-                        meta, result), ComputeType.ADVANCE, stateId, hash));
-            }
-            else {
-                logger.warn("unknown result object: " + result.getClass());
+
+                newFacets.add(new BedDensityFacet((idx << 8) + j,
+                    BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER,
+                    createDensityTopLayerDescription(
+                        meta,
+                        bedParameters[j],
+                        range),
+                    ComputeType.ADVANCE, stateId, hash));
+
+                newFacets.add(new BedDensityFacet((idx << 8) + j,
+                    BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER,
+                    createDensitySubLayerDescription(
+                        meta,
+                        bedParameters[j],
+                        range),
+                    ComputeType.ADVANCE, stateId, hash));
             }
         }
     }
 
     protected String createPorosityTopLayerDescription(CallMeta meta,
-        BedBedQualityResult result) {
-        DateRange range = result.getDateRange();
+        BedParametersResult result, DateRange range) {
         Date from = range != null ? range.getFrom() : new Date();
         Date to = range != null ? range.getTo() : new Date();
 
@@ -139,8 +164,7 @@
     }
 
     protected String createPorositySubLayerDescription(CallMeta meta,
-        BedBedQualityResult result) {
-        DateRange range = result.getDateRange();
+        BedParametersResult result, DateRange range) {
         Date from = range != null ? range.getFrom() : new Date();
         Date to = range != null ? range.getTo() : new Date();
 
@@ -150,8 +174,7 @@
     }
 
     protected String createDensityTopLayerDescription(CallMeta meta,
-        BedBedQualityResult result) {
-        DateRange range = result.getDateRange();
+        BedParametersResult result, DateRange range) {
         Date from = range != null ? range.getFrom() : new Date();
         Date to = range != null ? range.getTo() : new Date();
 
@@ -161,8 +184,7 @@
     }
 
     protected String createDensitySubLayerDescription(CallMeta meta,
-        BedBedQualityResult result) {
-        DateRange range = result.getDateRange();
+        BedParametersResult result, DateRange range) {
         Date from = range != null ? range.getFrom() : new Date();
         Date to = range != null ? range.getTo() : new Date();
 
@@ -172,8 +194,7 @@
     }
 
     protected String createDiameterTopLayerDescription(CallMeta meta,
-        BedBedQualityResult result) {
-        DateRange range = result.getDateRange();
+        BedDiameterResult result, DateRange range) {
         Date from = range != null ? range.getFrom() : new Date();
         Date to = range != null ? range.getTo() : new Date();
 
@@ -185,8 +206,7 @@
     }
 
     protected String createDiameterSubLayerDescription(CallMeta meta,
-        BedBedQualityResult result) {
-        DateRange range = result.getDateRange();
+        BedDiameterResult result, DateRange range) {
         Date from = range != null ? range.getFrom() : new Date();
         Date to = range != null ? range.getTo() : new Date();
 
@@ -197,7 +217,7 @@
     }
 
     protected String createDiameterDescription(CallMeta meta,
-        BedQualityResult result) {
+        BedQualityDiameterResult result) {
         return Resources.getMsg(meta, I18N_FACET_BEDLOAD_DIAMETER,
             I18N_FACET_BEDLOAD_DIAMETER, new Object[] { result.getType() });
     }

http://dive4elements.wald.intevation.org