Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java @ 704:eab5e5089d77
Merged revisions 2127-2133,2136-2137,2140,2143-2144,2146,2150-2151,2153-2154 via svnmerge from
svn+ssh://teichmann@thoe/home/projects/Geospatial/bsh-generischer-viewer/Material/SVN/flys-artifacts/branches/facets-slt
........
r2127 | ingo | 2011-06-16 09:50:56 +0200 (Do, 16 Jun 2011) | 1 line
Added a compute() method to WINFOArtifact which acts as a dispatcher for different computations. It triggers a calculation based on ComputeCallbacks that are generated by the current states.
........
r2128 | ingo | 2011-06-16 10:25:06 +0200 (Do, 16 Jun 2011) | 1 line
Moved Waterlevel state into the correct package.
........
r2129 | ingo | 2011-06-16 10:43:58 +0200 (Do, 16 Jun 2011) | 1 line
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
........
r2130 | ingo | 2011-06-16 10:57:05 +0200 (Do, 16 Jun 2011) | 1 line
Use enums to dispatch computeFeed() and computeAdvance().
........
r2131 | ingo | 2011-06-16 11:04:59 +0200 (Do, 16 Jun 2011) | 1 line
Store facets for each state.
........
r2132 | ingo | 2011-06-16 12:05:44 +0200 (Do, 16 Jun 2011) | 1 line
Generated facets for each output aspect.
........
r2133 | ingo | 2011-06-16 15:24:00 +0200 (Do, 16 Jun 2011) | 1 line
Write computed facets into artifacts describe document.
........
r2136 | ingo | 2011-06-16 16:10:49 +0200 (Do, 16 Jun 2011) | 1 line
Add index and description of facets to collections describe document.
........
r2137 | ingo | 2011-06-16 16:31:41 +0200 (Do, 16 Jun 2011) | 1 line
OutGenerators doOut() takes a facet object now instead of just its name.
........
r2140 | ingo | 2011-06-17 11:19:43 +0200 (Fr, 17 Jun 2011) | 1 line
OutGenerators use now facets to fetch necessary data.
........
r2143 | teichmann | 2011-06-17 12:40:54 +0200 (Fr, 17 Jun 2011) | 1 line
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
........
r2144 | teichmann | 2011-06-17 13:08:31 +0200 (Fr, 17 Jun 2011) | 1 line
make getGauges() more robust
........
r2146 | teichmann | 2011-06-17 13:23:57 +0200 (Fr, 17 Jun 2011) | 1 line
mico opt: inter cmps are faster than str cmps.
........
r2150 | teichmann | 2011-06-17 15:10:20 +0200 (Fr, 17 Jun 2011) | 1 line
call computeAdvance() if we want to advance.
........
r2151 | teichmann | 2011-06-17 15:45:50 +0200 (Fr, 17 Jun 2011) | 1 line
Base WST/CSV exports on facets. TODO: generate the facets.
........
r2153 | teichmann | 2011-06-17 16:03:29 +0200 (Fr, 17 Jun 2011) | 1 line
Add facet to access raw computed data.
........
r2154 | teichmann | 2011-06-17 16:37:09 +0200 (Fr, 17 Jun 2011) | 1 line
Generate data facets for the computed states.
........
flys-artifacts/trunk@2156 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 17 Jun 2011 16:17:03 +0000 |
parents | 591249171c32 708b270dfd30 |
children | 5f5e67aceb8c |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java Fri Jun 17 13:00:54 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java Fri Jun 17 16:17:03 2011 +0000 @@ -16,9 +16,10 @@ import de.intevation.artifacts.Artifact; -import de.intevation.flys.model.River; +import de.intevation.artifactdatabase.state.Facet; -import de.intevation.flys.artifacts.WINFOArtifact; +import de.intevation.flys.artifacts.FLYSArtifact; +import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WQDay; import de.intevation.flys.artifacts.resources.Resources; @@ -28,11 +29,10 @@ * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ -public class DurationCurveGenerator extends XYChartGenerator { - - public static final String I18N_DURATION_W = "chart.duration.curve.curve.w"; - public static final String I18N_DURATION_Q = "chart.duration.curve.curve.q"; - +public class DurationCurveGenerator +extends XYChartGenerator +implements FacetTypes +{ private static Logger logger = Logger.getLogger(DurationCurveGenerator.class); @@ -43,11 +43,11 @@ protected XYSeriesCollection q; - public static final String DURATION_CURVE_W = - "duration_curve.w"; + public static final String I18N_DURATION_W = + "chart.duration.curve.curve.w"; - public static final String DURATION_CURVE_Q = - "duration_curve.q"; + public static final String I18N_DURATION_Q = + "chart.duration.curve.curve.q"; public static final String I18N_CHART_TITLE = "chart.duration.curve.title"; @@ -157,25 +157,28 @@ } - public void doOut(Artifact artifact, String facet, Document attr) { - logger.debug("DurationCurveGenerator.doOut: " + facet); + @Override + public void doOut(Artifact artifact, Facet facet, Document attr) { + String name = facet != null ? facet.getName() : null; - if (facet == null || facet.length() == 0) { + logger.debug("DurationCurveGenerator.doOut: " + name); + + if (name == null || name.length() == 0) { logger.error("No facet given. Cannot create dataset."); return; } - WINFOArtifact winfo = (WINFOArtifact) artifact; - River river = winfo.getRiver(); + FLYSArtifact flys = (FLYSArtifact) artifact; + Facet f = flys.getNativeFacet(facet); - if (facet.equals(DURATION_CURVE_W)) { - doWOut(getDurationCurveData(artifact), river.getName()); + if (name.equals(DURATION_W)) { + doWOut((WQDay) f.getData(artifact, context)); } - else if (facet.equals(DURATION_CURVE_Q)) { - doQOut(getDurationCurveData(artifact), river.getName()); + else if (name.equals(DURATION_Q)) { + doQOut((WQDay) f.getData(artifact, context)); } else { - logger.warn("Unknown facet name: " + facet); + logger.warn("Unknown facet name: " + name); return; } } @@ -187,12 +190,12 @@ * @param wqdays The WQDay store that contains the Ws. * @param river The name of the river. */ - protected void doWOut(WQDay wqdays, String river) { + protected void doWOut(WQDay wqdays) { logger.debug("DurationCurveGenerator.doWOut"); // TODO find the correct series name XYSeries series = new XYSeries( - getSeriesName(river, DURATION_CURVE_W)); + getSeriesName(getRiverName(), DURATION_W)); int size = wqdays.size(); for (int i = 0; i < size; i++) { @@ -212,12 +215,12 @@ * @param wqdays The WQDay store that contains the Qs. * @param river The name of the river. */ - protected void doQOut(WQDay wqdays, String river) { + protected void doQOut(WQDay wqdays) { logger.debug("DurationCurveGenerator.doQOut"); // TODO find the correct series name XYSeries series = new XYSeries( - getSeriesName(river, DURATION_CURVE_Q)); + getSeriesName(getRiverName(), DURATION_Q)); int size = wqdays.size(); for (int i = 0; i < size; i++) { @@ -231,20 +234,6 @@ } - /** - * Returns the computed data for a duration curve based on the artifact's - * computation method. - * - * @param artifact The WINFO artifact. - * - * @return the computed data for a duration curve's W and Q facet. - */ - protected WQDay getDurationCurveData(Artifact artifact) { - WINFOArtifact winfoArtifact = (WINFOArtifact) artifact; - return winfoArtifact.getDurationCurveData(); - } - - protected String getSeriesName(String river, String type) { Object[] args = new Object[] { river }; @@ -252,14 +241,14 @@ logger.warn("No duration curve type given."); return "n/a"; } - else if (type.equals(DURATION_CURVE_W)) { + else if (type.equals(DURATION_W)) { return Resources.getMsg( context.getMeta(), I18N_DURATION_W, "W", args); } - else if (type.equals(DURATION_CURVE_Q)) { + else if (type.equals(DURATION_Q)) { return Resources.getMsg( context.getMeta(), I18N_DURATION_Q,