sascha@3413: package de.intevation.flys.artifacts.states.fixation; sascha@3413: sascha@3414: import de.intevation.artifactdatabase.state.Facet; sascha@3414: sascha@3414: import de.intevation.artifacts.CallContext; sascha@3414: sascha@3414: import de.intevation.flys.artifacts.FLYSArtifact; sascha@3414: sascha@3414: import de.intevation.flys.artifacts.access.FixRealizingAccess; sascha@3414: sascha@3414: import de.intevation.flys.artifacts.model.CalculationResult; felix@3457: import de.intevation.flys.artifacts.model.FacetTypes; sascha@3414: import de.intevation.flys.artifacts.model.ReportFacet; felix@3459: import de.intevation.flys.artifacts.model.WQKms; felix@3457: import de.intevation.flys.artifacts.model.WaterlevelFacet; sascha@3414: sascha@3414: import de.intevation.flys.artifacts.model.fixings.FixRealizingCalculation; felix@3457: import de.intevation.flys.artifacts.model.fixings.FixRealizingResult; sascha@3413: sascha@3413: import de.intevation.flys.artifacts.states.DefaultState; sascha@3413: sascha@3414: import java.util.List; sascha@3414: sascha@3414: import org.apache.log4j.Logger; sascha@3413: felix@3457: sascha@3413: /** sascha@3413: * @author Raimund Renkert sascha@3413: */ felix@3457: public class FixRealizingCompute extends DefaultState implements FacetTypes { sascha@3413: sascha@3413: /** The logger used in this class. */ felix@3457: private static Logger logger = Logger.getLogger(FixRealizingCompute.class); sascha@3413: sascha@3413: /** sascha@3413: * The default constructor that initializes an empty State object. sascha@3413: */ sascha@3413: public FixRealizingCompute() { sascha@3413: } sascha@3414: sascha@3414: @Override sascha@3414: public Object computeAdvance( sascha@3414: FLYSArtifact artifact, sascha@3414: String hash, sascha@3414: CallContext context, sascha@3414: List facets, sascha@3414: Object old sascha@3414: ) { felix@3457: logger.debug("FixRealizingCompute.computeAdvance"); sascha@3414: sascha@3414: CalculationResult res; sascha@3414: sascha@3414: FixRealizingAccess access = sascha@3414: new FixRealizingAccess(artifact); sascha@3414: sascha@3414: if (old instanceof CalculationResult) { sascha@3414: res = (CalculationResult)old; sascha@3414: } sascha@3414: else { sascha@3414: FixRealizingCalculation calc = new FixRealizingCalculation(access); sascha@3414: res = calc.calculate(); sascha@3414: } sascha@3414: sascha@3414: if (facets == null) { sascha@3414: return res; sascha@3414: } sascha@3414: sascha@3414: if (res.getReport().hasProblems()) { sascha@3414: facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); sascha@3414: } sascha@3414: felix@3457: // TODO: Add more facets. felix@3457: FixRealizingResult fr = (FixRealizingResult) res.getData(); felix@3457: felix@3459: /* felix@3459: facets.add( felix@3459: new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); felix@3459: */ felix@3459: felix@3457: // WaterlevelFacet felix@3457: // Also: DataFacet and WQstuff felix@3457: // TODO naming, i18n. felix@3457: String nameW = "waterlevel"; felix@3459: String nameQ = "discharge"; felix@3459: WQKms[] wqkms = fr.getWQKms(); felix@3459: for (int i = 0; i < wqkms.length; i++) { felix@3459: facets.add(new WaterlevelFacet( felix@3459: i, LONGITUDINAL_W, nameW, ComputeType.ADVANCE, id, hash)); felix@3459: facets.add(new WaterlevelFacet( felix@3459: i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, id, hash)); felix@3459: } sascha@3414: sascha@3414: return res; sascha@3414: } sascha@3413: } sascha@3413: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :