Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstState.java @ 9318:7b2b086e45f0
collision pdf details, ResultType refactoring, bezugswst result
author | gernotbelger |
---|---|
date | Fri, 27 Jul 2018 10:11:23 +0200 |
parents | 6ffcbb4f35d5 |
children | ddcd52d239cd |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.bundu.bezugswst; import java.util.List; import org.apache.log4j.Logger; import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.artifacts.CallContext; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.bundu.BUNDUArtifact; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.model.DataFacet; import org.dive4elements.river.artifacts.model.FacetTypes; import org.dive4elements.river.artifacts.states.DefaultState; /** * State to compute the fixation realizing (vollmer) results. * * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class BezugswstState extends DefaultState implements FacetTypes { private static final long serialVersionUID = 1L; /** The log used in this class. */ private static Logger log = Logger.getLogger(BezugswstState.class); public static final String I18N_WQ_CURVE = "fix.vollmer.wq.curve"; public static final String I18N_WQ_OUTLIER = "fix.vollmer.wq.outliers"; /** * The default constructor that initializes an empty State object. */ public BezugswstState() { } @Override public Object computeAdvance(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { log.debug("BezugswstState.computeAdvance"); // TODO: remove this old stuff, or replace it by new // final CalculationResult res; // // final FixRealizingAccess access = new FixRealizingAccess(artifact); // // if (old instanceof CalculationResult) { // res = (CalculationResult) old; // } else { // // final FixRealizingCalculation calc = new FixRealizingCalculation(access); // res = calc.calculate(); // } // // if (facets == null) { // return res; // } // // if (res.getReport().hasProblems()) { // facets.add(new ReportFacet()); // } // // final String id = getID(); // final CallMeta meta = context.getMeta(); // // final FixRealizingResult fixRes = (FixRealizingResult) res.getData(); // final WQKms[] wqkms = fixRes != null ? fixRes.getWQKms() : new WQKms[0]; // // for (int i = 0; i < wqkms.length; i++) { // String nameW = null; // String nameQ = null; // // if (access.isQ()) { // nameQ = wqkms[i].getName(); // nameW = "W(" + nameQ + ")"; // } else { // nameW = wqkms[i].getName(); // nameQ = "Q(" + nameW + ")"; // } // // final Facet wq = new FixWaterlevelFacet(i, FIX_WQ_LS, nameW, ComputeType.ADVANCE, hash, id); // // final Facet w = new FixWaterlevelFacet(i, LONGITUDINAL_W, nameW, ComputeType.ADVANCE, hash, id); // // final Facet q = new FixWaterlevelFacet(i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, hash, id); // final Facet csFacet = new CrossSectionWaterLineFacet(i, nameW); // // facets.add(wq); // facets.add(w); // facets.add(q); // facets.add(csFacet); // // // XXX: THIS CAN NOT HAPPEN! REMOVE IT! // if (wqkms[i] instanceof WQCKms) { // final String nameC = nameW.replace("benutzerdefiniert", "benutzerdefiniert [korrigiert]"); // // final Facet c = new FixWaterlevelFacet(i, DISCHARGE_LONGITUDINAL_C, nameC); // // facets.add(c); // } // } // // if (wqkms.length > 0) { // final DateFormat df = Formatter.getDateFormatter(context.getMeta(), "dd.MM.yyyy"); // final DateFormat lf = Formatter.getDateFormatter(context.getMeta(), "dd.MM.yyyy'T'HH:mm"); // // final Collection<Date> reds = fixRes.getReferenceEventsDates(); // final UniqueDateFormatter cf = new UniqueDateFormatter(df, lf, reds); // // int i = 0; // for (final Date d : reds) { // facets.add(new FixReferenceEventsFacet((1 << 9) | i, FIX_EVENTS, cf.format(d))); // i++; // } // // facets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); // // facets.add(new DataFacet(WST, "WST data", ComputeType.ADVANCE, hash, id)); // // facets.add(new DataFacet(PDF, "PDF data", ComputeType.ADVANCE, hash, id)); // } // // facets.add(new DataFacet(AT, "AT data", ComputeType.ADVANCE, hash, id)); // // facets.add(new FixWQCurveFacet(0, Resources.getMsg(meta, I18N_WQ_CURVE, I18N_WQ_CURVE) + " (" + access.getFunction() // + ")")); // // if (access.getPreprocessing()) { // facets.add(new FixOutlierFacet(0, FIX_OUTLIER, Resources.getMsg(meta, I18N_WQ_OUTLIER, I18N_WQ_OUTLIER))); // } return compute((BUNDUArtifact) artifact, context, hash, facets, old); } @Override public Object computeFeed(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { return compute((BUNDUArtifact) artifact, context, hash, facets, old); } private Object compute(final BUNDUArtifact artifact, final CallContext context, final String hash, final List<Facet> facets, final Object old) { final BezugswstCalculation s = new BezugswstCalculation(context); final CalculationResult res = s.calculate(artifact); if (facets == null) return res; final Facet csv = new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id); final Facet pdf = new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id); facets.add(csv); facets.add(pdf); return res; } }