annotate artifacts/src/main/java/org/dive4elements/river/exports/process/Processor.java @ 7084:f0731aa7b735 generator-refactoring

Implement Label handling
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 20 Sep 2013 19:18:04 +0200
parents 253d80af5b7f
children 41567bf1e131
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: 5863
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: 5863
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: 4736
diff changeset
9 package org.dive4elements.river.exports.process;
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
11 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
12 import org.dive4elements.river.exports.XYChartGenerator;
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
13 import org.dive4elements.river.themes.ThemeDocument;
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
14 import org.dive4elements.river.exports.DiagramGenerator;
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
15 import org.dive4elements.river.artifacts.D4EArtifact;
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
16 import org.dive4elements.artifacts.CallContext;
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
17
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
18 /**
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
19 * A processor is intended to generate an output e.g. curve in a chart diagramm from
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
20 * arbitrary data input which can be reused in several generators.
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
21 *
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
22 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
23 */
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
24 public interface Processor {
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
25 /**
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
26 * Set the axis for this processor.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
27 * This should be done before doOut is called for the first time.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
28 *
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
29 * @param axisName The name of the Axis this processor should use.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
30 */
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
31 public void setAxisName(String axisName);
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
32
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
33 /**
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
34 * Get the axis for this processor.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
35 *
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
36 * @return The name of the axis that is used.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
37 */
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
38 public String getAxisName();
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
39
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
40 /**
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
41 * Get the axis label for this processor.
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
42 *
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
43 * @return The label of the axis.
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
44 */
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
45 public String getAxisLabel(DiagramGenerator generator);
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
46
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
47 /**
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
48 * Processes data to generate e.g. a chart.
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
49 *
4736
b195fede1c3b Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4443
diff changeset
50 * @param generator XYChartGenerator to add output on.
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
51 * @param bundle The artifact and facet
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
52 * @param theme The theme that contains styling information.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
53 * @param visible The visibility of the curve.
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
54 */
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
55 public void doOut(
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
56 DiagramGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
57 ArtifactAndFacet bundle,
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
58 ThemeDocument theme,
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
59 boolean visible);
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
60
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
61 /**
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
62 * Processes data to generate e.g. a chart.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
63 *
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
64 * @param generator DiagramGenerator to add output on.
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
65 * @param bundle The artifact and facet
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
66 * @param theme The theme that contains styling information.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
67 * @param visible The visibility of the curve.
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
68 * @param index The index of the curve
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
69 */
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
70 @Deprecated
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
71 public void doOut(
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
72 XYChartGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
73 ArtifactAndFacet bundle,
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
74 ThemeDocument theme,
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
75 boolean visible,
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
76 int index);
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
77
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
78 /**
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
79 * Returns true if the Processor class is able to generate output for a facet type
4736
b195fede1c3b Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4443
diff changeset
80 *
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
81 * @param facettype Name of the facet type
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
82 * @return true if the facettype can be processed
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
83 */
4736
b195fede1c3b Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4443
diff changeset
84 public boolean canHandle(String facettype);
4443
af728a5e0329 Introduce a new Interface to abstract the data to curve generation
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
85 }

http://dive4elements.wald.intevation.org