diff artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstState.java @ 9313:6ffcbb4f35d5

bundu.bezugswst first result stump
author gernotbelger
date Thu, 26 Jul 2018 15:58:08 +0200
parents 1c8eeaf6031f
children 7b2b086e45f0
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstState.java	Thu Jul 26 15:54:20 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstState.java	Thu Jul 26 15:58:08 2018 +0200
@@ -8,34 +8,17 @@
 
 package org.dive4elements.river.artifacts.bundu.bezugswst;
 
-import java.text.DateFormat;
-import java.util.Collection;
-import java.util.Date;
 import java.util.List;
 
 import org.apache.log4j.Logger;
 import org.dive4elements.artifactdatabase.state.Facet;
 import org.dive4elements.artifacts.CallContext;
-import org.dive4elements.artifacts.CallMeta;
 import org.dive4elements.river.artifacts.D4EArtifact;
-import org.dive4elements.river.artifacts.access.FixRealizingAccess;
+import org.dive4elements.river.artifacts.bundu.BUNDUArtifact;
 import org.dive4elements.river.artifacts.model.CalculationResult;
-import org.dive4elements.river.artifacts.model.CrossSectionWaterLineFacet;
 import org.dive4elements.river.artifacts.model.DataFacet;
 import org.dive4elements.river.artifacts.model.FacetTypes;
-import org.dive4elements.river.artifacts.model.ReportFacet;
-import org.dive4elements.river.artifacts.model.WQCKms;
-import org.dive4elements.river.artifacts.model.WQKms;
-import org.dive4elements.river.artifacts.model.fixings.FixOutlierFacet;
-import org.dive4elements.river.artifacts.model.fixings.FixRealizingCalculation;
-import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult;
-import org.dive4elements.river.artifacts.model.fixings.FixReferenceEventsFacet;
-import org.dive4elements.river.artifacts.model.fixings.FixWQCurveFacet;
-import org.dive4elements.river.artifacts.model.fixings.FixWaterlevelFacet;
-import org.dive4elements.river.artifacts.resources.Resources;
 import org.dive4elements.river.artifacts.states.DefaultState;
-import org.dive4elements.river.utils.Formatter;
-import org.dive4elements.river.utils.UniqueDateFormatter;
 
 /**
  * State to compute the fixation realizing (vollmer) results.
@@ -77,93 +60,120 @@
     public Object computeAdvance(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) {
         log.debug("BezugswstState.computeAdvance");
 
-        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 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);
+    }
 
-            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");
+    @Override
+    public Object computeFeed(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) {
 
-            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));
+        return compute((BUNDUArtifact) artifact, context, hash, facets, old);
+    }
 
-            facets.add(new DataFacet(WST, "WST data", ComputeType.ADVANCE, hash, id));
-
-            facets.add(new DataFacet(PDF, "PDF data", ComputeType.ADVANCE, hash, id));
-        }
+    private Object compute(final BUNDUArtifact artifact, final CallContext context, final String hash, final List<Facet> facets, final Object old) {
 
-        facets.add(new DataFacet(AT, "AT data", ComputeType.ADVANCE, hash, id));
+        final BezugswstCalculation s = new BezugswstCalculation(context);
+        final CalculationResult res = s.calculate(artifact);
 
-        facets.add(new FixWQCurveFacet(0, Resources.getMsg(meta, I18N_WQ_CURVE, I18N_WQ_CURVE) + " (" + access.getFunction() + ")"));
+        if (facets == null)
+            return res;
 
-        if (access.getPreprocessing()) {
-            facets.add(new FixOutlierFacet(0, FIX_OUTLIER, Resources.getMsg(meta, I18N_WQ_OUTLIER, I18N_WQ_OUTLIER)));
-        }
+        // if (!((List<Facet>) res).isEmpty()) {
+        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;
     }
+
 }

http://dive4elements.wald.intevation.org