annotate artifacts/src/main/java/org/dive4elements/river/exports/process/AnnotationProcessor.java @ 8202:e4606eae8ea5

sed src/**/*.java 's/logger/log/g'
author Sascha L. Teichmann <teichmann@intevation.de>
date Fri, 05 Sep 2014 12:58:17 +0200
parents b7b839557282
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 }

http://dive4elements.wald.intevation.org