Mercurial > dive4elements > river
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; } + }