Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/AnnotationProcessor.java @ 8472:3f505fba522f
(issue1772) Use 0.001km tolarance instead of 0.1 to find matching km.
There is no sense to use a define here. I will not write
static final double NULLPOINTNULLNULLONE=0.001 if i just want to use that
value and not any other value which may make sense in some other place.
Using hardcoded values can have its merits and makes the code easier to
read.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 18 Nov 2014 15:24:40 +0100 |
parents | e4606eae8ea5 |
children | 1cc7653ca84f 0a5239a1e46e |
rev | line source |
---|---|
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports.process; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 import org.apache.log4j.Logger; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 import org.dive4elements.artifacts.CallContext; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 import org.dive4elements.river.artifacts.model.FacetTypes; |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
16 import org.dive4elements.river.exports.DiagramGenerator; |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 import org.dive4elements.river.exports.XYChartGenerator; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 import org.dive4elements.river.jfree.RiverAnnotation; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 import org.dive4elements.river.themes.ThemeDocument; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 /** |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 * Add data to chart/generator. |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 * |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 */ |
7057
1011a40ee79c
Add Default Processor implementation and make processors inherit it.
Andre Heinecke <aheinecke@intevation.de>
parents:
7050
diff
changeset
|
25 public class AnnotationProcessor extends DefaultProcessor { |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7161
diff
changeset
|
27 /** Private log. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7161
diff
changeset
|
28 private static final Logger log = |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 Logger.getLogger(AnnotationProcessor.class); |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 @Override |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 public void doOut( |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
33 DiagramGenerator generator, |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
34 ArtifactAndFacet bundle, |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
35 ThemeDocument theme, |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
36 boolean visible) { |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
37 if (!visible) { |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
38 // Nothing to do |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
39 return; |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
40 } |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
41 CallContext context = generator.getCallContext(); |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
42 if (!(bundle.getData(context) instanceof RiverAnnotation)) { |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
43 // Just a bit defensive should not happen |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7161
diff
changeset
|
44 log.error("Incompatible facet in doOut"); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
45 return; |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
46 } |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
47 RiverAnnotation ra = (RiverAnnotation)bundle.getData(context); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
48 ra.setTheme(theme); |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
49 ra.setLabel(bundle.getFacetDescription()); |
7067
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
50 generator.addAnnotations(ra); |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
51 } |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
52 |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
53 @Override |
eb24d5203d17
Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents:
7057
diff
changeset
|
54 public void doOut( |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
55 XYChartGenerator generator, |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
56 ArtifactAndFacet bundle, |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 ThemeDocument theme, |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 boolean visible, |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 int index) |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 { |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 if (!visible) { |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 // Nothing to do |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 return; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 } |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 CallContext context = generator.getCallContext(); |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
66 if (!(bundle.getData(context) instanceof RiverAnnotation)) { |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 // Just a bit defensive should not happen |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7161
diff
changeset
|
68 log.error("Incompatible facet in doOut"); |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 return; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 } |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
71 RiverAnnotation ra = (RiverAnnotation)bundle.getData(context); |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
72 ra.setTheme(theme); |
7075
253d80af5b7f
More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents:
7067
diff
changeset
|
73 ra.setLabel(bundle.getFacetDescription()); |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
74 generator.addAnnotations(ra); |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
75 } |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
76 |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
77 @Override |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
78 public boolean canHandle(String facetType) { |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
79 if (facetType == null) { |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
80 return false; |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
81 } |
7129
7fc41a235f47
Also handle bed height annotations
Andre Heinecke <aheinecke@intevation.de>
parents:
7088
diff
changeset
|
82 return facetType.equals(FacetTypes.LONGITUDINAL_ANNOTATION) || |
7161
b7b839557282
Handle flow velocity annotation in annoation processor
Andre Heinecke <aheinecke@intevation.de>
parents:
7129
diff
changeset
|
83 facetType.equals(FacetTypes.MIDDLE_BED_HEIGHT_ANNOTATION) || |
b7b839557282
Handle flow velocity annotation in annoation processor
Andre Heinecke <aheinecke@intevation.de>
parents:
7129
diff
changeset
|
84 facetType.equals(FacetTypes.FLOW_VELOCITY_ANNOTATION); |
7050
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
85 } |
25a5ce8abfef
Add annotationProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
86 } |