ingo@2709: package de.intevation.flys.artifacts.states; ingo@2709: ingo@2713: import java.util.ArrayList; ingo@2709: import java.util.List; ingo@2709: ingo@2709: import org.apache.log4j.Logger; ingo@2709: ingo@2709: import de.intevation.artifacts.CallContext; ingo@2709: ingo@2709: import de.intevation.artifactdatabase.state.Facet; ingo@2709: ingo@2709: import de.intevation.flys.artifacts.FLYSArtifact; ingo@2713: import de.intevation.flys.artifacts.MINFOArtifact; ingo@2713: import de.intevation.flys.artifacts.model.CalculationResult; ingo@2713: import de.intevation.flys.artifacts.model.DataFacet; ingo@2713: import de.intevation.flys.artifacts.model.FacetTypes; ingo@2713: import de.intevation.flys.artifacts.model.MiddleBedHeightData; ingo@2713: import de.intevation.flys.artifacts.model.MiddleBedHeightFacet; ingo@2713: import de.intevation.flys.artifacts.model.MiddleBedHeightCalculation; ingo@2709: ingo@2709: ingo@2713: public class MiddleBedHeight extends DefaultState implements FacetTypes { ingo@2709: ingo@2709: private static final Logger logger = Logger.getLogger(MiddleBedHeight.class); ingo@2709: ingo@2709: ingo@2709: @Override ingo@2709: public Object computeAdvance( ingo@2709: FLYSArtifact artifact, ingo@2709: String hash, ingo@2709: CallContext context, ingo@2709: List facets, ingo@2709: Object old ingo@2709: ) { ingo@2709: logger.debug("MiddleBedHeight.computeAdvance"); ingo@2709: ingo@2713: List newFacets = new ArrayList(); ingo@2709: ingo@2713: CalculationResult res = old instanceof CalculationResult ingo@2713: ? (CalculationResult) old ingo@2713: : new MiddleBedHeightCalculation().calculate((MINFOArtifact) artifact); ingo@2713: ingo@2713: if (facets == null || res == null) { ingo@2713: return res; ingo@2713: } ingo@2713: ingo@2713: MiddleBedHeightData[] data = (MiddleBedHeightData[]) res.getData(); ingo@2713: ingo@2713: logger.debug("Calculated " + data.length + " MiddleBedHeightData objects"); ingo@2713: ingo@2713: String id = getID(); ingo@2713: int idx = 0; ingo@2713: ingo@2713: for (MiddleBedHeightData d: data) { ingo@2713: newFacets.add(new MiddleBedHeightFacet( ingo@2713: idx, ingo@2713: MIDDLE_BED_HEIGHT, ingo@2713: buildMiddleBedHeightName(artifact, context, d), ingo@2713: ComputeType.ADVANCE, ingo@2713: id, ingo@2713: hash ingo@2713: )); ingo@2713: ingo@2713: idx++; ingo@2713: } ingo@2713: ingo@2713: Facet csv = new DataFacet( ingo@2713: CSV, "CSV data", ComputeType.ADVANCE, hash, id); ingo@2713: ingo@2713: // TODO ADD PDF FACET ingo@2713: ingo@2713: newFacets.add(csv); ingo@2713: ingo@2713: logger.debug("Created " + newFacets.size() + " new Facets."); ingo@2713: ingo@2713: facets.addAll(newFacets); ingo@2713: ingo@2713: return res; ingo@2713: } ingo@2713: ingo@2713: ingo@2713: protected String buildMiddleBedHeightName( ingo@2713: FLYSArtifact artifact, ingo@2713: CallContext cc, ingo@2713: MiddleBedHeightData data ingo@2713: ) { ingo@2713: logger.error("TODO: Implement buildMiddleBedHeightName"); ingo@2713: return "TODO: Implement buildMiddleBedHeightName"; ingo@2709: } ingo@2709: } ingo@2709: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :