sascha@2170: package de.intevation.flys.artifacts.states; sascha@2170: sascha@2195: import de.intevation.artifactdatabase.state.Facet; sascha@2195: sascha@2195: import de.intevation.artifacts.CallContext; sascha@2195: sascha@2195: import de.intevation.flys.artifacts.FLYSArtifact; sascha@2195: import de.intevation.flys.artifacts.WINFOArtifact; sascha@2195: sascha@2195: import de.intevation.flys.artifacts.model.CalculationResult; felix@2259: import de.intevation.flys.artifacts.model.DataFacet; sascha@2195: import de.intevation.flys.artifacts.model.FacetTypes; felix@2222: import de.intevation.flys.artifacts.model.ReferenceCurveFacet; sascha@2195: import de.intevation.flys.artifacts.model.ReportFacet; felix@2283: import de.intevation.flys.artifacts.model.WWQQ; sascha@2195: sascha@2195: import java.util.List; sascha@2195: sascha@2195: import org.apache.log4j.Logger; sascha@2195: felix@2251: felix@2760: /** State of WINFO in which reference curves can be produced. */ sascha@2170: public class ReferenceCurveState sascha@2170: extends DefaultState sascha@2195: implements FacetTypes sascha@2170: { felix@2259: private static Logger logger = Logger.getLogger(ReferenceCurveState.class); sascha@2195: felix@2760: sascha@2170: public ReferenceCurveState() { sascha@2170: } sascha@2195: felix@2760: sascha@2195: @Override sascha@2195: public Object computeAdvance( sascha@2195: FLYSArtifact artifact, sascha@2195: String hash, sascha@2195: CallContext context, sascha@2195: List facets, sascha@2195: Object old sascha@2195: ) { sascha@2195: if (!(artifact instanceof WINFOArtifact)) { sascha@2195: return null; sascha@2195: } sascha@2195: felix@2259: String id = getID(); felix@2259: sascha@2195: WINFOArtifact winfo = (WINFOArtifact)artifact; sascha@2195: sascha@2195: CalculationResult res = old instanceof CalculationResult sascha@2195: ? (CalculationResult)old sascha@2326: : winfo.getReferenceCurveData(context); sascha@2195: sascha@2195: if (facets == null) { sascha@2195: return res; sascha@2195: } sascha@2195: felix@2283: WWQQ [] wws = (WWQQ [])res.getData(); sascha@2195: sascha@2195: for (int i = 0; i < wws.length; ++i) { felix@2307: String wwsName = wws[i].getName(); felix@2251: facets.add(new ReferenceCurveFacet(i, felix@2251: REFERENCE_CURVE, felix@2307: wwsName felix@2307: )); sascha@2277: facets.add(new ReferenceCurveFacet(i, sascha@2277: REFERENCE_CURVE_NORMALIZED, felix@2307: wwsName felix@2307: )); sascha@2195: } sascha@2195: sascha@2195: if (wws.length > 0) { raimund@2310: logger.debug("Adding CSV and PDF data facet."); felix@2259: Facet csv = new DataFacet (CSV, "CSV data", ComputeType.ADVANCE, hash, id); raimund@2310: Facet pdf = new DataFacet (PDF, "PDF data", ComputeType.ADVANCE, hash, id); felix@2259: facets.add(csv); raimund@2310: facets.add(pdf); sascha@2195: } sascha@2195: sascha@2195: if (res.getReport().hasProblems()) { sascha@2195: facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); sascha@2195: } sascha@2195: sascha@2195: return res; sascha@2195: } sascha@2170: } sascha@2170: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :