teichmann@5831: package org.dive4elements.river.artifacts.model; ingo@3227: ingo@3227: import org.apache.log4j.Logger; ingo@3227: teichmann@5831: import org.dive4elements.artifactdatabase.state.Facet; teichmann@5831: import org.dive4elements.artifacts.Artifact; teichmann@5831: import org.dive4elements.artifacts.CallContext; teichmann@5831: import org.dive4elements.river.artifacts.WINFOArtifact; teichmann@5831: import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; ingo@3227: ingo@3227: ingo@3227: /** ingo@3227: * Facet with the curve of a subtraction of two waterlevel-lines. ingo@3227: * TODO inherit directly from DataFacet? Check whether this Facet is obsolete. ingo@3227: */ ingo@3227: public class DifferenceCurveFacet extends WaterlevelFacet { ingo@3227: ingo@3227: private static Logger logger = Logger.getLogger(DifferenceCurveFacet.class); ingo@3227: ingo@3227: ingo@3227: public DifferenceCurveFacet() { ingo@3227: } ingo@3227: ingo@3227: public DifferenceCurveFacet( ingo@3227: int index, ingo@3227: String name, ingo@3227: String description, ingo@3227: ComputeType type, ingo@3227: String stateID, ingo@3227: String hash ingo@3227: ingo@3227: ) { ingo@3227: super(index, name, description, type, stateID, hash); ingo@3227: } ingo@3227: ingo@3227: /** ingo@3227: * Get difference curve data. ingo@3227: * @return a WKms at given index. ingo@3227: */ ingo@3227: @Override ingo@3227: public Object getData(Artifact artifact, CallContext context) { ingo@3227: WINFOArtifact winfo = (WINFOArtifact)artifact; ingo@3227: ingo@3227: CalculationResult res = (CalculationResult) ingo@3227: winfo.compute(context, hash, stateId, type, false); ingo@3227: ingo@3227: WKms [] wkms = (WKms [])res.getData(); ingo@3227: ingo@3227: WKms result = wkms[index]; ingo@3227: logger.debug("Got difference curve data (" + result.getName() ingo@3227: + ") at index: " + index); ingo@3227: ingo@3227: return result; ingo@3227: } ingo@3227: ingo@3227: ingo@3227: /** Copy deeply. */ ingo@3227: @Override ingo@3227: public Facet deepCopy() { ingo@3227: WaterlevelFacet copy = new DifferenceCurveFacet(); ingo@3227: copy.set(this); ingo@3227: copy.type = type; ingo@3227: copy.stateId = stateId; ingo@3227: copy.hash = hash; ingo@3227: return copy; ingo@3227: } ingo@3227: } ingo@3227: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :