comparison flys-artifacts/src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java @ 696:708b270dfd30 facets-slt

OutGenerators use now facets to fetch necessary data. flys-artifacts/branches/facets-slt@2140 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 17 Jun 2011 09:19:43 +0000
parents 45cd58a2a2bb
children f3fd8c9b7f51
comparison
equal deleted inserted replaced
695:45cd58a2a2bb 696:708b270dfd30
9 9
10 import de.intevation.artifacts.Artifact; 10 import de.intevation.artifacts.Artifact;
11 11
12 import de.intevation.artifactdatabase.state.Facet; 12 import de.intevation.artifactdatabase.state.Facet;
13 13
14 import de.intevation.flys.artifacts.WINFOArtifact; 14 import de.intevation.flys.artifacts.FLYSArtifact;
15 import de.intevation.flys.artifacts.model.FacetTypes;
15 import de.intevation.flys.artifacts.model.WQKms; 16 import de.intevation.flys.artifacts.model.WQKms;
16 17
17 18
18 /** 19 /**
19 * An OutGenerator that generates discharge curves. 20 * An OutGenerator that generates discharge curves.
20 * 21 *
21 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 22 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
22 */ 23 */
23 public class ComputedDischargeCurveGenerator extends DischargeCurveGenerator { 24 public class ComputedDischargeCurveGenerator
24 25 extends DischargeCurveGenerator
26 implements FacetTypes
27 {
25 /** The logger used in this generator.*/ 28 /** The logger used in this generator.*/
26 private static Logger logger = 29 private static Logger logger =
27 Logger.getLogger(ComputedDischargeCurveGenerator.class); 30 Logger.getLogger(ComputedDischargeCurveGenerator.class);
28 31
29 32
66 } 69 }
67 70
68 71
69 @Override 72 @Override
70 public void doOut(Artifact artifact, Facet facet, Document attr) { 73 public void doOut(Artifact artifact, Facet facet, Document attr) {
71 logger.debug("ComputedDischargeCurveGenerator.doOut"); 74 String name = facet != null ? facet.getName() : null;
72 75
73 WQKms wqkms = getData(artifact); 76 logger.debug("ComputedDischargeCurveGenerator.doOut: " + name);
74 77
78 FLYSArtifact flys = (FLYSArtifact) artifact;
79 Facet f = flys.getNativeFacet(facet);
80
81 if (name != null && name.equals(COMPUTED_DISCHARGE_Q)) {
82 doQOut((WQKms) f.getData(artifact, context));
83 }
84 else {
85 logger.warn("Unknown facet type for computed discharge: " + name);
86 return;
87 }
88 }
89
90
91 protected void doQOut(WQKms wqkms) {
75 int size = wqkms.size(); 92 int size = wqkms.size();
76 93
77 double[][] data = new double[2][size]; 94 double[][] data = new double[2][size];
78 double[] res = new double[3]; 95 double[] res = new double[3];
79 96
86 103
87 dataset.addSeries(getSeriesName(wqkms), data); 104 dataset.addSeries(getSeriesName(wqkms), data);
88 } 105 }
89 106
90 107
91 protected WQKms getData(Artifact artifact) {
92 logger.debug("ComputedDischargeCurveGenerator.getData");
93
94 WINFOArtifact winfoArtifact = (WINFOArtifact) artifact;
95
96 return winfoArtifact.getComputedDischargeCurveData();
97 }
98
99
100 protected String getSeriesName(WQKms wqkms) { 108 protected String getSeriesName(WQKms wqkms) {
101 Object[] args = new Object[] { 109 Object[] args = new Object[] {
102 getRiverName(), 110 getRiverName(),
103 wqkms.getName() 111 wqkms.getName()
104 }; 112 };

http://dive4elements.wald.intevation.org