comparison flys-artifacts/src/main/java/org/dive4elements/river/exports/process/KMIndexProcessor.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/exports/process/KMIndexProcessor.java@b195fede1c3b
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.exports.process;
2
3 import org.apache.log4j.Logger;
4 import org.jfree.data.xy.XYSeries;
5 import org.jfree.data.xy.XYSeriesCollection;
6 import org.w3c.dom.Document;
7
8 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
9 import org.dive4elements.artifacts.CallContext;
10 import org.dive4elements.river.artifacts.model.FacetTypes;
11 import org.dive4elements.river.artifacts.model.fixings.AnalysisPeriod;
12 import org.dive4elements.river.artifacts.model.fixings.QWD;
13 import org.dive4elements.river.exports.XYChartGenerator;
14 import org.dive4elements.river.jfree.StyledXYSeries;
15 import org.dive4elements.river.utils.KMIndex;
16
17 public class KMIndexProcessor implements Processor {
18
19 private static final Logger logger = Logger.getLogger(KMIndexProcessor.class);
20
21 @Override
22 public void doOut(XYChartGenerator generator, ArtifactAndFacet aandf,
23 Document theme, boolean visible, int index) {
24 String facettype = aandf.getFacetName();
25 if (facettype.contains(FacetTypes.FIX_SECTOR_AVERAGE_LS)) {
26 doSectorAverageOut(generator, aandf, theme, visible, index);
27 }
28 else if (facettype.equals(FacetTypes.FIX_REFERENCE_EVENTS_LS)) {
29 doReferenceEventsOut(generator, aandf, theme, visible, index);
30 }
31 else if (facettype.equals(FacetTypes.FIX_ANALYSIS_EVENTS_LS)) {
32 doAnalysisEventsOut(generator, aandf, theme, visible, index);
33 }
34
35 }
36
37 @Override
38 public boolean canHandle(String facettype) {
39 if (facettype == null) {
40 return false;
41 }
42
43 if (facettype.contains(FacetTypes.FIX_SECTOR_AVERAGE_LS)
44 || facettype.equals(FacetTypes.FIX_REFERENCE_EVENTS_LS)
45 || facettype.equals(FacetTypes.FIX_ANALYSIS_EVENTS_LS))
46 {
47 return true;
48 }
49 return false;
50 }
51
52 private void doSectorAverageOut(XYChartGenerator generator, ArtifactAndFacet aaf,
53 Document doc, boolean visible, int idx) {
54 logger.debug("doSectorAverageOut" + aaf.getFacet().getIndex());
55
56 CallContext context = generator.getCallContext();
57 int index = aaf.getFacet().getIndex();
58 int sectorNdx = index & 3;
59
60 @SuppressWarnings("unchecked")
61 KMIndex<AnalysisPeriod> kms =
62 (KMIndex<AnalysisPeriod>)aaf.getData(context);
63
64 if(kms == null) {
65 return;
66 }
67
68 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), doc);
69
70 for (KMIndex.Entry<AnalysisPeriod> entry: kms) {
71 double km = entry.getKm();
72 AnalysisPeriod ap = entry.getValue();
73 QWD qwd = ap.getQSectorAverages()[sectorNdx];
74 if (qwd == null) {
75 continue;
76 }
77 double deltaW = qwd.getDeltaW();
78 series.add(km, deltaW);
79 }
80
81 generator.addAxisSeries(series, idx, visible);
82 }
83
84 private void doReferenceEventsOut(XYChartGenerator generator,
85 ArtifactAndFacet aaf, Document doc, boolean visible, int idx) {
86 logger.debug("doReferenceEventOut");
87
88 CallContext context = generator.getCallContext();
89
90 @SuppressWarnings("unchecked")
91 KMIndex<QWD> kms =
92 (KMIndex<QWD>)aaf.getData(context);
93
94 if(kms == null) {
95 return;
96 }
97
98 XYSeriesCollection col = new XYSeriesCollection();
99
100 StyledXYSeries series = new StyledXYSeries(aaf.getFacetDescription(), false,
101 doc);
102
103 for (KMIndex.Entry<QWD> entry: kms) {
104 double km = entry.getKm();
105 QWD qwd = entry.getValue();
106
107 series.add(km, qwd.getDeltaW());
108 }
109 col.addSeries(series);
110
111 generator.addAxisDataset(col, idx, visible);
112 }
113
114 private void doAnalysisEventsOut(XYChartGenerator generator,
115 ArtifactAndFacet aaf, Document doc, boolean visible, int idx) {
116 logger.debug("doAnalysisEventsOut");
117
118 CallContext context = generator.getCallContext();
119
120 @SuppressWarnings("unchecked")
121 KMIndex<QWD> kms =
122 (KMIndex<QWD>)aaf.getData(context);
123
124 if(kms == null) {
125 return;
126 }
127
128 XYSeriesCollection col = new XYSeriesCollection();
129
130 StyledXYSeries series = new StyledXYSeries(aaf.getFacetDescription(), false, doc);
131
132 for (KMIndex.Entry<QWD> entry: kms) {
133 double km = entry.getKm();
134 QWD qwd = entry.getValue();
135
136 series.add(km, qwd.getDeltaW());
137 }
138 col.addSeries(series);
139
140 generator.addAxisDataset(col, idx, visible);
141 }
142 }

http://dive4elements.wald.intevation.org