annotate artifacts/src/main/java/org/dive4elements/river/exports/OutGenerator.java @ 7691:fa4fbd66e752

(issue1579) Fix axes syncronisation at Gauges The SyncNumberAxis was completely broken. It only synced in one direction and even that did not work correctly when data was added to the axis (and the syncAxis rescaled but forgot the old axis) then there were lots of ways to bypass that scaling. And i also think the trans calculation was wrong. It has been replaced by a "mostly" simple method to just keep the W in M and W in CM+Datum axes in sync. I say "Mostly" because it had to deal with the Bounds interface.
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 13 Dec 2013 19:03:00 +0100
parents 41567bf1e131
children 5e38e2924c07
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3422
diff changeset
9 package org.dive4elements.river.exports;
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 294
diff changeset
11 import java.io.IOException;
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import java.io.OutputStream;
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import org.w3c.dom.Document;
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3422
diff changeset
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3422
diff changeset
17 import org.dive4elements.artifactdatabase.state.Settings;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3422
diff changeset
18 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3422
diff changeset
19 import org.dive4elements.artifacts.CallContext;
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
20 import org.dive4elements.river.collections.D4EArtifactCollection;
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
21 import org.dive4elements.river.themes.ThemeDocument;
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
1962
59622ba800c8 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1948
diff changeset
23
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 /**
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 * An OutGenerator is used to create a collected outputs of a list of Artifacts.
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 *
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 */
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 public interface OutGenerator {
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 /**
7037
5c6fd2c010dd Add setup(Element config) method to Generator interface to be initialized from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6905
diff changeset
32 * Pre-initialize generator from configuration.
5c6fd2c010dd Add setup(Element config) method to Generator interface to be initialized from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6905
diff changeset
33 */
7087
ada424214b02 Use Object instead of DOM Element as argument for setup of out generators. First step to remove dependency to XML DOM when using configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7077
diff changeset
34 void setup(Object config);
7037
5c6fd2c010dd Add setup(Element config) method to Generator interface to be initialized from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6905
diff changeset
35
5c6fd2c010dd Add setup(Element config) method to Generator interface to be initialized from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6905
diff changeset
36 /**
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 * Initializes the OutGenerator with meta information which are necessary
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 * for the output generation.
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 *
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7037
diff changeset
40 * @param outName The name of the out to serve.
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 * @param request The incomding request document.
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 * @param out The output stream.
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 * @param context The CallContext that provides further information and
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 * objects used for the output generation.
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 */
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7037
diff changeset
46 void init(String outName, Document request, OutputStream out, CallContext context);
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 /**
412
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
49 * This method is used to tell the OutGenerator which artifact is the master
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
50 * artifact which is used for special operations.
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
51 *
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
52 * @param master The master artifact.
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
53 */
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
54 void setMasterArtifact(Artifact master);
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
55
046bd86ae41d Improved the OutGenerator interface to set a master artifact for the out generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
56 /**
3422
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3270
diff changeset
57 * This method is used to set the Collection of the OutGenerator.
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3270
diff changeset
58 *
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3270
diff changeset
59 * @param collection A reference to the collection.
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3270
diff changeset
60 */
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
61 void setCollection(D4EArtifactCollection collection);
3422
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3270
diff changeset
62
118fe1cc8cc8 OutGenerators got a setCollection() method; analogous to setMasterArtifact(). Registered the SQOverviewGenerator as OutGenerator for 'sq_overview' Output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3270
diff changeset
63 /**
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 * Creates the output of an Artifact and appends that single output to the
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 * total output.
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 *
3270
4ac581062c40 Fix various documentation issues.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2047
diff changeset
67 * @param bundle The Facet and artifact that provides information and data for the
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 * single output.
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 * @param attr A document that might contain some attributes used while
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 * producing the output.
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 695
diff changeset
71 * @param visible Specifies, if this output should be visible or not.
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 */
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
73 void doOut(ArtifactAndFacet bundle, ThemeDocument attr, boolean visible);
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 /**
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 * Writes the collected output of all artifacts specified in the
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 * <i>request</i> (see init()) document to the OutputStream <i>out</i> (see
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 * init()).
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 */
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 294
diff changeset
80 void generate() throws IOException;
1979
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1962
diff changeset
81
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1962
diff changeset
82 /**
2047
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
83 * This method is used to set a <i>Settings</i> object for the <i>Output</i>
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
84 * that is produced by this <i>OutGenerator</i>.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
85 *
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
86 * @param settings The <i>Settings</i> that might be used while
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
87 * <i>Output</i> creation.
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
88 */
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
89 void setSettings(Settings settings);
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
90
0318fa6f0844 Make use of first attributes specified in the ChartSettings. NOTE: work is still in progress.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1979
diff changeset
91 /**
1979
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1962
diff changeset
92 * Returns the Settings for the Output produced by this OutGenerator.
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1962
diff changeset
93 *
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1962
diff changeset
94 * @return the Settings for the Output produced by this OutGenerator.
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1962
diff changeset
95 */
a7c437c9547e Added a getSettings() operation to OutGenerator - FLYSArtifactCollection will now evaluate all available Outputs and create initial Settings using OutGenerators if the Settings for an Output is missing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1962
diff changeset
96 Settings getSettings();
294
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 }
e5e7af208857 Added an OutGenerator interface that might be used to generator collected outputs of a set of artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org