Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java @ 3867:d8c99ff18db8
Refactor MINFO bed quality resultsets and facets.
flys-artifacts/trunk@5498 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Mon, 17 Sep 2012 14:38:47 +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 13:58:37 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java Mon Sep 17 14:38:47 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() }); }