view gnv-artifacts/doc/conf/products/timeseries/conf_timeseriespoint.xml @ 325:3eff9241ea1e

Refactoring of the Transitionmodel. Now each Transition is responsible to allocate the Data which is required to describe or feed it. gnv-artifacts/trunk@390 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 01 Dec 2009 15:58:02 +0000
parents 57a2bf630854
children e964a3d8f7bc
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?>
<artifact name="timeSeries">
<!--  This is the Artifact which represents the required Businesslogic to
      collect the required Data for rendering specified OutputFormats
      for TimeSeries on TimeSeriesPoint-Data.
      * Charts
      * Statistics
      * CSV
      * ODV -->
    <transitions>
        
        <!--  The required Transitionsteps which must be done until rendering
              the OutputFormats. Each Transition is represented one required 
              Step. One Steps can consume specified InputParameters an after 
              that it can calculate new Data which will be used as possible 
              InputValues in the next Transition-Step from each Transition it 
              is only possible to move to those Transitions which are Configured 
              in the rechableTransitions-Tag  -->
              
         <!-- Description of the Transition-Attributes:
              * id: The id of the Transition. This must be unique in one Artifact.
                    It is used to reference the Transition eg. in 
                    reachableTransitions.
              * description: A short description which should describe the Transition
              * transition: The Class which must be load to handle the required logic,
                            This class will be load using reflection. -->
              
        <transition id="timeseries_area" description="timeseries_area_one" transition="de.intevation.gnv.transition.DefaultTransition">
            
            <!-- The QueryID which identifies the Query which is configured in 
                 the Queries-Properties-File.
                 It is possible to define no Query. 
                 In this case you have to remove this Element from the 
                 Configuration.-->
            <queryID>area_filter</queryID>
            
            <!-- The ID of the Data which will be fetched using this Transition.
                 The Name must be unique in one Artifact.
                 The Name is used for the localization and must be set into the
                 several PropertiesFiles for the localization.  -->
            <dataname>areaid</dataname>
            
            <!-- This Flag will be used to switch between single and
                 multiselect possibility of the Data which will be fetched 
                 using this transition.  -->
            <data-multiselect>false</data-multiselect>
            
            <!-- Optional Flag which can be used to set that is is possible 
                 to select no entry in the Data which will be fetched using
                 this transition. -->
            <data-noselect>true</data-noselect>
            
            <reachableTransitions>
                   <!-- reachableTransitions are those Transition which can be
                        reached as next Step. The Transition notifies in 
                        describe-output which Transitions can be reached.
                        The User / calling program can choose which Transition 
                        he/it wants to use next  -->
                   <transition>timeseries_subarea</transition>
                   <transition>timeseries_without_geom</transition>
            </reachableTransitions>
            
            <inputvalues>
                <!-- At this place it is necessary to configure the Elements
                     which must be feed and can be used in this transition.
                     It is possible to set if the Values should be used in 
                     the DatabaseQuery of this Transition and how often it
                     must be used.
                     The order of the Elements is also the Order of usage setting
                     the Values into the SQL-Query. -->
                <inputvalue name="sourceid" type="Integer" multiselect="false" usedinquery="0"/>
                <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
                <inputvalue name="areaid" type="Integer" multiselect="false" usedinquery="0"/>
            </inputvalues>
        </transition>
        
        <transition id="timeseries_subarea" description="timeseries_subaera" transition="de.intevation.gnv.transition.DefaultTransition">
            <queryID>subarea_filter</queryID>
            <dataname>subareaid</dataname>
            <data-multiselect>false</data-multiselect>
            <reachableTransitions>
                   <transition>timeseries_timeseriespoint</transition>
            </reachableTransitions>

            <inputvalues>
                <inputvalue name="sourceid" type="Integer" multiselect="false" usedinquery="0"/>
                <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
                <inputvalue name="areaid" type="Integer" multiselect="false" usedinquery="1"/>
                <inputvalue name="subareaid" type="Integer" multiselect="false" usedinquery="0"/>
            </inputvalues>
        </transition>
        
        <transition id="timeseries_without_geom" description="timeseries_mesh_without_geom" transition="de.intevation.gnv.transition.DefaultTransition">
           <queryID>timeseries_timeseriespoint</queryID>
           <dataname>featureid</dataname>
           <data-multiselect>false</data-multiselect>
           <reachableTransitions>
                  <transition>timeseries_parameter</transition>
           </reachableTransitions>
           <inputvalues>
               <inputvalue name="sourceid" type="Integer" multiselect="false" usedinquery="1"/>
               <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
               <inputvalue name="featureid" type="Integer" multiselect="false" usedinquery="0"/>
           </inputvalues>
       </transition>
        
        <transition id="timeseries_timeseriespoint" description="timeseries_timeseriespoint" transition="de.intevation.gnv.transition.DefaultTransition">
            <queryID>timeseries_timeseriespoint_with_area</queryID>
            <dataname>featureid</dataname>
            <data-multiselect>false</data-multiselect>
            <reachableTransitions>
                <transition>timeseries_parameter</transition>
            </reachableTransitions>
            <inputvalues>
                <inputvalue name="sourceid" type="Integer" multiselect="false" usedinquery="1"/>
                <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
                <inputvalue name="subareaid" type="Integer" multiselect="false" usedinquery="1"/>
                <inputvalue name="featureid" type="Integer" multiselect="false" usedinquery="0"/>
            </inputvalues>
        </transition>
        
        <transition id="timeseries_parameter" description="timeseries_parameter" transition="de.intevation.gnv.transition.DefaultTransition">
            <queryID>timeseries_parameter</queryID>
            <dataname>parameterid</dataname>
            <data-multiselect>true</data-multiselect>
            <reachableTransitions>
                <transition>timeseries_depth_height</transition>
            </reachableTransitions>
            <inputvalues>
                <inputvalue name="featureid" type="Integer" multiselect="false"/>
                <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
                <inputvalue name="parameterid" type="Integer" multiselect="true" usedinquery="0"/>
            </inputvalues>
        </transition>           
        
         <transition id="timeseries_depth_height" description="timeseries_depth_height" transition="de.intevation.gnv.transition.DefaultTransition">
            <queryID>timeseries_depth_height</queryID>
            <dataname>measurementid</dataname>
            <data-multiselect>true</data-multiselect>
            <reachableTransitions>
                 <transition>timeseries_interval</transition>
            </reachableTransitions>
            <inputvalues>
                <inputvalue name="featureid" type="Integer" multiselect="false"/>
                <inputvalue name="parameterid" type="Integer" multiselect="true"/>
                <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
                <inputvalue name="measurementid" type="Integer" multiselect="true" usedinquery="0"/>
            </inputvalues>
        </transition>
        
        <transition id="timeseries_interval" description="timeseries_interval" transition="de.intevation.gnv.transition.MinMaxTransition">
            <queryID>timeseries_interval</queryID>
            <dataname>timeinterval</dataname>
            <data-multiselect>false</data-multiselect>
            <reachableTransitions>
                <transition>timeseries_calculate_results</transition>
            </reachableTransitions>
            <inputvalues>
                <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
                <inputvalue name="parameterid" type="Integer" multiselect="true"/>
                <inputvalue name="measurementid" type="Integer" multiselect="true"/>
                <inputvalue name="minvalue" type="Date" multiselect="false" usedinquery="0"/>
                <inputvalue name="maxvalue" type="Date" multiselect="false" usedinquery="0"/>
            </inputvalues>
        </transition>
        
        <!--  Last Transition is the Output-Transition. At this place the differen OutputModes are configured.
              For each OutputMode it might be necessary to configure separat Databasequery which collect the
              Data. -->
        <transition id="timeseries_calculate_results" description="timeseries_interval" transition="de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition">
            <queryID>timeseries_chart_data</queryID>
            <queryID-odv>timeseries_odv_data</queryID-odv>
            <inputvalues>
                <inputvalue name="parameterid" type="Integer" multiselect="true"/>
                <inputvalue name="measurementid" type="Integer" multiselect="true"/>
                <inputvalue name="fisname" type="String" multiselect="false" usedinquery="0"/>
                <inputvalue name="minvalue" type="Date" multiselect="false"/>
                <inputvalue name="maxvalue" type="Date" multiselect="false"/>
            </inputvalues>
            <outputsModes>
                <outputsMode name="chart" description="Chartrepresentation of the Values" mime-type="image/png">
                    <parameters>
                        <inputvalue name="width" type="Integer" value="600"/>
                        <inputvalue name="height" type="Integer" value="400"/>
                    </parameters>
                </outputsMode>
                <outputsMode name="svg" description="PDF-Export der Daten" mime-type="application/pdf"/>
                <outputsMode name="pdf" description="PDF-Export der Daten" mime-type="application/pdf"/>
                <outputsMode name="csv" description="CSV-Export der Daten" mime-type="text/plain"/>
                <outputsMode name="odv" description="ODV-Export der Daten" mime-type="text/plain"/>
                <outputsMode name="statistics" description="Statistik zu den Daten" mime-type="text/xml"/>
            </outputsModes>
            <!--  Definition of the TimeGaps which are required to render the Charts properly.
                  each Parameter in each FIS can have   -->
            <time-gap-definition xlink:href="${artifacts.config.dir}/products/timeseries/timegap_definition.xml" />
        </transition>
        
    </transitions>
</artifact>

http://dive4elements.wald.intevation.org