Mercurial > dive4elements > river
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;