Mercurial > dive4elements > river
changeset 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
line wrap: on
line diff
--- a/flys-artifacts/ChangeLog Fri Jun 17 14:37:09 2011 +0000 +++ b/flys-artifacts/ChangeLog Fri Jun 17 16:17:03 2011 +0000 @@ -1,3 +1,87 @@ +2011-06-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> + + Merged in the facet-slt branch to bring in the 'facet' feature. + + * doc/conf/artifacts/winfo.xml: Fixed some facets. + + * doc/conf/cache.xml: Added a "computed.values" cache to store the + results of the WINFO calculations. + + * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: + Add support for index per facet to make them unique and identifiable. + + * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: + New. Inteface to be used to access the facet names of the configuration. + + * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: New. + A facet to be used to have raw access to the computed data of an artifact. + Useful to export things like CSV and WST. + + * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: New. + Specialized facet to access the water level data stored in WQKms arrays. + + * src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java: New. + Specialized facet to access the duration data stored in WQDay data structures. + + * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Facets are + now generated dynamically from the current available ones stored with + the artifact. + + * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added + methods computeAdvance() and computeFeed() called if artifact is fed or + adance. This overwritten in subclasses to do the state depending calculations. + + * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, + src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, + src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, + src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, + src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: These + states overwrites the computeAdvance() and computeFeed() methods to do + the corresponding WINFO calculations. + + * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Calls + computeAdvance() and computeFeed() if artifact is fed or advanced. Centralized + the caching mechanism. + + * src/main/java/de/intevation/flys/exports/AbstractExporter.java, + src/main/java/de/intevation/flys/collections/AttributeParser.java, + src/main/java/de/intevation/flys/collections/OutputParser.java, + src/main/java/de/intevation/flys/collections/AttributeWriter.java, + src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: + Adjusted the code to cope with the indices of the facets. Used + DOM to access the attributes instead of XPath. Removed smaller bugs + concerning position generation. + + * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java, + src/main/java/de/intevation/flys/exports/ChartGenerator.java, + src/main/java/de/intevation/flys/exports/OutGenerator.java: + Forwarded facet references. + + * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java, + src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, + src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, + src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, + src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, + src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, + src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, + src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, + src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: + Uses facets to fetch data and generate output now. + +2011-06-17 Ingo Weinzierl <ingo@intevation.de> + + * doc/conf/artifacts/winfo.xml: Added a new parameter "wq_free" that + determines the mode of calculation 1. If it is "false" (default), + the calculation should be bound to a gauge. + + * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a + method to retrieve the information about the "wq_free" parameter. + +2011-06-17 Ingo Weinzierl <ingo@intevation.de> + + * doc/conf/artifacts/winfo.xml: Added a facet for corrected W in + computation 4. + 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java:
--- a/flys-artifacts/doc/conf/artifacts/winfo.xml Fri Jun 17 14:37:09 2011 +0000 +++ b/flys-artifacts/doc/conf/artifacts/winfo.xml Fri Jun 17 16:17:03 2011 +0000 @@ -96,6 +96,7 @@ <state id="state.winfo.wq" description="state.winfo.wq" state="de.intevation.flys.artifacts.states.WQSelect"> <data name="wq_mode" type="String" /> + <data name="wq_free" type="Boolean" /> <data name="wq_selection" type="String" /> <data name="wq_from" type="Double" /> <data name="wq_to" type="Double" />
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Fri Jun 17 14:37:09 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Fri Jun 17 16:17:03 2011 +0000 @@ -751,6 +751,7 @@ } } + public boolean isQ() { StateData mode = getData("wq_mode"); return mode != null && mode.getValue().equals("Q"); @@ -758,6 +759,26 @@ /** + * Returns true, if the parameter is set to compute data on a free range. + * Otherwise it returns false, which tells the calculation that it is bound + * to a gauge. + * + * @return true, if the calculation should compute on a free range otherwise + * false and the calculation is bound to a gauge. + */ + public boolean isFreeQ() { + StateData mode = getData("wq_free"); + String value = mode != null ? (String) mode.getValue() : null; + + if (mode == null) { + return false; + } + + return Boolean.valueOf(value); + } + + + /** * Returns the Q values based on a specified kilometer range. * * @param range A 2dim array with lower and upper kilometer range. @@ -1046,7 +1067,6 @@ return DoubleUtil.explode(from, to, step); } - /** * Computes the hash code of the entered values. *
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Fri Jun 17 14:37:09 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Fri Jun 17 16:17:03 2011 +0000 @@ -299,7 +299,6 @@ // METHODS FOR RETRIEVING COMPUTED DATA FOR DIFFERENT CHART TYPES // - /** * Returns the data that is computed by a waterlevel computation. * @@ -339,6 +338,8 @@ WQKms[] results = computeWaterlevelData( kms, qs, ws, wst, river.getKmUp()); + // TODO Introduce a caching mechanism here! + return results; } @@ -365,6 +366,8 @@ WQKms[] wqkms = calculation.calculate(wst); + // TODO: report problems to user + return wqkms; } @@ -402,6 +405,8 @@ throw new NullPointerException("No Wst found for selected river."); } + // TODO Introduce a caching mechanism here! + return computeDurationCurveData(g, wst, locations[0]); } @@ -493,6 +498,8 @@ WQKms wqkms = computeDischargeCurveData(wst, locations[0]); + // TODO Introduce a caching mechanism here! + return wqkms; }