Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/MiddleBedHeight.java @ 2713:b60751cfdd6c
Start MINFO middle bed height calculation in the relevant state and creates facets for chart and csv.
flys-artifacts/trunk@4437 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 18 May 2012 09:18:39 +0000 |
parents | cd6bcca17de6 |
children | 250a370c377d |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/MiddleBedHeight.java Fri May 18 07:03:38 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/MiddleBedHeight.java Fri May 18 09:18:39 2012 +0000 @@ -1,5 +1,6 @@ package de.intevation.flys.artifacts.states; +import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; @@ -9,9 +10,16 @@ import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.FLYSArtifact; +import de.intevation.flys.artifacts.MINFOArtifact; +import de.intevation.flys.artifacts.model.CalculationResult; +import de.intevation.flys.artifacts.model.DataFacet; +import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.MiddleBedHeightData; +import de.intevation.flys.artifacts.model.MiddleBedHeightFacet; +import de.intevation.flys.artifacts.model.MiddleBedHeightCalculation; -public class MiddleBedHeight extends DefaultState { +public class MiddleBedHeight extends DefaultState implements FacetTypes { private static final Logger logger = Logger.getLogger(MiddleBedHeight.class); @@ -26,9 +34,58 @@ ) { logger.debug("MiddleBedHeight.computeAdvance"); - logger.warn("TODO: Implement MiddleBedHeight.computeAdvance"); + List<Facet> newFacets = new ArrayList<Facet>(); - return null; + CalculationResult res = old instanceof CalculationResult + ? (CalculationResult) old + : new MiddleBedHeightCalculation().calculate((MINFOArtifact) artifact); + + if (facets == null || res == null) { + return res; + } + + MiddleBedHeightData[] data = (MiddleBedHeightData[]) res.getData(); + + logger.debug("Calculated " + data.length + " MiddleBedHeightData objects"); + + String id = getID(); + int idx = 0; + + for (MiddleBedHeightData d: data) { + newFacets.add(new MiddleBedHeightFacet( + idx, + MIDDLE_BED_HEIGHT, + buildMiddleBedHeightName(artifact, context, d), + ComputeType.ADVANCE, + id, + hash + )); + + idx++; + } + + Facet csv = new DataFacet( + CSV, "CSV data", ComputeType.ADVANCE, hash, id); + + // TODO ADD PDF FACET + + newFacets.add(csv); + + logger.debug("Created " + newFacets.size() + " new Facets."); + + facets.addAll(newFacets); + + return res; + } + + + protected String buildMiddleBedHeightName( + FLYSArtifact artifact, + CallContext cc, + MiddleBedHeightData data + ) { + logger.error("TODO: Implement buildMiddleBedHeightName"); + return "TODO: Implement buildMiddleBedHeightName"; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :