view flys-artifacts/ChangeLog @ 1039:cf39205df113

Part of refactoring (see next commit). flys-artifacts/trunk@2500 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 17 Aug 2011 13:04:53 +0000
parents 4dcc635d6ca6
children 5411a33014e0
line wrap: on
line source
2011-08-17  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Extracted and renamed CustomAnnotation to StickyAxisAnnotation. Also removed
	needless imports.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/StickyAxisAnnotation.java:
	  Extracted class implementation CustomAnnotation and renamed to
	  StickyAxisAnnotation.

2011-08-17  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Improved CustomAnnotations and rendering thereof, now including an
	"axis mark" (little line at axis), also prepared possibility to put
	annotations on Y-axis.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Improved CustomAnnotation to include marks on the axis and better spacing
	  from it.

2011-08-17  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Implemented proof-of-concept collision-detection when drawing
	CustomAnnotations (text only).

	* src/main/java/de/intevation/flys/exports/ChartExportHelper.java:
	  Pass a fresh ChartRenderingInfo-Object to createBufferedImage, such that
	  information can be collected while rendering.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Exploit the fact that XYTextAnnotation already registers drawn shape in the
	  ChartRenderingInfo if it exists and either an URL or tooltip is set.
	  Before drawing, calculate own shape and compare against already registered
	  shapes.

2011-08-16  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Implemented (yet dummy) custom Annotation class.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Added implementation of yet dummy CustomAnnotation class.

2011-08-16  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Slightly improved rendering of annotations.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Slightly improved rendering of annotations. Still no valid collision
	  detection. Annotations are drawn every 2 km; first come first serve.

2011-08-15  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix for flys/issue191

	* src/main/java/de/intevation/flys/artifacts/model/WQ.java(longestIncreasingWRangeIndices):
	  Added a method to find the longest index range with increasing w values.

	* src/main/java/de/intevation/flys/exports/ATWriter.java: Export the longest
	  range of monotone increasing w values instead of the first one.
	  TODO: The first line of the export is still broken.

	* src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java:
	  Removed superfluous import.

2011-08-12  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java:
	  Resolved two TODOs: get Annotations of selected River, get "point"
	  Annotations only.

2011-08-12  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Added functionality to query range and point-annotations only to
	AnnotationFactory.

	* src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java
	  (getPointAnnotations, getAnnotationsBreadth):
	  New functions to query breadth and point-only annotations.

2011-08-11  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java:
	  Added a development mode for recommendations. Enabled with
	  stetting system property 'flys.datacage.recommendations.development' to true.
	  When set the XML template are re-read if the timestamps of the
	  files have changed so you do not have to restart the server again and again.

	* doc/conf/meta-data-user.xml: Sort collections by creation time in descending order.

2011-08-11  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Rather picky cosmetics only.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java,
	  src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java,
	  src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java,
	  src/main/java/de/intevation/flys/artifacts/model/WQKms.java,
	  src/main/java/de/intevation/flys/artifacts/states/DefaultState.java,
	  src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java,
	  src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  End comments on a full stop, separate from closing '*/' by whitespace,
	  adjusted javadoc comments.

2011-08-11  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Made Annotations visible in LongitudinalSection diagrams.

	* src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Register new Facet Type, let LongitudinalSectionGenerator include
	  Annotations in diagram (yet unfiltered and independent of river).

2011-08-11  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	* doc/conf/conf.xml,
	  doc/conf/artifacts/annotation.xml,
	  doc/conf/meta-data-system.xml:
	  Added configuration for AnnotationArtifacts.

2011-08-11  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	Added demo- implementation of a AnnotationArtifact and its Facet.

	* src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java,
	  src/main/java/de/intevation/flys/artifacts/states/AnnotationRiverState.java:
	  New. Initial version of an AnnotationArtifact and its State and Facet.

2011-08-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Extended schema for artifacts and collections
	  to have creation times, too.

	  To update existing databases:

	    ALTER TABLE artifacts ADD COLUMN creation TIMESTAMP NOT NULL DEFAULT current_timestamp;
	    ALTER TABLE collections ADD COLUMN creation TIMESTAMP NOT NULL DEFAULT current_timestamp;

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Store creation times for artifacts and collections, too.

	* src/main/resources/datacage-sql/org-h2-driver.properties,
	  src/main/resources/datacage-sql/org-postgresql-driver.properties:
	  Adjusted SQL statements.

2011-08-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Make it compilable again (BackendListener interface changed).

2011-08-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/meta-data-user.xml: Added grouping element around w/q of each
	  longitudinal section artifact.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java,
	  src/main/java/de/intevation/flys/artifacts/datacage/templating/StackFrames.java:
	  Added some debugging capabilities.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/ResultData.java:
	  Added isEmpty() method.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java:
	  Now it is possible to nest <dc:elements> into other elements in the <dc:context>
	  body. This is useful and needed for grouping and repeating results.

2011-08-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java:
	  User connection was cached, system was not. Lead to incorrect results.

2011-08-09  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/meta-data-user.xml: Added <old_calculations> element
	  around old calculations.

2011-08-09  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java:
	  Cosmetic: Replaced usage of legacy java.util.Stack with java.util.Deque.

2011-08-04  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/meta-data-user.xml: Use 'CAST(x AS uuid)' instead of 'x::uuid'
	  to be more compatible.

2011-08-04  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java:
	  If given an artifact place its identifier into parameters passed to template.
	  Fixed swapped user/system connections if using the user template.

	* doc/conf/meta-data-user.xml: Recommend w/q facet from old calculations
	  if an artifact was given that represents a longitudinal section
	  "Laengsschnitt".

	  TODO  I: The template uses PostgreSQL specific UUID casts.
	  TODO II: We need to find a way only to recommend the master artifacts.

2011-08-04  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java:
	  Added a <dc:comment> tag to place comments in the meta data templates.
	  <!-- ... --> comments are copied through.

	* doc/conf/meta-data-user.xml: Added a simple test.

2011-08-04  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Be a bit more tolerant about empty strings for UUIDs of artifact and user.

2011-08-03  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Bring user specific meta data service to life.

	* doc/conf/conf.xml: There are now two templates to configure:
	  The system template (only the data from the backend) and the
	  user template (the datcage db and the backend db),

	* doc/conf/meta-data-template.xml: Deleted.
	* doc/conf/meta-data-user.xml: New. The user specific template. TODO: Write it!
	* doc/conf/meta-data-system.xml: New. The system template.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/NoneUserSpecific.java:
	  Deleted.
	* src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java:
	  New. The logic to fill the templates.

	* src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java:
	  Adjusted to follow the new call signatures.

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Refactored. Removed the old code and only leave the new service. Following
	  XPaths are evaluated on the incomming document:

	  "/art:meta/art:artifact-id/@value" The UUID of the artifact. Optional.
	                                     Used to fill the template enviroment.
	  "/art:meta/art:user-id/@value"     The UUID of the user. Optional.
	                                     If given the user specific template is filled.
	  "/art:meta/art:outs/@value"        The list of outs used to recommend for the
	                                     various outputs.
	  "/art:meta/art:parameters/@value"  A list of key/value pairs to inject more
	                                     filters to the templating.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/App.java:
	  Change to follow the new recommendations semantics.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java:
	  Added symbolic constants to distinguish "user" and "system" db connections.

2011-08-03  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	* doc/conf/conf.xml:
	  Cosmetics, let comments start with a capital and end on a full stop,
	  removed incorrect comment.

2011-08-03  Felix Wolfsteller <felix.wolfsteller@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Cosmetics, let comments start with a capital and end on a full stop.

2011-08-03  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java(extractOutputNames):
	  Fixed potential NPE.

2011-08-03  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Added support for more than one db connection in datacage templating.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java:
	  Now you can pass a list of named db connections to the build process.
	  The purpose is to mix more then one database (e.g. the backend db and
	  the user specific one).

	  To use this feature you can add an "connection" attribute
	  to <dc:context> with the name of the connection to use.
	  If no connection name is given the last used is used again.
	  Initially the first connection in the given list is used. 
	  If the context is left the connection that was active before 
	  will be active again in a stacking manner.

	  When creating NamedConnection objects you can set a boolean flag
	  if the results coming from the connection should be cached. This
	  is useful e.g. for the user specific database which runs in-memory
	  so caching would introduce some superfluous overhead.

	* src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java:
	  When executing the queries explicitly pass if caching should be used.

2011-08-02  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Forgot to fetch dialect dependent SQL statement for deleting
	  artifacts by uuid.

2011-08-02  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Set the name of the collections at initial scan, too.

2011-08-02  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Fixed wrong SQL references.

2011-08-02  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Fixed two NPEs.

2011-08-02  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java,
	  src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Forwarded kill collections and artifacts events to datacage.
	
	* src/main/resources/datacage-sql/org-h2-driver.properties,
	  src/main/resources/datacage-sql/org-postgresql-driver.properties:
	  Added statement to delete artifact by uuid.

2011-08-02  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java:
	  Made it compilable again. The signature of BackendListener has changed.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Completed the backend listener stuff.

	  TODO  I: Added some cleanup for orphaned artifacts.
	  TODO II: Figure out a way to delete collections/artifacts
	           which are delete from backend without the 
			   backend API.

	* src/main/resources/datacage-sql/org-h2-driver.properties,
	  src/main/resources/datacage-sql/org-postgresql-driver.properties:
	  Added needed statements.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Update collection names on change. Remove artifacts from collections.

	* src/main/resources/datacage-sql/org-h2-driver.properties,
	  src/main/resources/datacage-sql/org-postgresql-driver.properties:
	  Added needed statements.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java:
	  Call datacage with the global context. This is needed to access the state engine.

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Changed
	  signatures to take the global context, too. Create artifacts via backend listener
	  interface.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java:
	  Fixed recursion bug.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java:
	  Added debug output.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/conf.xml: Added backend listener for datacage.

	* src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java:
	  New. Proxies backend listener calls to datacage.
	 
	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Implements backend listener. TODO: Update the datacage database
	  according the change calls.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta,
	  src/main/java/de/intevation/flys/artifacts/datacage/templating:
	  Moved/renamed package to better fit the common semantics.
	  DataCage.java is now call NoneUserSpecific.java to reflect the
	  fact that it is the template for the user independent db
	  analysis.

	* src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java,
	  src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Ajusted imports and calls.

2011-08-01  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/conf.xml: For documentation purposes added a out-commented 
	  section with the default configuration of the datacage.

2011-07-31  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Delete the artifacts at before initial scan, too. They are independent
	  from users. Fixed problem when writing state data content.

	* src/main/resources/datacage-sql/org-h2-driver.properties: Added
	  statement to delete the artifacts at initial scan, too.

	* src/main/resources/datacage-sql/org-postgresql-driver.properties:
	  New. PostgreSQL version of the statements. The database scheme
	  is the same as H2. Very useful for debugging.

2011-07-31  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Added kludge for the types of artifact data. They seem to be null
	  in some circumstances. Needs to be debugged!

2011-07-31  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java:
	  Fixed default connection URL to use a namend in-mermory database.

2011-07-31  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Fixed constraint.

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Added some debug output.

2011-07-29  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Removed artifact_id from facet because there
	  is a link via out_id -> outs.id: artifact_id -> artifacts to
	  find the corresponding artifact.

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties: Store
	  facets of outs into datacage db at initial scan.

2011-07-29  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties:
	  Store outs of artifacts into datacage db at initial scan.
	  TODO: store facets.

2011-07-29  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Added 'type' column in artifacts data.
	  Maybe useful for filtering.

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties:
	  Store artifact data into db at initial scan.
	  TODO: store outs and facets.

2011-07-29  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties:
	  Add artifacts into datacage db at initial scan.
	  TODO: Store data, outs and facets.

2011-07-28  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Fixed spelling in sequence name.

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties: Simply add
	  collection item at initial scan if artifact was stored before.
	  TODO: Store new artifacts.

2011-07-28  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties: Add
	  collections at initial scan.

2011-07-28  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties: Add users
	  at initial scan.

2011-07-28  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Using sequences for id generation now
	  to make schema more compatible.

2011-07-28  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java,
	  src/main/resources/datacage-sql/org-h2-driver.properties: Clear database
	  before initial scan.

2011-07-28  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java:
	  Deleted. This stuff comes from the artifact database now.

	* src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java:
	  New. The db config of the datacage database.

	* src/main/resources/datacage-sql/org-h2-driver.properties: New.
	  The SQL statements needed for the datacage.

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  Make use of the db config.

2011-07-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
	  New. A artifact database lifetime listener to build the initial
	  index of the artifacts in database.

	* doc/conf/conf.xml: Added the datacage to the list of lifetime
	  listeners.

2011-07-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Added an explicit table for the outs
	  of an artifact.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Make the current outs of an artifact accessible only with
	  the global context.
	
2011-07-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: Added ON DELETE CASCADE constraints.
	  Added state in facet.

2011-07-26  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/datacage.sql: New. H2 Schema for the datacage database.
	  Uses special features like IDENTITY (autoincrement) typed columns.

	* src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java:
	  Pooled connection.

	* pom.xml: Added dependencies to H2 and Apache DBCP.

2011-07-26  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/test/java/de/intevation/flys/artifacts/AppTest.java,
	  src/main/java/de/intevation/flys/artifacts/App.java: Removed.
	  This the stupid "Hello, World!" app initially created by the
	  maven archetype. It was never used.

2011-07-25  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Argh! Usage the DOM was not thread safe (discovered with ab).

2011-07-25  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/meta-data-template.xml: '$recommended' lead to XPath
	  errors. Using "dc:contains($parameters, 'recommended')" helps.

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java,
	  src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java:
	  Added some debugging.

	* src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java:
	  Added parameters as 'parameters' to parameters. Usefull to check
	  for containment of variables.

2011-07-25  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Added 'if log.isDebugEnabled() {}'.

2011-07-25  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Made Artifact UUID optional and accept extra parameters, too. This enables
	  the service to be used without an arttifact and test all filters.

	  <art:meta xmlns:art="http://www.intevation.de/2009/artifacts">
	     <art:outs value="computed_discharge_curve,floodmap"/>
	     <art:parameters value="river:Elbe"/>
	     <art:filters value="recommended"/>
	  </art:meta>

	* src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java:
	  'contain' accept Maps and collection, too.

	* src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java:
	  Made artifact option (= null) in recommendations.

2011-07-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java:
	  Moved connection specific into inner class. The enables the reuse of the
	  compiled statement.

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: The
	  SQL statements are now only compiled once at creation time of the builder.
	  Each connection now reuses them.

2011-07-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/cache.xml: Added configuration for static datacage db access.

	* src/main/java/de/intevation/flys/artifacts/services/meta/App.java: Using
	  caches seems to need an explicit System.exit().

	* src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java:
	  Added support for caching the SQL statements and there results.

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Some
	  clean up. Reordered code for performance. Strip SQL statements more
	  aggressively.

	* src/main/java/de/intevation/flys/artifacts/services/meta/ResultData.java:
	  Made it Serializable.

	* src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java:
	  Introduced system property 'flys.artifacts.cache.config.file' to make
	  the caching configurable without pulling up the whole stack.

2011-07-22  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Prepared the FLYSArtifactCollection to support the storage of already
	  loaded recommendations in its attribute document.

2011-07-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Adjusted to use the DataCage recommendations. The incomming document
	  can pass the artifacts UUID by '/art:outs/@value' the outs as a
	  comma separated list in '/art:outs/@value' and optional a set of
	  filters comma separated in '/art:filters/@value'.

	  If UUID and OUTS are not given the old service is used. This
	  should be removed as soon as the client uses the new service.

2011-07-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java:
	  Allow '-' in variable names.

2011-07-21  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/meta-data-template.xml: Now, the river-id is really added to
	  the factory node of the wmsbackground layer.

2011-07-21  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/meta-data-template.xml: Added the river-id to the factory node
	  of the riveraxis and wmsbackground layer.

2011-07-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java,
	  src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java,
	  src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java,
	  src/main/java/de/intevation/flys/artifacts/services/RiverService.java:
	  Adjusted to implement changed Service interface.

2011-07-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Refactored
	  the method that retrieves the Outputs for the Artifact. Now, we are able
	  to query the Outputs for the current state, and all outputs separately.

	* src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: The
	  recommendations provided by this monitor will take the Outputs of the
	  current state only into account.

2011-07-21  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/meta-data-template.xml: Added conditions for each output type.
	  Splitted the "floodmap" output into two parts: a recommended one and a
	  complete one. The recommended part will only build the document tree for
	  the recommended artifacts; the complete part will build the whole document
	  tree that is available for a floodmap.

	* src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java:
	  This Hook now uses the DataCage to generate the recommended artifacts.
	  The output-defaults configurtion is needless now.

	* doc/conf/output-defaults.xml: Removed. The configuration of recommended
	  artifacts takes place in meta-data-template.xml.

	* src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java:
	  Bugfix: the DataCage didn't start working if its builder was NOT null,
	  but it shouldn't start if the builder IS null.

2011-07-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Now it is possible to directly pass a Node as a root to the builder.
	  The owning document if fetch by Node.getOwnerDocument(). This is
	  useful if you want to generate the recommendation directly into
	  an already existing document under a given node.

	* src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java:
	  Changed the signature of recommend() to accept a node where to
	  append the recommendations.

2011-07-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Added a macro mechanism:

	    <dc:macro name="keine-fuenf">
	      <dc:text>'5' ist nicht in der Liste der Outs.</dc:text>
	    </dc:macro>
	    <dc:call-macro name="keine-fuenf"/>
	    <dc:call-macro name="keine-fuenf"/>
	    <dc:call-macro name="keine-fuenf"/>

	  Macros can be defined everywhere in the template
	  with 'macro'. There bodies can contain all valid elements
	  including other 'macro's and 'call-macro's. They are
	  called with their 'name' with 'call-macro'. The control flow
	  is continued inside the body of the called macro and 
	  will continue right after the calling 'call-macro' when
	  the macro body is finished.

2011-07-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Added a new 'if' construct similiar to XSLT:

	    <dc:if test="not(dc:contains($outs, '5'))">
	        <dc:text>'5' ist nicht in der Liste der Outs.</dc:text>
	    </dc:if>

	  The control flow is continued inside the 'if' if the 'test' attribute
	  as an XPath expression on an empty document evalutes to true.
	  Else the inside is skipped. There is no 'else'. Use 'choose'/'otherwise'
	  if you need this.

2011-07-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java:
	  Added a recommend() method to generate recommendations for
	  a given artifact, outs and extra parameters.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added
	  method to extract all data at once.

2011-07-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java:
	  New. Custom XPath function provider. Provides
	  'dc:contains(Object [] haystack, Object needle)' by now. Should be
	  useful to check containments in 'out' lists later.

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Register the FunctionResolver to the evaluated XPaths.

	* src/main/java/de/intevation/flys/artifacts/services/meta/App.java:
	  Added code to parse
	  "param:a,b,c" to "param" -> new String [] { "a", "b", "c" } to
	  help testing the 'dc:contains' XPath function.

2011-07-20  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/conf.xml: Added wms configurations for Saar, Mosel and Elbe.
	  Each river supported by FLYS requires such a WMS configuration. A WMS
	  should contain layers for the river axis, buildings, kilometer labels
	  and maybe a background layer as well.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java:
	  Added key that is used to store a map of WMS URLs - for each river a
	  WMS URL.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  Parse the river WMS from global configuration.

	* src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java:
	  Create WMSLayerFacets with URLs based on the river and the river wms
	  configuration stored in the FLYSContext.

	* src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java:
	  Adapted the initialize() signature and the method call of computeInit()
	  which requires a FLYSContext to retrieve the river WMS configurations.

	* src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java,
	  src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Added the context object parameter to the computeInit() method.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Call
	  initialize() with the context object - which is a FLYSContext or a
	  CallContext.

2011-07-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/App.java:
	  Check if builder was created properly before using it.

	* src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java:
	  Implements now variable provider for XPath expressions.
	
	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Added new choose/when/otherwise construct similiar to XSLT

	      <dc:choose>
	         <dc:when test="$river = 'Mosel'">
	             <dc:text>Es ist die Mosel.</dc:text>
	         </dc:when>
	         <dc:when test="$river = 'Saar'">
	             <dc:text>Es ist die Saar.</dc:text>
	         </dc:when>
	         <dc:otherwise>
	            <dc:text>Es ist weder Mosel noch Saar.</dc:text>
	         </dc:otherwise>
	      </dc:choose>

	  A 'choose' block can contain a list of 'when's and an optional
	  'otherwise'. For each 'when' the test attribute is evaluated
	  as an XPath expression on an empty document. The result of
	  the evaluation is taken as a boolean value. If its value is
	  true the control flow is continued inside the corresponding
	  'when' and the other choose elements are not tested.
	  If the value is values the testing continues with the next
	  'when'. If no 'test' expression is evaluated to true, the
	  control flow continues inside the 'otherwise'. If no 'otherwise'
	  is given nothing happens at all.

2011-07-20  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/conf.xml: Added a config section for floodmaps. Currently, the
	  background layer's url and layername is defined here.

	* src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java:
	  Read the background layer configuration from conf.xml. Those values are
	  used to create the WMSLayerFacet.

2011-07-20  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java:
	  The background layer facet will no longer have an extent set.

2011-07-20  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java,
	  src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java:
	  Set the extent of the created WMSLayerFacets and i18n its descriptions.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added I18N strings for the
	  background an river axis layer.

2011-07-20  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java:
	  This facet type has a method to set the extent of a WMS layer. The
	  extent is written to the facets XML node in toXML() as well.

2011-07-20  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adapted
	  the signature of setup() which requires a CallMeta parameter now.

	* src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: Use
	  the CallMeta object retrieved in setup() to call initialize(). It is now
	  able to i18n things.

2011-07-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/App.java: New.
	  Standalone app to debug the datacage template. To use in a maven environment:

	  -Dmeta.data.template=PATH_TO_META_DATA-TEMPLATE.XML \
	  -Dmeta.data.parameters=river:Mosel \
	  -Dmeta.data.output=OUTPUT.XML \
	  -Dflys.backend.user=DB_USER \
	  -Dflys.backend.password=DB_PASSWORD \
	  -Dflys.backend.url=DB_CONNECTION_URL \
	  -Dexec.mainClass=de.intevation.flys.artifacts.services.meta.App

2011-07-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java:
	  New. First step to factor out the "Datenkorb" logic into a service independent
	  singleton.

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Uses the "Datenkorb" singleton now.

2011-07-20  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java:
	  Removed "index" property, because it is already existing in parent
	  class.

2011-07-19  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Improved error handling.

2011-07-19  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/resources/metadata/template.xml: Deleted.

	* doc/conf/meta-data-template.xml: New. Was template.xml

	* doc/conf/conf.xml: Made meta data template configurable.

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Load template from configuration not from resources.

2011-07-19  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/resources/metadata/template.xml: s/[a-z]+-id/db-id/
	  Make database ids identifiable with unique name "db-id".

2011-07-19  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java:
	  Override the toXML() method. Subclasses can now write their own XML
	  representation.

	* src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java:
	  New. This ManagedFacet uses an Element (DOM) to store the information
	  about a facet. The intent of this facet type is to represent a facet
	  stored in an Collection attribute. Different facets can have different
	  attributes that we need to parse, but the only thing ManagedFacets need
	  to do, is to adjust the attributes "active" and "position". So, those
	  values are set directly on the Element, the other attributes aren't
	  touched.

	* src/main/java/de/intevation/flys/artifacts/model/ManagedFacetAdapter.java:
	  New. This facet is a wrapper for another facet. This subclass of a
	  ManagedFacet overrides the toXML() method. The XML representation is
	  defined by the inner facet that is stored as member variable. The
	  ManagedFacet specific attributes "artifact", "facet", "pos" and "active"
	  are added manually.

	* src/main/java/de/intevation/flys/collections/AttributeWriter.java: Uses
	  the toXML() method to write a facet node into the attribute document.

	* src/main/java/de/intevation/flys/collections/AttributeParser.java: Uses
	  the ManagedDomFacet to save the information of a facet which is
	  contained in the attribute part of a Collection's DESCRIBE document.

	* src/main/java/de/intevation/flys/collections/OutputParser.java: Uses the
	  ManagedFacetAdapter to save a facet, because we want to keep the
	  specific facet to be able to write its specific XML representation into
	  the Collection's DESCRIBE document.

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Adapted the XPath of facets stored in the attribute part of the
	  DESCRIBE.

2011-07-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a
	  method that returns the Outputs for the Artifact.

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Adapeted the call of OutputParser.

	* src/main/java/de/intevation/flys/collections/OutputParser.java:
	  Simplified the code to read the Outputs of Artifacts. This parser will
	  now longer parse the DESCRIBE documents of the Artifacts, but query the
	  Outputs via FLYSArtifact.getOutputs() directly.

2011-07-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java:
	  Adapted the function call of ProtocolUtils.appendOutputModes().

	* src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java:
	  Override toXML() to add the URL and layernames to the XML representation
	  of this facet.

2011-07-18  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/wmsbackground.xml,
	  doc/conf/artifacts/riveraxis.xml: New configurations for an Artifact
	  that is used as background layer in floodmaps, and an artifact that is
	  used as layer showing the river axis in a floodmap.

	* doc/conf/output-defaults.xml: New file to configure default artifacts
	  for specific output states. E.g. the floodmap state recommends a
	  background layer and a layer displaying the river axis. In suche case,
	  the floodmap state recommends two artifacts for the two layers.

	* doc/conf/conf.xml: Added new artifacts/artifact-factories and a Hook to
	  monitor artifacts (-> CollectionMonitor.java).

	* src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java:
	  New. This facet is used to represent a layer in a map. So, this facet
	  stores information about a WMS URL and the layer names provided by this
	  WMS.

	* src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added
	  facet types for the wmsbackground and riveraxis.

	* src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java,
	  src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java:
	  New. An artifact and its default state. The intent of these classes is
	  to generate WMSLayerFacets which represent background layers in maps.

	* src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java,
	  src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: New.
	  An artifact and its default state. The intent of these classes is to
	  generate WMSLayerFacets which represent layers that display a river
	  axis.

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Added the INIT ComputeType.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a
	  case for the INIT ComputeType while computing data.

2011-07-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Added a method computeInit() which is called to initialize data/facets
	  after an artifact has been created.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Repaired
	  broken XPath.

2011-07-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java:
	  Removed the code to generate new artifacts. Instead of creating new
	  artifacts automatically, we decided to suggest creating new artifacts
	  from specific types. Therefore, the DESCRIBE document of the artifacts
	  is extended with a node that contains recommended artifact types.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  FLYSArtifacts might be setup with the identifier of an other
	  FLYSArtifact. Subclasses are able to override a method called
	  initialize(Artifact, GlobalContext). This might be helpful to extract
	  required values or clone artifacts.

2011-07-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  Adapted the signature of createArtifactContext() - it returns an
	  instance of GlobalContext now.

2011-07-14  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/geom/Lines.java:
	  Debugged the water fill algorithm. Added a lot of logging.

	* src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java:
	  Added a text field to give a water level to fill in.

2011-07-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Moved code
	  to create the output modes based on the given facets to FLYSArtifact. In
	  addition, FLYSArtifact got a new method that returns a specific input
	  value as string.

	* src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: New.
	  This hook monitors the "post-feed" and "post-advance". If the monitored
	  Artifact's state has configured recommended artifacts, this hook will
	  create new Artifacts.

	  TODO: We have to add the UUIDs of the new Artifacts to the DESCRIBE
	  document of the artifact to let the client know, that there are new
	  recommended Artifacts.

	* src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java: New.
	  This Artifact is the base class for Artifacts, that represent static
	  data. E.g. this could be a decoration theme in a chart or a background
	  layer in the map.

	* src/main/java/de/intevation/flys/artifacts/states/OutputState.java: New.
	  This state might be used as base class for states, that doesn't require
	  any user input, but only provide static Facets added by a computeFeed()
	  operation. So, subclasses need to implement computeFeed() only.

2011-07-13  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java:
	  New. Standalone Swing-App to test cross sections from database without the
	  hassles of our complete software stack. Runnable from a maven environment:

	  $ mvn -e \
	    -Dflys.backend.user=DB_USER \
		-Dflys.backend.password=DB_PASSWD \
		-Dflys.backend.url=DB_CONNECTION_URL \
		-Dexec.mainClass=de.intevation.flys.artifacts.charts.CrossSectionApp \
		exec:java

	  You can set the river to be used with the system property 'river'.
	  Defaults to 'Mosel'.

	* src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java:
	  Removed superfluous imports.

2011-07-13  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: The FloodMapState has a new Outputmode
	  called "floodmap" now.

	* src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: New.
	  This facet is used to generate WSPLGEN results.

	* src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added
	  the WSPLGENFacet.

	* src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java:
	  This state will now generate WSPLGENFacets.

2011-07-12  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/geom/Lines.java:
	  Fixed corner case.

2011-07-11  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/geom/Lines.java: New.
	  fillWater() generates a list of wet lines for a given profile and a
	  given water level.

2011-07-08  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The
	  Outputs created while generating the DESCRIBE document will now have the
	  'type' member set.

	* src/main/java/de/intevation/flys/collections/OutputParser.java: Read the
	  'type' member from DESCRIBE document.

2011-07-06  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Removed a typo.

2011-07-06  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DataFacet.java:
	  DataFacet are now able to store the ID of the state which has created
	  this Facet.

	* src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java:
	  Initialize DataFacets with the ID of this state. This is necessary to
	  renew the waterlevel data if it is no longer existing in the cache.

2011-07-06  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: A
	  report facet can now store the state's id and the artifact's hash value
	  when it has been created.

	* src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java:
	  Initialize the ReportFacet and WaterlevelFacet with state id and hash
	  information. This has been necessary to retrieve reports and waterlevels
	  in states after this one - in states that we need to enter for floodmap
	  parameterization.

2011-07-05  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WaterlevelGroundDifferences.java:
	  Changed the desired UI provider.

2011-07-05  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Added the option to continue the
	  waterlevel parameterization with the intent to create flood maps.

	* src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java:
	  This state is no longer a final state. The user has the option to
	  continue with the parameterization for flood maps based on the current
	  waterlevel. Therefore, this states desires the "continue" UI provider.
	  Clients should recognice this to just step to the next state or display
	  a button that lets the user step to the next state manually.

	* src/main/java/de/intevation/flys/artifacts/states/FloodplainChoice.java,
	  src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java,
	  src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/ProfileDistanceSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/WaterlevelGroundDifferences.java:
	  New. These states are used to parameterize a further calculation type:
	  flood map.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Required strings for the
	  flood maps states.

2011-07-04  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix(?) for flys/issue114

	* src/main/java/de/intevation/flys/artifacts/model/WQ.java:
	  Make guessing a bit more robust.

2011-07-03  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Added the math needed to calculate "W-Differenzen" in "Laengsschnitten".
	Needs testing!

	* src/main/java/de/intevation/flys/artifacts/model/NamedObject.java:
	  Made it an interface to be usable in more than one inheritance chain.

	* src/main/java/de/intevation/flys/artifacts/model/NamedObjectImpl.java:
	  Implements the NamedObject interface and is the new base class of
	  WQ and WKmsImpl.

	* src/main/java/de/intevation/flys/artifacts/model/WKms.java:
	  New. Interface to associate kms with ws.

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java:
	  Changed the base class to NamedObjectImpl. Renamed getKms(int)
	  to getKm(int) to make clear it return a single scalar value
	  and fullfil the WKms interface.

	* src/main/java/de/intevation/flys/artifacts/model/WKmsImpl.java:
	  New. Implements the WKms interface. Intended to be a lightweight
	  datastore for "zusaetzliche Laengsschnitte" and as results
	  of the WKmsOperations.

	* src/main/java/de/intevation/flys/artifacts/model/WQ.java:
	  Changed base class to NamedObjectImpl.

	* src/main/java/de/intevation/flys/artifacts/math/WKmsOperation.java:
	  New. Operations on WKms data.
	  Currently only the SUBTRACTION operation is implemented. This
	  one is needed to calculate the "W-Differenzen". The operation
	  is insensitive about the km directions of the datasets. Missing
	  values are interpolated linear.

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Adjusted to satisfy the signature change of WQKMs.

2011-07-01  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/StyledXYSeries.java: New. This
	  XYSeries stores the style information that should be used to render this
	  series. These information are stored as raw XML documents. A public
	  method can be used to apply those style information to a
	  XYLineAndShapeRenderer.

	  Note: The only two attributes currently supported by StyledXYSeries
	  items are "linesize" and "linecolor".

	* doc/conf/themes.xml: Added some more basic themes for the four
	  calculation methods.

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: This
	  generator now tries to apply themes for all series contained in the
	  chart. If a series is no instance of StyledXYSeries, the default
	  renderer is used.

	* 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/DischargeCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Removed the code that had been introduced to adapt renderers statically.
	  Now, each of these concrete ChartGenerators instantiates StyledXYSeries
	  items to put the curves into the chart. Those items contain style
	  information now!

2011-07-01  Ingo Weinzierl <ingo@intevation.de>

	flys/issue135 (Diagramm: Trotz abgeschalteter Themen bleiben Beschriftungen bestehen)

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: The way
	  to store datasets has changed. Until this revision, the concrete
	  generators managed their own datasets. E.g. the
	  DischargeLongitudinalSectionGenerator had three datasets: w, q and
	  corrected w. Now, there are just two datasets, managed by this base
	  generator - one dataset for the first Y axis and one dataset for the
	  second Y axis. This makes it easier to remove axes, that have no data to
	  be displayed. All concrete chart generators have to add their XYSeries
	  using two methods: addFirstAxisSeries() and addSecondAxisSeries().

	* 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/DischargeCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Those concrete chart generators no longer manage datasets themself but
	  they use the two methods described above, to plot the data to the first
	  or second Y axis.

2011-07-01  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java:
	  Added the option to use a filter to reduce the number of items returned
	  by this service.

2011-06-30  Ingo Weinzierl <ingo@intevation.de>

	flys/issue159 (WINFO: Radiobutton - Ortsauswahl bei "W für ungleichwertigen Abflusslängsschnitt" entfernen)

	* doc/conf/artifacts/winfo.xml: Changed the kilometer range input for
	  calculation 4. This calculation type requires a kilometer range. So,
	  after choosing the calculation 4, the transition model leads to a state
	  that just allows the input of a kilometer range with no option to
	  enter locations.

	* src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java:
	  New. A base state for the kilometer selection for calculations. The
	  target of this state is to provide facets for the duration curves.

	* src/main/java/de/intevation/flys/artifacts/states/DistanceSelect.java:
	  New. This state is used to enter a kilometer range. The difference to
	  the LocationDistanceSelect state is, that there is no option to enter
	  locations.

	* src/main/java/de/intevation/flys/artifacts/states/RangeState.java:
	  Improved this state to be the base state for calculation ranges.

	* src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java
	  src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java

	* src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: This
	  state no longer inherits from RangeState which now is used as base
	  state for kilometer ranges.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added new i18n strings for
	  the DistanceSelect state.

2011-06-28  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* pom.xml: Downgraded Trove to 1.1-beta-5, because the new
	  later ones are removed from the maven repos.

	  The functionality we need is in 1.1 so this downgrade should
	  cause no problems.

	  Would be nice if we would support the maintainers of trove to 
	  bring there new versions back into the main maven repos.

2011-06-28  Ingo Weinzierl <ingo@intevation.de>

	* pom.xml: Repaired the JBoss repository which place has changed.

2011-06-28  Ingo Weinzierl <ingo@intevation.de>

	Tagged RELEASE 2.4

2011-06-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java,
	  src/main/java/de/intevation/flys/exports/WstWriter.java:
	  Append the corrected W column (if existing) to the WST export.

2011-06-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQ.java:
	  Guessing increaing w is not based on direct neighbors any more.
	  The second to be compared with is choosen by random of
	  the values before the first one. This makes the guessing
	  more robust against 'plateaus' of equal w values.

2011-06-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/ATWriter.java: Array
	  for constructing the spline was too large leading to non-increasing
	  values.

2011-06-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix for flys/issue150

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Invert the x axis if its guessed that water is increasing.

2011-06-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQ.java(guessWaterIncreasing):
	  Added a method to guess based on a given factor of the size (default 0.05)
	  if the water levels are increasing. Needed to determine in which direction
	  the water level curve should be orientated. Based on random to avoid
	  running over large dataset each time a diagram is generated.

2011-06-27  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue177 (WINFO: Abflusskurven am Pegel verursachen ein Hängen des Servers)

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  Commented out code to generate time ranges for series names. There
	  seems to be a problem while loading the discharge tables of a gauge or
	  while determining the start and/or end time of such discharge tables.

2011-06-26  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/**/*.java: Removed trailing whitespace.

2011-06-26  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Removed dead code.

2011-06-26  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix for flys/issue173

	* src/main/java/de/intevation/flys/artifacts/model/Calculation4.java:
	  Fixed the way the gauge was found for a given interval.
	  The old way does not work because it was just tested if
	  the station point was inside the segments which is not
	  necessarily true. The obvious solution to simply check
	  the overlapping intervals does not work either because
	  the gauge ranges touch each other and so more than
	  one gauge are returned in these cases. The River.maxOverlap()
	  is now used to find the gauge with the max overlapping
	  range.

2011-06-26  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix for flys/issue147

	* src/main/java/de/intevation/flys/artifacts/model/Calculation1.java:
	  Removed the 'kmUp' flag. It was an left over from former
	  WSP calculations (w/o ref km) leading to wrong results now.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Don't pass the kmUp flag to the calculation.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Added debug output to see the value of 'wq_free'.

2011-06-26  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix for flys/issue86

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  The reference gauge for calculations "am Pegel" was determined
	  wrong.
	  
2011-06-25  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Conversion w->q was broken. This should fix a number of issues
	  around "W am Pegel" calculations.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Issue an error report if a w->q conversion fails.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  The gauge to convert w->q with its discharge table was determined wrong.

2011-06-24  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue174 (Diagramm: Q-Linie wird bei initialem Laden des Diagramms
	  anders dargestellt als bei Ansicht auf gesamten Wertebereich)

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  The chart will now have upper margins again.

2011-06-24  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue172 (Diagramm: Ursprung der Diagramme bei Dauerzahlen)

	* src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java:
	  Charts of this type will have the lower X value set to "0".

2011-06-23  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/ATWriter.java:
	  Results are now in cm. Made it more robust against corner cases.

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  Removed superfluous import.

2011-06-23  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/artifacts/winfo.xml, doc/conf/conf.xml:
	  Added facet config for AT exports.

	* src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java:
	  Added 'at' facet type.

	* src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java:
	  Generate AT facets.
	
2011-06-23  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/ATExporter.java: New.
	  Exporter for AT facets. Needs testing.

2011-06-23  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/ATWriter.java: New.
	  Writer for AT files. New code because our data model differs
	  from Desktop-FLYS. Needs testing.

2011-06-23  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue157 (Diagramm: Ursprung berechnete Abflusskurve)

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  Moved the method that adjusts the X-axis to include the "0" value from
	  ComputedDischargeCurveGenerator to DischargeCurveGenerator. Now, both
	  charts will include the "0" on the X-axis.

2011-06-23  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQDay.java:
	  Based on WQ now to make it exportable as AT.

2011-06-23  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQ.java:
	  New. Base class for WQKms.

	  TODO 1: make it a base class for WQDay, too,
	  TODO 2: Generate instances of WQ instead of WQKms in "Abflusskurven"
	          calculations. This will save memory.

	  AT exporter will get instances of this class as data model

	* src/main/java/de/intevation/flys/artifacts/model/NamedObject.java:
	  Add default constructor to ease inheritance.

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java:
	  Based on WQ now. Removed code allready defined in base class.

2011-06-23  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/artifacts/winfo.xml: Add TODOs for error reports
	  of "Abflusskurven am Pegel". Maybe we don't need them?

	* doc/conf/conf.xml: Configure report for each calculated output type.

2011-06-22  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue164 (Berechnung 4: Umgekehrtes Berechnungsintervall führt zur)

	* src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java:
	  Create the items with range information for W and Q which allows the
	  client to validate the user inserted values.

2011-06-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Arguments in filling datastructure were flip. Now
	  the "Abflusskurve am Pegel" looks correct again.

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  Removed superfluous imports.

2011-06-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Improved situtation on rendering "Abflusskurve am Pegel". Not
	fully working, yet.

	* doc/conf/artifacts/winfo.xml: Generate facets for the location path, too.

	* src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Misspelled
	  the facet which prevented the facets from being to the outputs.

	* src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java:
	  Extended to store the hash and the state id of the producing artifact/state
	  else it results in NPEs because the data is calculated on later (wrong) states.

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  Store the state id and the hash in the facet, too.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Add two
	  method to do calculations for a state the artifact is currently not in
	  and fetching the current state id.

2011-06-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/artifacts/winfo.xml: Generate facets for "Abflusskurven am Pegel"
	  Not working by now. :-/

	* src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: New facet type
	  for "Abflusskurven am Pegel"

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Do calculation
	  in the artifact not in the output generator.

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  Generate the new facets.

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  Fetch data from facet.

2011-06-22  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue161 (Diagramm: Q-Achse in W-Längsschnitten immer bei Q=0)

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  The Q axis (which is the second y axis) initially contains the 0 value.
	  After a zoom action has taken place, this behaviour is no longer
	  supported.

2011-06-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Draw correction curve again.

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java:
	  Use correction curve to map plot to axes. Not doing so prevented
	  the correction curve from being drawn!
	  Smaller code cleanups and simplifications.

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java,
	  src/main/java/de/intevation/flys/artifacts/model/WQCKms.java:
	  Added methods to directly access the components w, q and c
	  at a given index.

	* src/main/java/de/intevation/flys/exports/ChartGenerator.java:
	  Attribute access via DOM instead of XPath.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Code simplification.

2011-06-21  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue157 (Diagramm: Ursprung berechnete Abflusskurve)

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Splitted
	  up zooming for x and y axes to be able to override specific axis
	  zoom behaviour.

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  The lower bound of the x axis (which is the Q axis in such chart) is
	  always 0.

2011-06-21  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue90 (Diagramm: Trennung derDiagrammfläche und Achsenaufheben)

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java:
	  Added a margin between chart data and chart axes.

2011-06-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix for flys/issue158

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java:
	  Checks for right class now.
	
2011-06-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Fix for flys/issue154

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java:
	  Checks for right class now.

2011-06-21  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Only generate 'outs' if they have facets.

	* src/main/java/de/intevation/flys/exports/ChartExportHelper.java:
	  'boolean ? true : false' <=> 'boolean'

2011-06-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Added the time-to-live to the DESCRIBE document.

2011-06-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* doc/conf/artifacts/winfo.xml: Configured states to generate report facets.

2011-06-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java:
	  Return the report.

	* src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.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:
	  Generate report facets if there are problems with the calculations.
	  TODO: Adjust winfo.xml to configure the facets.

2011-06-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/ReportGenerator.java:
	  New. Generator for calculation reports.

	* doc/conf/conf.xml: Added ReportGenerator.

	* src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java:
	  Added type 'report'.

	* src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java:
	  Specialized facet for serving reports. TODO: Added them to the
	  calculation states.

	* src/main/java/de/intevation/flys/artifacts/model/Calculation.java:
	  Looped through CallMeta for i18n purposes. TODO: do i18n

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Removed superfluous import.

	* src/main/java/de/intevation/flys/exports/AbstractExporter.java:
	  Added some override annotations.

2011-06-20  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/CalculationResult.java:
	  New. Used to transport the data and the error report.

	* src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java,
	  src/main/java/de/intevation/flys/artifacts/model/Calculation1.java,
	  src/main/java/de/intevation/flys/artifacts/model/Calculation2.java,
	  src/main/java/de/intevation/flys/artifacts/model/Calculation3.java,
	  src/main/java/de/intevation/flys/artifacts/model/Calculation4.java,
	  src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java,
	  src/main/java/de/intevation/flys/artifacts/model/Calculation.java,
	  src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.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,
	  src/main/java/de/intevation/flys/exports/WaterlevelExporter.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveExporter.java:
	  Use the CalculationResult now.

2011-06-18  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Calculation1.java:
	  Allow an explicit reference km to enable calculation "am Pegel".

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  If a calculation "am Pegel" is done, take start km of the
	  calculation range and find the gauge in which range it is located.
	  Take the station of the gauge as the reference km. If no gauge
	  is found the calcualtion falls back to calculation "auf freier Strecke".

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Replaced another inefficient attribute extraction via XPath
	  with direct DOM access.

2011-06-18  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java,
	  src/main/java/de/intevation/flys/exports/WaterlevelExporter.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Removed dead code.

2011-06-18  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DataFacet.java
	  src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java,
	  src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java,
	  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,
	  src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Only generate facets when needed.

	* src/main/java/de/intevation/flys/collections/OutputParser.java:
	  Removed more XPath for simply accessing attributes of an element.

	* doc/conf/cache.xml: 200 elements in memory for "computed.values" are enough,
	  LRU as eviction strategy is sufficent.

	* src/main/java/de/intevation/flys/collections/AttributeWriter.java,
	  src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use
	  more 'standard' Java naming conventions.

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:
	  Got rid of namespace in result document.

2011-06-14  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue77 (Diagramm: Beschriftung der Kurven bei Dauerlinien)

	* src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java:
	  Give the curves in the chart names.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added titles for duration
	  chart curves.

2011-06-14  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java:
	  Write top 'Oberkante' and bottom 'Unterkante' to out going XML
	  if they exist.

2011-06-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java:
	  Write the min/max W/Q ranges as art:range elements into the DESCRIBE.

2011-06-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java:
	  This state that is used to retrieve locations will now write the
	  kilometer range of the selected river into the DESCRIBE document.

2011-06-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Calculation1.java:
	  New. Factored out version of "Wasserspiegellage" calculation.
	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java:

	  Removed some dead code.

	* src/main/java/de/intevation/flys/artifacts/model/WQCKms.java:
	  Added Override annotation and used quick access method.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Looped through error reporting use by interpolate.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Used factored out version of calculation 1. Removed dead code.

2011-06-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Calculation2.java:
	  New. Factored out version of "Abflusskurve".

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Loop errors through w/q at km interpolation.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Use factored out version of calculation 2.

2011-06-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Calculation3.java:
	  New. Factored out version of "Dauerzahlen".

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Loop errors through for q->w interpolations.
	  
	* src/main/java/de/intevation/flys/artifacts/model/WQDay.java:
	  Added constructor to directly create with calculated results.

	* src/main/java/de/intevation/flys/artifacts/model/Calculation.java:
	  Added method to return the number of problems.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Use factored out version of calculation 3.

2011-06-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java,
	  src/main/java/de/intevation/flys/artifacts/model/WQCKms.java,
	  src/main/java/de/intevation/flys/artifacts/model/WQDay.java:
	  Added methods to remove NaN values.

2011-06-10  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Calculation.java:
	  New. Base class for calculations. Used to collect problems occuring
	  during calculation.

	* src/main/java/de/intevation/flys/artifacts/model/Calculation4.java:
	  Extends Calculation now. Looped through the problem reports to
	  base class.

	* src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java:
	  Looped through the problem reports.

2011-06-09  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java:
	  Append the min/max range and a transformation matrix for each axis.

	* src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java:
	  Instantiate the InfoGeneratorHelper with a XYChartGenerator instance.

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java:
	  Changed the zoom operation. The zoom values defined in the chart request
	  document are no longer absolute values for a specific axis. Those values
	  represent percental values for the start and end point of x and y axes.
	  E.g. a chart has three axes with the following ranges:
	    - x axis  :  0 - 10
	    - y axis 1: 20 - 40
	    - y axis 2: 40 - 90
	    - zoom values for x: 0.1 - 0.9 (10% - 90%)
	    - zoom values for y: 0.2 - 0.8 (20% - 80%)
	  The produced chart will have the following ranges:
	    - x axis  :  1 - 9
		- y axis 1: 24 - 36
		  y axis 2: 50 - 80

2011-06-09  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java:
	  Map datasets to axes correctly.

2011-06-08  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Calculation4.java:
	  Determine the gauges by their station positions. This hopfully
	  fixes the problem with wrong assigned gauges and invalid segments.

2011-06-08  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Segment.java,
	  src/main/java/de/intevation/flys/artifacts/model/Calculation4.java:
	  Added more debug output.

2011-06-08  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue103 PART 1 (WINFO: Wasserspiegellagenberechnung / Layout-Inkonsistenz)

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Selected values are formatted with the current locale. The static part
	  of the DESCRIBE document will now contain i18n formatted numbers.

2011-06-08  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue93 (WINFO: Benennung der Berechnungsart korrigieren)

	* src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_de.properties: Changed the name of
	  calculation 4.

2011-06-08  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java:
	  Made the range determination more robust against NaN values.

2011-06-08  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  The second y axis is set to position "1". It was set to "2" before, but
	  in that case, there was no position "1".

2011-06-08  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java,
	  src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveExporter.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java:
	  s@m³/s@m\\u00b3/s@

2011-06-08  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java:
	  Only generate an axis element if a axis really exists.

2011-06-07  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java:
	  Simpified array swapping.

2011-06-07  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Use java.util.List instead of java.util.Vector

	* src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.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/FLYSArtifact.java:
	  Removed superfluous imports.

2011-06-07  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  createItem() is not abstract any longer to avoid code repetitionin sub classes.

	* 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/RiverSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/WQSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java,
	  src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java,
	  src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java,
	  src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java:
	  Removed duplicated code, inserted default constructors and Override annotations.

2011-06-07  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java:
	  Append axes range information to the info document.

2011-06-07  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  If feed() fails do not store invalid values in database.

2011-06-06  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java:
	  Removed asymmetrical "- 1" from width calculation.

2011-06-05  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Calculation4.java:
	  Fixed problem when more than one value per segment are given.

2011-06-05  Sascha L. Teichmann <sascha.teichmann@intevation.de>

	Refactored version of "Berechnung 4"

	* src/main/java/de/intevation/flys/artifacts/model/Segment.java:
	  Added instance fields for a reference point (= location of gauge)
	  and backup of values (needed for naming).

	* src/main/java/de/intevation/flys/artifacts/model/WQCKms.java:
	  Added a constructor to be created from a WQKms. This is helpful
	  if a WQKms is replaced by a back jump correction.

	* src/main/java/de/intevation/flys/artifacts/model/Calculation4.java:
	  New. Outfactored version of "W bei ungleichmaessigen Abflusslaengsschnitt".
	  Much cleaner now and it should have a better handling of the corner
	  cases.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Removed the linear interpolation stuff. It is now in Linear. Removed
	  the LinearRemap interpolation method because it is not needed any
	  longer. Added a method to interpolate a given km with a given
	  function.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Removed the old calc 4 and used the new one.

	* src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java:
	  Deleted. Not needed any longer.

	* src/main/java/de/intevation/flys/artifacts/math/Function.java:
	  New. Interface for a uni-variate real function.

	* src/main/java/de/intevation/flys/artifacts/math/Identity.java:
	  New. Implements Function with f(x) = x

	* src/main/java/de/intevation/flys/artifacts/math/Linear.java:
	  New. Implements Function with f(x) = m*x + b

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Factored some stuff out to DoubleUtil. Removed some dead code.
	  Does some rounding correct.

	* src/main/java/de/intevation/flys/utils/DoubleUtil.java: New.
	  Centralized utils surrounding common double operations.

	* src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java:
	  Removed superfluous imports.

2011-06-03  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue90(Diagramm: Trennung der Diagrammfläche und Achsen aufheben)

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java:
	  Determine the ranges of x and y axes. If no zoom ranges are given, we
	  will determine the min and max xy values in the dataset manually,
	  because JFreeCharts adds a margin to the left and right of the data
	  area automatically..

2011-06-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Moved
	  the chart creation into an own public method. This lets the
	  ChartInfoGenerator create charts without duplicating code.

	* src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java:
	  Limited the possible class for generators to XYChartGenerator. This
	  enables the ChartInfoGenerator class to do the whole chart creation
	  stuff itself without outsourcing the code to concrete subclasses.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeCurveInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveInfoGenerator.java:
	  Removed the code to generate charts - this is done in ChartInfoGenerator
	  now.

2011-06-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added new
	  methods to extract the x and y ranges from request document.

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added a
	  method that zooms the chart to the specified x and y ranges.

2011-06-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* doc/conf/conf.xml: Set collection ttl to 6 hours.

2011-06-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/Segment.java:
	  New. Parse segments only once.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Expose new parser to artifacts. TODO: Use it.

2011-06-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Changed interpolation methods to interpolate to an arbitrary position
	  in a given double result array as a preparation for segment independent
	  calculation.

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Removed superfluous import.

	* src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java:
	  Fixed cause for crashing: Run back too far in some siutations.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Refactored range code a bit. Needs more work.

2011-06-01  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java:
	  Interchange the lower and upper x value of the chart if the x-axis is
	  inverted before the matrix values are computed. Now, the matrix is able
	  to work with charts that have an inverted x-axis.

2011-06-01  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: New. A
	  chart info generator generates a document that contains meta information
	  for a specific chart. Concrete instances of this abstract class need to
	  instantiate concrete ChartGenerators and dispatch nearly all methods of
	  an OutGenerator (init(), doOut(), setMaster()) to this instance. The
	  generate() method is implemented in the ChartInfoGenerator itself. It
	  creates a chart with help of the ChartGenerator instance and builds a
	  document that contains meta information of this chart.

	* src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: New.
	  This helper is used to create the chart info document. At the moment,
	  the only information that is included in this document is a
	  transformation matrix to transform image coordinates into chart
	  coordinates.

	  NOTE: The transformation matrix creation needs some work to support
	  charts with inverted X axis.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeCurveInfoGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveInfoGenerator.java:
	  Concrete instances of ChartInfoGenerator that create the chart info for
	  the currently supported chart types.

	* doc/conf/conf.xml: Registered new OutGenerators.

2011-05-31  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Added support for the 'type' paramter of the collection's out()
	  operation.

2011-05-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Use an explicit reference km for interpolation now.

2011-05-30	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* doc/conf/cache.xml: Introduced cache to store the distance info per river.
	  This boosts performance in following ab setup from  3.61 to 39.91 requests/secs.

	  $ ab -c 20 -n 1000 -p distances.xml http://127.0.0.1:8181/service/distanceinfo

	  $ cat distances.xml
	    <?xml version="1.0" encoding="UTF-8"?>
	    <art:river xmlns:art="http://www.intevation.de/2009/artifacts">Elbe</art:river>

	* src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Added
	  an iterator result to avoid construction expensive interim lists.

	* src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: Use
	  the cache if configured.

2011-05-30	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	flys/issue82

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Only successful interpolations are named.

2011-05-27	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java:
	  Make it work independent of river flow direction.

	* src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java:
	  Fixed bug in ordering segments

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Re-enabled
	  calculation of the back jump correction. Fixed more flow direction issues.
	  
2011-05-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Removed call of XMLDebug class which is not in the version control.

2011-05-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Moved the code part that skips themes right after the part that sets the
	  master artifact for the OutGenerator. We need this master artifact to
	  display empty charts - master artifact is used to create titles and
	  axes.

2011-05-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Deactivated themes are not put into the chart.

2011-05-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/AttributeParser.java:
	  Repaired broken XPath expressions to find the output modes in an
	  attribute document of a collection.

	* src/main/java/de/intevation/flys/collections/AttributeWriter.java: This
	  writer will now create a document that has a root node art:attribute.
	  Before these changes, the document's root node was art:outputs which is
	  part of the attribute document but not the right root node.

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Adapted some XPath expressions and corrected the the process to create
	  attribute documents.

2011-05-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java:
	  Made it work independent of from/to order.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Added method to extract the ranges correctly from data.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Use the correct ranges. Comment out backjump detection temporarily.

2011-05-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java:
	  Generate fields for w/q input depend on flow direction.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Moved km up question out of loop.
2011-05-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Take the flow direction into account.

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Prevent NPE.

	* src/main/java/de/intevation/flys/artifacts/states/RangeState.java:
	  Allow to be 'from' greater than 'to' in ranges.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Negate
	  step if 'from' is greater than 'to'.

2011-05-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Round exploded values to a precision of 1e-6.

2011-05-25	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	Qs are now stored in ranges for each column.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory2.java:
	  Deleted.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java:
	  Was WstValueTableFactory2.

	* src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Fixed
	  node linking bug. Removed dead code.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Q values are now stored in range trees by each column. The qs of the rows
	  are removed and the calculations are adjusted. Removed dead code.

2011-05-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java:
	  Moved cache name to WstValueTableCacheKey. Do not cache null references.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableCacheKey.java:
	  Moved cache name into this class.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Store QRangeTree for each column of value table. TODO: Use them!

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory2.java:
	  Intended as a replacement for WstValueTableFactory, but is work in progress.

	* src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Fixed
	  index errors and added methods to dump as graphviz graph.

2011-05-24  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WQSelect.java:
	  Improved the validation of WQ values.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Use the
	  correct input data object to determine the selected WQ mode (range or
	  single input).

2011-05-24  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-40 (part I/II)

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Write default values (values already selected by the user before) of the
	  input data items into DESCRIBE.

2011-05-24  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  Removed needless imports.

2011-05-24  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-85 (part III/III)

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  Added a static function that returns the kilometer values (double[])
	  from locations input (whitespace separated double values).

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adapted
	  the getKms() method. It will now return a computed array of kilometers
	  if we had inserted a range, or it will return the inserted kilometers if
	  we had inserted locations.

2011-05-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java:
	  Moved cache key to separate class.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableCacheKey.java:
	  New. The new cache key class.

2011-05-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java:
	  Model to store the q values of a WST column efficiently. First
	  building block not to store the q values directly aside the
	  w values.

2011-05-24  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-85 (part I/III)

	* doc/conf/artifacts/winfo.xml: Added two further field 'ld_mode' and
	  'ld_locations' to the range/locations state to track the selected mode
	  and locations.

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  Added methods to validate the user inserted locations.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a
	  method to determine of a range or locations have been inserted.

2011-05-23  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-62 (part II/II)

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Dump the
	  artifacts state/data in DEBUG mode in describe().

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/DefaultState.java,
	  src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/WQSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java,
	  src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java:
	  States will no longer store data. The only reason for states storing
	  StateData is to know about the necessary data for this state. If a State
	  needs to access the user input for a specific StateData object, it needs
	  to query the FLYSArtifact which stores the data.

2011-05-23  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a
	  method to dump the artifacts state(s)/data.

2011-05-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	flys/issue84

	* src/main/java/de/intevation/flys/artifacts/model/WstFactory.java:
	  Forget to select wst kind.
	  
2011-05-20	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	flys/issue81

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  weights for kms were swapped. 

2011-05-20  Ingo Weinzierl <ingo@intevation.de>

	Tagged RELEASE 2.3.1

2011-05-20  Ingo Weinzierl <ingo@intevation.de>

	* Changes: Prepared changes for the upcoming release.

2011-05-20  Hans Plum <hans@intevation.de>

	* NEWS:
	Hint to Release 2.3.1. For further information look into module
	flys-client/NEWS

2011-05-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java (getExplodedValues):
	  Increment kms array size by one to take the end of range, too.

2011-05-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java:
	  Sort by rows (should not be necessary).

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Use unsharp km lookup (epsilon = 0.0001). This fixes the problem
	  that some kms were not found.

2011-05-19  Ingo Weinzierl <ingo@intevation.de>

	  flys/issue66

	* src/main/resources/messages_en.properties: Fixed broken template.

2011-05-19  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Set the name of the computed discharge curve objects.

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  The curves of this chart will now have names that consist of the word
	  'Discharge Curve', the river name and the kilometer that has been used
	  for the computation.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added i18n strings for the
	  computed discharge curves.

2011-05-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Added convenience method isQ() to determine if we are
	  doing Q calculations.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Reintroduced titles for the "W for unausgeglichene Abfluesse".

2011-05-19  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  The curves will now have names that consist of the gauge name and its
	  valid time range.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added i18n strings for the
	  discharge curves.

2011-05-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Removed dead code.

2011-05-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Use the correct method to generate kms.

	* src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java:
	  Added some logging to test the map in debug mode.

2011-05-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Made getExplodedValues static.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Use new logic to calculate "W für ungleichwertige Abfluesse".
	  Not working, yet.

	* ChangeLog: Fixed former entry.

2011-05-18  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Registered the WST export for discharge
	  longitudinal sections.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Set the
	  names of the discharge longitudinal section computation results.

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java:
	  The W/Q curves in the chart will now have names.

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java:
	  The WstWriter is filled with column names in an own method. So, we are
	  able to override this process in subclasses.

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java:
	  Adapted the column names for the WST export.

2011-05-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	Work on flys/issue69

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Use new logic to calculate "Wasserstand/Wasserspiegellage".
	  Compared to desktop FLYS are the results are structurally right 
	  but a bit off in the positions after the decimal points.
	  Maybe a result of the interpolation? Need to debug this.

2011-05-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  W and Q curves will now have names based on the defined W or Q values
	  for the waterlevel computation.

2011-05-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/NamedObject.java:
	  New. This object is used to give objects a name.

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Inherit
	  from NamedObject now. Because we need to display names for those objects
	  in different places.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The WQKms
	  objects returned by a waterlevel computation will now have names.

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java:
	  Insert the column names for the WSTs into the WstWriter.

	* src/main/java/de/intevation/flys/exports/WstWriter.java: The column
	  names are written into the head of the WSTs now.

2011-05-17  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstLine.java: New. This
	  class is used to store the W/Q values of a specific kilometer of a WST.

	* src/main/java/de/intevation/flys/exports/WstWriter.java: New. A writer
	  that creates WSTs.

	  TODO: The header of the WSTs is not finished. The Q descriptions are
	  missing.

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java:
	  Enabled WST exports.

	* doc/conf/artifacts/winfo.xml: Registered the WST export for waterlevels.

2011-05-17  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/utils/Formatter.java: New. This class
	  supports functions to retrieve formatters for specific types of data
	  used in FLYS.

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveExporter.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java,
	  src/main/java/de/intevation/flys/exports/AbstractExporter.java:
	  Removed the formatter declaration - the whole formatter stuff is done in
	  Formatter now.

2011-05-17  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-72

	* src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java:
	  Repaired broken XPath expressions to extract start and end kilometer.

2011-05-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Removed the Hibernate loading stuff.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java:
	  New. The Hibernate loading.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Use the WstValueTableFactory for loading now.

2011-05-17  Ingo Weinzierl <ingo@intevation.de>

	Tagged RELEASE 0.1 aka Version 2.3.0

2011-05-16  Hans Plum <hans@intevation.de>

	* NEWS:
	New. Giving some user specific perspective to new functionality and
	changes. This file references releases dates only; details can be find
	in the client module at flys-client.

2011-05-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	First step to calculate "W fuer ungleichwertige Abfluesse" correctly.
	flys/issue55

	* src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java:
	  New. Remaps "gleichwertige" Q values to the corresponding
	  "ungleichwertige" Q values depending on km.
	  
	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Remap the Q values "ungleichwertig" depending on the 
	  "gleichwertige" ones.

2011-05-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	First step to fix flys/issue69

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  New code path to implement the calculation of "Wasserstand/Wasspiegellage"
	  correctly. TODO 1: Use new path in UI. TODO 2: Remove unused old code.

2011-05-13  Ingo Weinzierl <ingo@intevation.de>

	* Changes: Prepared Changes for the upcoming release 2.3 - see Changes
	  file to get to know about the changes of the version numbers.

2011-05-13  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-37

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: This
	  state would be happy if there is a UI provider called "river_panel".

2011-05-11  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added new
	  methods that return the requested chart size as integer array [width,
	  height]. The requested size is read from the incomding request document.

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: The size
	  of a chart is no longer static. The requested size is fetched using
	  ChartGenerator.getSize().

2011-05-11  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-52

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  The X-Axis of such a chart is inverted, if the head of the river is not
	  at kilometer 0. This type of charts always have the head of the river at
	  the left side.

2011-05-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Make incoming XML symmetric to DistanceInfoService.

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-47

	* 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/LongitudinalSectionGenerator.java:
	  Adjusted temporarily the color of the W, Q and corrected W curves to
	  distinguish each other.

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java:
	  Adjusted the plot of xy charts - the gridlines are displayed now.

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	  ISSUE-53

	* src/main/java/de/intevation/flys/artifacts/resources/Resources.java:
	  Added a method that returns the preferred locale based on the available
	  locales of the server and the desired locales of the request (CallMeta).

	* src/main/java/de/intevation/flys/exports/AbstractExporter.java: Added a
	  method that creates a number formatter with minimum and maximum digits.

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java,
	  src/main/java/de/intevation/flys/exports/WaterlevelExporter.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveExporter.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java:
	  Formatted the number values of the CSV exports.

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/RangeWithValues.java:
	  New. A data structure that enables us to save a data triple: a range
	  that consist of lower and upper double value and a set of values that
	  belong to this range.

	* src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java:
	  Implemented the validation of W/Q values.

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/AbstractExporter.java: New
	  method to retrieve i18n messages based on keys.

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java,
	  src/main/java/de/intevation/flys/exports/WaterlevelExporter.java,
	  src/main/java/de/intevation/flys/exports/DurationCurveExporter.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java:
	  Added headers for CSV exports.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added new i18n strings for
	  CSV headers.

2011-05-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Fetches river name from incoming XML document. If no river is given all 
	  infos about all rivers are listed.

	* src/main/resources/metadata/template.xml: Templates honors the 'river'
	  parameter.

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Extended to pass parameters to the templating. Added support for
	  type conversion.

	* src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java:
	  Take parameters as an initial stack frame.
	  
	* src/main/java/de/intevation/flys/artifacts/services/meta/TypeConverter.java:
	  New. Converts types off stacked variables.

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added a
	  method to add subtitles to charts. The implementation in this class does
	  not add any subtitle. Concrete subclasses may override this method to
	  add some.

	* src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  Add subtitles to charts.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added i18n templates for
	  compound messages (chart subtitles).

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/resources/Resources.java:
	  Added new methods to retrieve translated compound messages.

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/OutGenerator.java: Added a
	  method to set the master artifact that should be used for some special
	  operations.

	* src/main/java/de/intevation/flys/exports/ChartGenerator.java,
	  src/main/java/de/intevation/flys/exports/AbstractExporter.java:
	  Implement the setMasterArtifact() method of the interface.

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Call OutGenerator.setMasterArtifact().

	  NOTE: The determination of the master artifact needs to be implemented!

2011-05-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed
	  hard coded dev code that defined a WQ mode.

2011-05-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  Stripped ugly extra whitespace from output introduced by
	  templating.

2011-05-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/resources/metadata/template.xml: Added forgotten
	  columns of fixation WSTs.

2011-05-09  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added a
	  method to retrieve i18n strings.

	* src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  Enabled i18n support for chart title and axes labels.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added i18n strings for the
	  chart types above.

2011-05-09  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java:
	  New. This OutGenerator exports the data of a discharge longitudinal
	  section computation.

	* doc/conf/conf.xml: Added the DischargeLongitudinalSectionExporter.

	* doc/conf/artifacts/winfo.xml: Added the exporter with CSV facet to the
	  discharge_longitudinal_section state.

2011-05-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java:
	  Added code to make back jump correction work with both
	  potential flow directions.

2011-05-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/resources/metadata/template.xml:
	  Added data cage configuration for 'Längsschnitt'.

2011-05-06  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Added the missing Q facet for discharge
	  longitudinal sections.

	* src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: New. A
	  derived dataset to store W/Q values with corrected Ws for a kilometer
	  range.

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Some new
	  methods and a new constructor to initialize this data object with a
	  predefined set of values.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New
	  methods to retrieve the W/Q values for the 'discharge longitudinal
	  section' computation.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: New
	  methods to retrieve and compute data used for the 'discharge
	  longitudinal section' computation.

2011-05-05  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java:
	  Bugfix: just write the ranges of gauges into the DESCRIBE if the
	  'wq_values' data item is required.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added i18n messages used in
	  the DESCRIBE of the WQAdapted state.

2011-05-05  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  Changed the title of the y-axis (now 'W [NN+m]').

2011-05-05  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Improved the transition model to reach the
	  output state for creating 'discharge longitudinal section' charts.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a
	  method that returns all gauges of the selected river based on a the
	  given kilometer range.

	* src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: New.
	  This state creates a set of elements for the DESCRIBE that consist of a
	  tuple of kilometer values. The number of elements depend on the number
	  of gauges intersected by the given kilometer range.

	* src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java:
	  New. This state is the output state that is reached after the 'discharge
	  longitudinal section' computation has been chosen.

2011-05-05  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Default
	  step width between two kilometers added - if no step width is given,
	  this default width is used.

2011-05-05  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Fixed a potential NullPointerException if there is just a single
	  kilometer given to create a longitudinal section.

2011-05-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* pom.xml: Added http://repository.jboss.org/maven2 repo
	  to fix flys/issue30

2011-05-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  To make diagram generation possible ws are now generated from qs
	  because they are many ws having different qs.

2011-05-04  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java:
	  Fetch the WQ data from WINFO artifact and write those values into the
	  CSV export.

2011-05-04  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added
	  methods to compute and retrieve the data for discharge curves (computed).

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  Fetch the computed discharge curve data from WINFOArtifact and add the
	  values into the JFreeChart dataset.

2011-05-04  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Added new transitions and states to enable
	  the WINFO artifact for computing discharge curves.

	* doc/conf/conf.xml: Added OutGenerators that generate computed discharge
	  curves and exports for its data.

	* src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java:
	  New. This state is reached if the user chose the computed discharge
	  curve.

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java:
	  New. This is only a stub implementation at the moment. This
	  OutGenerator should create computed discharge curves later. It extends
	  the DischargeCurveGenerator which should do the same stuff for discharge
	  curves for gauges.

	* src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java:
	  New. This is only a stub implementation at the moment. This OutGenerator
	  should create the exports of the discharge curve computation.

2011-05-03  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Added a new output mode for the duration
	  curve state (CSV export).

	* doc/conf/conf.xml: Added a new OutGenerator to export duration curve
	  computations.

	* src/main/java/de/intevation/flys/exports/AbstractExporter.java: New.
	  This abstract OutGenerator represents the base class for exporting
	  computed data. Currently, the CSV export is supported.

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Moved
	  the most code to export to CSV into the AbstractExporter.

	* src/main/java/de/intevation/flys/exports/DurationCurveExporter.java:
	  New. This exporter exports the computed data of a duration computation.

2011-05-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Modified a wrong debug statement which would confuse the user.

2011-05-03  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Added a new output mode for the waterlevel
	  state (CSV export).

	* doc/conf/conf.xml: Added a new OutGenerator to export waterlevels.

	* src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: New.
	  This OutGenerator exports the data of a waterlevel computation. Note:
	  It is necessary to specify the desired facet (e.g.
	  'waterlevel_export.csv').

	* pom.xml: Added a dependency to OpenCSV.

2011-05-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Introduced an "export" output target. If the target is "export", a
	  facet (read from the incoming xml document) is a necessary parameter
	  that determines which facets are written to the output.

2011-05-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/resources/messages_en.properties: Bugfix: replaced german
	  string (copy & paste mistake).

2011-05-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added new i18n strings for
	  for the location selection.

2011-05-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java:
	  New. An OutGenerator for creating duration curves.

	* src/main/java/de/intevation/flys/artifacts/model/WQDay.java: New. A
	  model class to store necessary data for creating W and Q facets of a
	  duration curve. This model stores W, Q and Days.

	* src/main/java/de/intevation/flys/artifacts/model/MainValuesFactory.java:
	  Added a function to retrieve tuples of (day, q) based on a given gauge -
	  these tuples are necessary for creating duration curves.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added
	  methods to compute and retrieve the data necessary for creating duration
	  curves.

	* src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java:
	  Bugfix: improved the access to the location array (avoid
	  NullPointerException).

	* doc/conf/conf.xml: Registered the new OutGenerator for duration curves.

2011-05-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* contrib/visualize-transitions.xsl: State quoting was done wrong.

2011-05-02  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Enhanced the transition model to reach the
	  final state for creating duration curves.

	* src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java:
	  New. This state should be reached to just insert an array of locations.

	* src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java:
	  New. This state is reached if the duration curve calculation is
	  selected.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adjusted
	  getDistance() so that it takes care on inserted locations - not just
	  inserted ranges.

2011-05-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java:
	  Flush/persist caches at program exists.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Commented out too eloquent debug output.

2011-05-02  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  Uses the methods of FLYSArtifact to retrieve the necessary information
	  rivername and selected distance.

2011-05-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Added interpolateW method to take reference to result ws array
	  as an argument to avoid expensive array allocations in km iterating
	  loops.

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java:
	  Added a constructor to create backing trove datastructure
	  with the right capacity.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Move allocation of result ws out of km loop.

2011-05-02  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Added two further data items in the WQ
	  selection state. Those items are necessary to store the information
	  about the selected mode (range/single selection) and  the values of the
	  single selection.

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: If
	  there is no value for a data item, this item is not written into the
	  static DESCRIBE part.

	* src/main/java/de/intevation/flys/artifacts/states/RangeState.java,
	  src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  Renamed the method to validate upper and lower values.

	* src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: This
	  state can now handle values inserted in the single selection. Therefore,
	  new validate methods has been added.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The
	  methods getWs() and getWs() take care on the values inserted in the
	  single insert mode of the client which enables the user to insert single
	  W and Q.

2011-05-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Repaired getQForW() by calculating indices on right dimension.

2011-05-02  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New
	  methods for retrieving selected W values (getWs()).

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The
	  method for retrieving waterlevel data takes care on selected Ws, now.
	  The selected Ws are transformed using the DischargeTables.getQForW()
	  into Q values.

2011-05-02  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Removed an unused parameter 'result' of getQForW().

2011-05-02  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Removed
	  the getDataset() method and replaced it with a addDataset() method.
	  On this way, concrete subclasses of this OutGenerator can have multiple
	  datasets (e.g. different datasets for W and Q). This abstract method is
	  called after the chart generation is finished.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  Both classes implement the addDataset() method. The
	  LongitudinalSectionGenerator has already multiple datasets for W and Q.
	  Both are added to the chart - both have an own range axis.

2011-05-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Use the cache for the wst value table if configured.

	* doc/conf/cache.xml: Choose a more precise name for the 
	  wst value table cache.

2011-04-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* pom.xml: Added dependency to Ehcache. Apache 2.0 license.

	* doc/conf/conf.xml: Added configuration of ehcache.

	* doc/conf/cache.xml: New. Cache configurations.

	* src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java:
	  New. Factory to access caches.

2011-04-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Forgot to add.

	* src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java:
	  New. Given a database connection and a XML template it generates
	  an output with meta data about the database.

	* src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java:
	  New. Holds prepared statements optimized to be run in the stack of
	  contextes.

	* src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java:
	  New. Model to hold a hierarchical scope of variables.

	* src/main/java/de/intevation/flys/artifacts/services/meta/ResultData.java:
	  New. Stores data set fetched from a sql select to be iterated in
	  a context.

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java,
	  src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Removed superfluous imports.

2011-04-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* doc/conf/conf.xml: Added meta data service.

	* src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java:
	  Stub for the meta data service.

	* src/main/resources/metadata/template.xml: Initial template for
	  the meta data service.

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Bugfix: Now, curves for Q values are drawn into a longitudinal section
	  chart as well. Therefore, it was necessary to change the datastructure
	  of the inner class ThemeList that stores all themes included in a chart
	  in an ordered list (stored in a java.util.Vector now).

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/XYChartGenerator.java: New. An
	  abstract base class for ChartGenerators that create XY charts.

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  Sourced the generate() method out to the XYChartGenerator.

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  Implemented the methods to add W and Q facets to the chart.

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Improved
	  the calculation of the step with for ranges.

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Added a
	  method that returns the number of elements stored in the data pool.

2011-04-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java:
	  Added a get() method which takes destination array as an
	  argument.

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Changed the
	  data structure to store w, q and kms values from List<Double> to
	  TDoubleArrayList which stores native double values instead of big
	  Double values.

	* pom.xml: Added the GNU Trove dependency.

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/OutGenerator.java: Added the
	  name a the requested facet to doOut(). Concrete generators should just
	  create output for this facet now.

	* src/main/java/de/intevation/flys/exports/ChartGenerator.java,
	  src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java,
	  src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  Adapted the method signature of doOut().

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Adapted the method call of OutGenerator.doOut().

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/themes.xml: Added mappings for the facets
	  longitudinal.section.w and longitudinal.section.q.

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added some
	  methods to retrieve necessary information for computing the data of a
	  waterlevel.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added
	  methods to compute and retrieve the data of a waterlevel computation.

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WQKms.java: New. This
	  model class represents a pool of data triples that consist of W, Q and
	  Kms information. This class might be used to compute data for creating
	  longitudinal section curves (which are based on those W, Q and Kms
	  values).

2011-04-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Bugfix: Removed endless loop and a bug while iterating over Hibernate
	  results.

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java:
	  New. An OutGenerator that creates longitudinal section curves.

	  NOTE: This is just the stub - the out creation needs to be implemented!

	* doc/conf/conf.xml: Added the LongitudinalSectionGenerator.

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/conf.xml: Bugfix: Added missing <output-generators> section.

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WaterlevelState.java: New.
	  This state should be reached if the 'calc.surface.curve' calculation
	  method has been chosen.

	* doc/conf/artifacts/winfo.xml: Modified a transition and added the
	  WaterlevelState. This state is reached if the 'calc.surface.curve'
	  calculation method has been chosen. It currently has 1 output - a
	  longitudinal section that is not implemented yet!

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/transitions/ValueCompareTransition.java:
	  New. This transition is valid if the a data object of the current
	  artifact equals/notequals a configured value in the transition model.

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Bugfixes:
	  - Adapted the parameters of the isStateReachable() call - added the
	    artifact and the current state.
	  - Append the outputs of a current state if the state is filled with
	    valid data.

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java:
	  Added the missing init() method that has been introduced in the
	  interface some commits ealier.

	* src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java:
	  Call init() after a Transition has been created.

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/AttributeWriter.java:
	  Bugfix: Introduced a <art:outputs> node in the attribute document of a
	  Collection that contains further <art:output> nodes - instead of having
	  multiple <art:output> nodes at toplevel of the document.

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Adapted the XPath to retrieve the outputs in the attribute document of a
	  Collection.

2011-04-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* contrib/visualize-transitions.xsl: Added to create a 
	  Graphviz digraph out of the config.xml. Usage:

	  $ xsltproc --stringparam base-dir ../doc/conf/ \
	    contrib/visualize-transitions.xsl \
	    doc/conf/conf.xml > transitions.dot

	  $ dot -Tsvg -o transitions.svg transitions.dot

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/WQSelect.java:
	  If no data has been inserted so far, an IllegalArgumentException is
	  thrown.

2011-04-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java::
	  A lot of new methods to retrieve the theme of a facet - used while
	  creating the output of a facet/artifact. If a facet has no theme yet, it
	  is initialized.

2011-04-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/AttributeParser.java,
	  src/main/java/de/intevation/flys/collections/OutputParser.java: Removed
	  useless imports.

2011-04-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ChartGenerator.java: New. An
	  abstract OutGenerator that might be used to create chart output. Some
	  basic things that are equal in all charts should be done here!

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  This OutGenerator no longer implements the OutGenerator directly, but it
	  extends the ChartGenerator now.

2011-04-27  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Restructured the out() operation of a collection: Now, we collect a list
	  of artifacts/facets and use this for the OutGenerator. Its doOut()
	  method gets the attribute of an artifact - the position and the active
	  state is managed by the Collection itself.

2011-04-26  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: New.
	  a specialized facet that stores information about its position and its
	  state (active/inactive) in an output of a collection.

	* src/main/java/de/intevation/flys/collections/AttributeParser.java: New.
	  This parser takes the attributes (XML) of a collection and extracts the
	  contained outputs with its facets. The result is a Map<String, Output>.

	* src/main/java/de/intevation/flys/collections/OutputParser.java: New.
	  This parser is used to query the artifact's DESCRIBE and to extract the
	  supported outputs. The result is a Map<String, Output>.

	* src/main/java/de/intevation/flys/collections/AttributeWriter.java: New.
	  This writer merges the outputs contained in an attribute of a collection
	  with the outputs of a collection's artifacts.

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  The attributes of a collection are written into its DESCRIBE document
	  now. The OutputParser and AttributeParser are used to read the supported
	  attributes by the collection and its artifacts - the AttributeWriter is
	  used to merge both attributes and create a final attribute document.

2011-04-26  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java,
	  src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  The facet-2-theme mappings are initialized at startup and stored in the
	  FLYSContext.

	* src/main/java/de/intevation/flys/themes/ThemeFactory.java: Added a
	  function that retrieves a theme from FLYSContext based on its name.

2011-04-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Corrected a silly c&p mistake.

2011-04-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java:

	  Implementation of the "Ruecksprungkorrektur" to be done in
	  "W fuer angepassten Abflusslaengschnitt".

	  All tests show the expected results. In some corner cases the
	  algorithm described in the "Anwenderhandbuch" chapter 3.3.4.3 "Korrektur"
	  has some definition shortcomings:

	  a - What should happend when you cannot find point 2 because
	      you cannot step back one quarter from point 3 because there
	      is no data there any more (river too short in this direction)?
	      The implemented algorithm raises point 3' only to an
	      according factor. E.g. If you can step back the whole quarter
	      distance the elevation is the full quarter. If you can
	      step back only the half of the quarter the elevation is
	      only an eighth.

	  b - If the water heights between point 2 and 3 are constant then
	      the algorithm will produce a spline interpolation that
	      lowers those values. Is this intended?

	  For real data the back jumps are expected to be more in the middle
	  of the distance ranges so the corner cases are maybe not so
	  important.

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java:
	  Removed superfluous import.

2011-04-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/themes/ThemeFactory.java: Removed debug
	  code that has been commited by accident.

2011-04-21  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/themes.xml: New. A first small theme configuration.

	* doc/conf/conf.xml: Added a link to the theme configuration.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java:
	  Defined a key that is used to store a themes map in the FLYSContext.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  The theme configuration is read at startup and the themes are stores in
	  the FLYSContext.

2011-04-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/themes/Theme.java,
	  src/main/java/de/intevation/flys/themes/DefaultTheme.java:
	  New. The interface and its default implementation that represents themes
	  used to style charts and maps.

	* src/main/java/de/intevation/flys/themes/ThemeField.java,
	  src/main/java/de/intevation/flys/themes/DefaultThemeField.java:
	  New. The interface and its default implementation that represents fields
	  in themes. A theme might be "Lines" and one of its field might be
	  "Color" or "Size".

	* src/main/java/de/intevation/flys/themes/ThemeFactory.java: A factory
	  that creates new themes based on a theme configuration.

2011-04-20	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Implementation of "Abflusskurve/Abflusstafel" calculation.

	  Added method interpolateWQ() which takes an km and results in a
	  tuple of two double arrays containing the w/q values interpolated
	  between the surrounding w/q values of the table.
	  w values are interpolated linear, q values with a cubic spline.

	  Drawing w over q gives you the discharge table at the given km.

	  !!! This code needs testing !!!

2011-04-20	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* pom.xml: Added dependency to Apache Commons Math 2.2 (Apache License 2.0)

2011-04-20	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Fix problem when sorting by q (copied w instead of q).

2011-04-20  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Fixed broken HQL statement.

2011-04-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  add a method interpolateW() which takes an array of
	  q values and returns an equal sized array of w values.
	  This is essentially the "Wasserstand/Wasserspiegellagen" calculation
	  of desktop FLYS.

	  If you want to do a calculation with given w values you have
	  to convert the w values with DischargeTables.getQForW() first.

	  !!! This code needs heavy testing !!!

2011-04-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  We need a getQForW() method and not getWForQ() because when
	  doing a "Wasserstand/Wasserspiegellagen" calculation with given
	  w values these values need to be translated to q values with
	  the master discharge table.

2011-04-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Sorting of q values was done wrong.

2011-04-19  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java:
	  Ordered the list of annotations returned by this factory based on its
	  range.

2011-04-19  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java:
	  New. This service returns an XML document that includes the main values
	  of a gauge based on a river name, a start and an end point.

	* doc/conf/conf.xml: Registered the MainValuesService.

2011-04-19  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/MainValuesFactory.java:
	  A factory that provides methods to return MainValues.

2011-04-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Added static method getWForQ() to interpolate a w value for
	  a given q value based on a given discharge table.
	
2011-04-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Added convenience constructors/methods to ease the access to the master
	  discharge table of a gauge.

2011-04-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Moved the query complexity into view 'wst_value_table' and
	  used this instead.

2011-04-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java:
	  Fetches w/q value tables from the backend. TODO: Move this
	  to the backend and use a view.

2011-04-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed
	  the error key that is thrown if no input data was found so that the key
	  is usable for GWT's i18n mechanism.

2011-04-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java:
	  The inserted river is validated now (overrides validate() of
	  DefaultState).

2011-04-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java:
	  The inserted calculation method is validated now (overrides validate()
	  of DefaultState).

2011-04-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  The input data of feed() are validated using the DefaultStates
	  validate() method.

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  New method validate() that needs to be overidden by concrete subclasses.
	  It should return true, if the data of the State is fine, otherwise it
	  should raise an exception.

	  NOTE: The exceptions are not translated in the server but in the client!

	* src/main/java/de/intevation/flys/artifacts/states/RangeState.java: New.
	  This abstract class exists to provide some methods for handling ranges.
	  Currently, there is a method that validates a given range based on
	  min/max values.

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/WQSelect.java:
	  Implemented input data validation for ranges.

	  NOTE: The input validation of concrete values has not been implemented
	  yet!

2011-04-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Removed debug code that has been commited by accident :-/

2011-04-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The
	  getGauge() method returns the first gauge based on the given start and
	  end point of the river.

	* src/main/java/de/intevation/flys/artifacts/states/WQSelect.java:
	  Fixed potential bugs: if no gauge could be determined, the default
	  values for W and Q are the minimum and maximum double values.

2011-04-15  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Fills
	  the DESCRIBE with default values for W and Q.

2011-04-15  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/WstFactory.java:
	  New. Returns Wst object - based on a river.

2011-04-15  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Now
	  provides some methods that return some basic objects inserted while
	  parameterization: River, Gauge and so on.

2011-04-15  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java,
	  src/main/java/de/intevation/flys/artifacts/services/RiverService.java:
	  Bugfix: Repaired broken imports of the SessionHolder.

2011-04-15  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java:
	  Moved this class to flys-backend.

	* src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java,
	  src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java,
	  src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java,
	  src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java,
	  src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java:
	  Adapted imports of the SessionHolder.

2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* trunk/src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java,
	  trunk/src/main/java/de/intevation/flys/artifacts/services/RiverService.java:
	  Acquire/release sessions in services to avoid db connection leaks.

2011-04-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Changed some method signatures - added a reference to the owner
	  Artifact.

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/WQSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java:
	  Modified method signatures based on the changes in DefaultState.

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  Added default values to the dynamic part of DESCRIBE.

2011-04-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java:
	  Added a function that returns a River object based on a given river
	  name.

2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java,
	  src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java,
	  src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java,
	  src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java:
	  Static methods are using the SessionHolder, too.

2011-04-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java:
	  Added the setup() method that has been added to the interface
	  description in the last commits.

	* doc/conf/conf.xml: Registered the SessionCallContextListener as
	  CallContext.Listener.

2011-04-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java:
	  Bugfix: Call correct method to retrieve an instance of
	  SessionFactoryProvider.

2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java:
	  New. Contains thread local session holder for hibernate sessions.

	* src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java:
	  Uses session from SessionHolder.

	* src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java:
	  Interacts with SessionHolder now.
	
	* src/main/java/de/intevation/flys/exports/ChartExportHelper.java:
	  Removed superfluous import.
	
2011-04-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java:
	  Implementation of a CallContext.Listener to open/close Hibernate
	  Sessions for each request.

2011-04-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Some modifications related to the last commit - modification of the
	  describe() signature of a State.

2011-04-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java:
	  Removed. We do not need a state to select a gauge - the selection takes
	  place by choosing a start and an end point.

2011-04-13  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java:
	  Bugfix: added missing label node to root node and a namespace to the
	  data node.

2011-04-12  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  The name of the artifact 'winfo' is written into the DESCRIBE document
	  now. We need this to have a proper way to distinguish between different
	  artifacts in the UI.

2011-04-12  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Bugfix:
	  States are filled with data before they describe themself.

2011-04-11  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java:
	  New. A factory that returns the annotations of a specific river.

	* src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java:
	  New. This service provides a document that contains information about
	  distances of a river.

	* doc/conf/conf.xml: Registered the DistanceInfoService.

2011-04-06  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  This collection overrides the out() operation now. The incoming request
	  document is read and the related OutGenerator is used to create the
	  output.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed
	  the code to create discharge curves. It has moved to the
	  DischargeCurveGenerator which now does this work.

2011-04-06  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/OutGenerator.java: The
	  generate() method throws an IOException now.

	* src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java:
	  New. This OutGenerator creates discharge curves.

2011-04-06  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed
	  the visibility of the getData() method. It's now public, because the
	  OutGenerator needs an artifact's data.

2011-04-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/**/*.java: Removed trailing whitespace.

2011-04-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Make project compilable again by
	  commenting out a not existing XMLDebug reference.

2011-03-31  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  Added code to parse the configured OutGenerators and to save them (in a
	  map) in the FLYSContext.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java:
	  Added a key that is used to save the OutGenerators Map in the context.

2011-03-31  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/OutGenerator.java:
	  New. This interface is used to generator different types of output.
	  ArtifactCollections will make use of this interface to create a
	  collected output of all its artifacts.

2011-03-30  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Removed the Backend from FLYSArtifactCollection - used ArtifactDatabase
	  operations instead.

	* TODO: Removed 'remove Backend reference' TODO.

2011-03-30  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Enhanced the configuration of the
	  discharge curve output mode. This output now provides three facets - W,
	  Q and the curve itself.

2011-03-30  Ingo Weinzierl <ingo@intevation.de>

	Tagged RELEASE 0.1

2011-03-30  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Renamed an output mode in the WINFO
	  artifact configuration.

2011-03-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_de.properties: Changed a german string.

2011-03-29  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java:
	  Modified the available calculation modes and its order in the DESCRIBE
	  document.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_de_DE.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Adapted the names of
	  calculation modes.

2011-03-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Added the hash code of an artifact to the artifact part of the
	  collection's DESCRIBE document.

2011-03-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Changed
	  the background color of discharge curves to white.

2011-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Cache the scale, too. Otherwise two calls to getValues() with
	  different arguments will result in the same output.

2011-03-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Introduced a 'scale' parameter in the getValues() method.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Filled
	  the out() operation with code that draws a discharge table of one or
	  more gauges specified by the given range in entered in a previous state.

2011-03-28  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/exports/ChartExportHelper.java:
	  New. A helper class to exports charts.

	* pom.xml: Added dependencies to iText, Batik and JFreeChart.

2011-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/importer/PegelGltParser.java:
	  Fixed swap of operands.

2011-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java:
	  New. Load gauges for a river and filter them for given
	  ranges.

2011-03-25	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  Store data in a double [][] instead of interleaved double []
	  to be compatible with org.jfree.data.xy.DefaultXYDataset.

2011-03-25  Ingo Weinzierl <ingo@intevation.de>

	* TODO: Removed 'i18n' and 'step-back' TODOs and added an issue to remove
	  the Backend reference from FLYSArtifactCollection.

2011-03-25  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  Added missing artifact namespace of an attribute in the DESCRIBE
	  document.

2011-03-24  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:
	  New. This ArtifactCollection overrides the DefaultArtifactCollection to
	  implement FLYS specific describe() and out() operations.

	* doc/conf/conf.xml: Use the FLYSArtifactCollection instead of the
	  DefaultArtifactCollection for this application.

2011-03-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java:
	  New. Fetches values of discharge tables in form of packed
	  w/q double arrays for given gauges.

	* src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java:
	  Removed needless import.

2011-03-24  Ingo Weinzierl <ingo@intevation.de>

	* src/main/resources/messages_de_DE.properties: Added a german resource
	  bundle to avoid exceptions in the flys artifacts. Sometimes, the
	  Resources class is not able to find a 'de_DE' bundle and throws an
	  exception. This is really strange, because it should use the 'de' bundle
	  in that case, but it doesn't.

2011-03-23  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added
	  some code to append the output modes of previous states to the DESCRIBE
	  document.

	  TODO: Determine if the current state is already filled with data and
	  append its output modes as well!

2011-03-22  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Enhanced the location_distance state with
	  an output mode 'discharge_table'.

2011-03-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Write human readable strings as label attribute into the DESCRIBE
	  output. Those labels are used to be displayed in the GUI.

2011-03-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java:
	  Added some further calculation types.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added i18n strings for the
	  calculation types

2011-03-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Implemented the step-back part of the advance() operation.

2011-03-21  Ingo Weinzierl <ingo@intevation.de>

	* src/main/resources/messages_de.properties: Fixed a german umlaut.

2011-03-18  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Added new states for entering a
	  location/distance and w/q.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: New string for the
	  location/distance and w/q input states.

2011-03-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/WQSelect.java:
	  New. A state for the W/Q input of the WINFO parameterization.

2011-03-18  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Append an attribute 'uiprovider' to the dynamic UI node.

	* src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java:
	  New. A state for the location/distance selection of the WINFO
	  parameterization.

2011-03-17  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Added a new method getUIProvider() that might be overriden by concreted
	  subclasses that should be rendered with a specific UIProvider.

2011-03-17  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  The static UI part is created by the previous states now. This makes it
	  possible to group the data objects (which is necessary to group the
	  objects in the ui).

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Added a describeStatic() method that creates a node that contains the
	  data of that state.

2011-03-17  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/RiverService.java:
	  Removed TODO: the document contains the rivers provided by the backend
	  now.

2011-03-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* pom.xml: Added dependency to flys backend.

	* src/main/java/de/intevation/flys/artifacts/model/River.java:
	  Removed. We are using the backend model now.

	* src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java:
	  Fetches the rivers from the backend.

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java:
	  Import fixes.

2011-03-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* doc/conf/conf.xml: Added section for database backend configuration.

2011-03-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  Fixed build error coming from different import of XMLUtils.

2011-03-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  Appended the missing label node that contains the human readable name of
	  the data item.

2011-03-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java,
	  src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  I18N of strings for the DESCRIBE document.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: I18N strings for the
	  calculcation mode state.

2011-03-14  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Modified the winfo states.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Adapted
	  the artifact regarding the changes of the last commit. The states
	  describe() method creates the dynamic UI node - the artifact needs to
	  apply this node.

	* src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java:
	  New. The state for choosing the calculation mode.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Added i18n strings for the
	  calculation mode state.

2011-03-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/DefaultState.java:
	  New. This is the base state for the FLYS application. It provides a
	  method that creates the dynamic ui node for the DESCRIBE.

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: Both
	  classes extend the abstract base class DefaultState.

2011-03-14  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/resources/Resources.java:
	  New. This class retrieves the i18n strings from a ResourceBundle.

	* src/main/resources/messages.properties,
	  src/main/resources/messages_en.properties,
	  src/main/resources/messages_de.properties: Resource files for german and
	  english translation.

2011-03-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Appended
	  the data that have been inserted in former states into the static node
	  of the DESCRIBE.

2011-03-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The
	  operations feed() and advance() return the description of the artifact
	  using the describe() operation. This avoids additional server round trips
	  in the client - the clients gets to know about the new state of the
	  artifact immediately.

2011-03-10  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Implemented a part (step forward) of the advance operation.

	* TODO: Implement Step-Back in advance operation.

2011-03-09  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java:
	  Implemented the abstract method getName(). It returns the constant
	  'winfo' string.

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
	  Implemented the feed action. The data of an incoming feed() operation is
	  stored in StateData objects that are saved in a map in the artifact.

	  NOTE: There is no input validation and no i18n of error messages (see
	  TODO).

2011-03-09  Ingo Weinzierl <ingo@intevation.de>

	* TODO: This file contains some open points that need to be done.

2011-03-09  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New. This
	  artifact serves as the default artifact for the FLYS application.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: This
	  artifact now inherits from FLYSArtifact. Furthermore, there is one big
	  change: we don't store the State objects itself in the artifact, but
	  just the identifier of those. This makes the artifact smaller and more
	  compatible agains previous versions of the software.

2011-03-08  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/services/RiverService.java:
	  New. This service will retrieve a list of provided rivers.

	* doc/conf/conf.xml: Added a configuration for the RiverService.

2011-03-07  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/conf.xml: Added a section user-factory and collection-factory in
	  the factories part of the configuration.

2011-03-01  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java:
	  Replaced the 'special' attribute from DESCRIBE with a 'uiprovider'
	  attribute.

2011-02-08  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The
	  RiverSelect state is called to create the UI part of the describe
	  document.

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java:
	  Implemented the dynamic UI part of describe(). The static part is not
	  inserted into the describe document at the moment. We need a reference to
	  the previous states for this.

2011-02-08  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java,
	  src/main/java/de/intevation/flys/artifacts/model/River.java: New. A model
	  class that represents a river and its factory to create concrete river
	  instances.
	  NOTE: Currently, this is just a mockup. The factory just returns two
	  static rivers "Mosel" and "Saar" without a connection to a backend.

2011-02-07  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: The
	  input data of a state is initialized with empty StateData objects after
	  the State has been created.

	* doc/conf/artifacts/winfo.xml: Renamed the input data nodes of the states
	  which now fits better to the class name of the implementation.

2011-02-07  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The
	  describe document returned by this artifact now contains the current state
	  and the reachable states.

2011-02-07  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  The transitions are put into the TransitionEngine with the ID of the state
	  - not longer with the artifact name. On this way, we are able to fetch
	  just the transitions for a specific state, instead of all the transitions
	  of an artifact.

2011-02-04  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Describe()
	  returns the artifact's uuid and hash value. The whole implementation of
	  describe() is still outstanding.

2011-02-04  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/artifacts/winfo.xml: Removed useless config stuff.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed
	  useless methods, and improved the init process - the first state is set as
	  the current state for this artifact.

	* src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java,
	  src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: New.
	  The states are used in the first two steps of the WINFOArtifact.
	  Currently, they just implement stubs of the necessary methods setup() and
	  describe().

2011-02-04  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/State.java,
	  src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java,
	  src/main/java/de/intevation/flys/artifacts/transitions/Transition.java:
	  Removed. These classes are placed in the artifact-database now.

	* src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java,
	  src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java:
	  Adapted imports of Transition.

	* src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: New.
	  This factory should be used to create concrete State objects.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added
	  a constant key to store the StateEngine in the context.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  New method that initializes the states at application start.

2011-02-03  Ingo Weinzierl <ingo@intevation.de>

	* src/main/java/de/intevation/flys/artifacts/states/State.java: New. The
	  interface description of a state.

	* src/main/java/de/intevation/flys/artifacts/transitions/Transition.java,
	  src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java:
	  New. The interface description and a default implementation of a
	  transition.

	* src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java:
	  New. The TransitionEngine stores all transitions for each artifact and
	  should be used to determine, if an artifact can advance from one state to
	  another.

	* src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java:
	  New. Transitions should be created by using this class.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: New.
	  The Flys context. It currently defines keys to store important components
	  in the context.

	* src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java:
	  New. The context factory initializes the basic components of the
	  application. Currently, the TransitionEngine is created and all artifacts
	  with its transitions are read from the global configuration and stored in
	  the FLYSContext.

	* pom.xml: Added a dependency to the 'artifacts-common' package.

	* doc/conf/artifacts/winfo.xml: Corrected the classname of the
	  DefaultTransition.

	* doc/conf/conf.xml: Added FLYSContextFactory as context-factory.

2011-02-02  Ingo Weinzierl <ingo@intevation.de>

	* doc/conf/conf.xml: An initial configuration file for the FLYS artifact
	  server.

	* doc/conf/artifacts/winfo.xml: An initial transition configuration of an
	  WINFO artifact.

	* src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: A stub of
	  an artifact for a WINFO parameterization.

	* pom.xml: Set the source code version to 1.5.

2011-02-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/**, pom.xml: Added initial maven project.
	* ChangeLog: new.

http://dive4elements.wald.intevation.org