raimund@2651: package de.intevation.flys.artifacts.states.fixation;
raimund@2651:
sascha@2784: import de.intevation.artifactdatabase.state.Facet;
sascha@2784:
sascha@2784: import de.intevation.artifacts.CallContext;
sascha@2784:
sascha@2784: import de.intevation.flys.artifacts.FLYSArtifact;
sascha@2784: import de.intevation.flys.artifacts.FixationArtifactAccess;
sascha@2784:
sascha@2784: import de.intevation.flys.artifacts.model.CalculationResult;
ingo@2792: import de.intevation.flys.artifacts.model.DataFacet;
ingo@2792: import de.intevation.flys.artifacts.model.FacetTypes;
sascha@2784: import de.intevation.flys.artifacts.model.ReportFacet;
sascha@2784:
sascha@2784: import de.intevation.flys.artifacts.model.fixings.FixCalculation;
raimund@2651:
raimund@2651: import de.intevation.flys.artifacts.states.DefaultState;
raimund@2651:
sascha@2784: import java.util.List;
sascha@2784:
sascha@2784: import org.apache.log4j.Logger;
sascha@2784:
raimund@2651: /**
raimund@2651: * @author Raimund Renkert
raimund@2651: */
ingo@2792: public class FixationCompute
ingo@2792: extends DefaultState
ingo@2792: implements FacetTypes
ingo@2792: {
raimund@2651:
sascha@2784: /** The log used in this class. */
sascha@2784: private static Logger log = Logger.getLogger(FixationCompute.class);
raimund@2651:
raimund@2651:
raimund@2651: /**
raimund@2651: * The default constructor that initializes an empty State object.
raimund@2651: */
raimund@2651: public FixationCompute() {
raimund@2651: }
raimund@2651:
sascha@2784: @Override
sascha@2784: public Object computeAdvance(
sascha@2784: FLYSArtifact artifact,
sascha@2784: String hash,
sascha@2784: CallContext context,
sascha@2784: List facets,
sascha@2784: Object old
sascha@2784: ) {
sascha@2784: log.debug("FixationCompute.computeAdvance");
sascha@2784:
sascha@2784: CalculationResult res;
sascha@2784:
sascha@2784: if (old instanceof CalculationResult) {
sascha@2784: res = (CalculationResult)old;
sascha@2784: }
sascha@2784: else {
sascha@2784: FixationArtifactAccess access =
sascha@2784: new FixationArtifactAccess(artifact);
sascha@2784:
sascha@2784: FixCalculation calc =
sascha@2784: new FixCalculation(access);
sascha@2784:
sascha@2784: res = calc.calculate();
sascha@2784: }
sascha@2784:
sascha@2784: if (facets == null) {
sascha@2784: return res;
sascha@2784: }
sascha@2784:
sascha@2784: if (res.getReport().hasProblems()) {
sascha@2784: facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id));
sascha@2784: }
ingo@2792: facets.add(
ingo@2792: new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id));
sascha@2784:
sascha@2784: return res;
sascha@2784: }
raimund@2651: }
raimund@2651: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :