comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/QSectorArtifact.java @ 3573:374c2d70b982

Added stub of QSector-Artifact-infrastructure. flys-artifacts/trunk@5188 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 10 Aug 2012 10:25:47 +0000
parents
children 6442f317a0c7
comparison
equal deleted inserted replaced
3572:b8b1280606c2 3573:374c2d70b982
1 package de.intevation.flys.artifacts;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.apache.log4j.Logger;
7
8 import org.w3c.dom.Document;
9
10 import de.intevation.artifactdatabase.state.Facet;
11
12 import de.intevation.artifacts.Artifact;
13 import de.intevation.artifacts.ArtifactFactory;
14 import de.intevation.artifacts.CallMeta;
15
16 import de.intevation.flys.artifacts.model.FacetTypes;
17 import de.intevation.flys.artifacts.model.GaugeFinder;
18 import de.intevation.flys.artifacts.model.GaugeFinderFactory;
19 import de.intevation.flys.artifacts.model.GaugeRange;
20 import de.intevation.flys.artifacts.model.NamedDouble;
21
22 import de.intevation.flys.artifacts.services.FixingsKMChartService;
23
24 import de.intevation.flys.artifacts.states.DefaultState;
25
26
27
28 /**
29 * Artifact to produce sector markers.
30 */
31 public class QSectorArtifact
32 extends StaticFLYSArtifact
33 implements FacetTypes
34 {
35 /** The logger for this class. */
36 private static Logger logger = Logger.getLogger(QSectorArtifact.class);
37
38 /** The name of the artifact. */
39 public static final String ARTIFACT_NAME = "qsector";
40
41
42 /**
43 * Trivial Constructor.
44 */
45 public QSectorArtifact() {
46 logger.debug("QSectorArtifact.QSectorArtifact()");
47 }
48
49
50 /**
51 * Gets called from factory, to set things up.
52 */
53 @Override
54 public void setup(
55 String identifier,
56 ArtifactFactory factory,
57 Object context,
58 CallMeta callMeta,
59 Document data)
60 {
61 logger.debug("QSectorArtifact.setup");
62 super.setup(identifier, factory, context, callMeta, data);
63 initialize(null, context, callMeta);
64 }
65
66
67 /** Return the name of this artifact. */
68 public String getName() {
69 return ARTIFACT_NAME;
70 }
71
72
73 /** Get list of NamedDouble s (QSectors). */
74 public Object getQSectors(double km) {
75
76 String river = getDataAsString("river");
77 List<NamedDouble> qsectors = new ArrayList<NamedDouble>();
78
79 GaugeFinderFactory ggf = GaugeFinderFactory.getInstance();
80 GaugeFinder gf = ggf.getGaugeFinder(river);
81
82 if (gf == null) {
83 logger.warn("No gauge finder found for river '" + river + "'");
84 return null;
85 }
86
87 GaugeRange gr = gf.find(km);
88 if (gr == null) {
89 logger.debug("No gauge range found for km "
90 + km + " on river " + river + ".");
91 return null;
92 }
93
94 if (logger.isDebugEnabled()) {
95 logger.debug(gr);
96 }
97
98 for (int i = 0; i < FixingsKMChartService.I18N_Q_SECTOR_BOARDERS.length; ++i) {
99 String key = FixingsKMChartService.I18N_Q_SECTOR_BOARDERS[i];
100 String def = FixingsKMChartService.DEFAULT_Q_SECTOR_BORDERS[i];
101 String label = "label";//Resources.getMsg(meta, key, def);
102
103 qsectors.add(new NamedDouble(label, gr.getSectorBorder(i)));
104 }
105
106 return qsectors;
107 }
108
109
110 /** Setup state and facet. */
111 @Override
112 protected void initialize(Artifact artifact, Object context, CallMeta meta) {
113 logger.debug("QSectorArtifact.initialize");
114 List<Facet> fs = new ArrayList<Facet>();
115
116 FLYSArtifact flys = (FLYSArtifact) artifact;
117 importData(flys, "river");
118
119 DefaultState state = (DefaultState) getCurrentState(context);
120 state.computeInit(this, hash(), context, meta, fs);
121 if (!fs.isEmpty()) {
122 logger.debug("Facets to add in QSectorArtifact.initialize .");
123 facets.put(getCurrentStateId(), fs);
124 }
125 else {
126 logger.debug("No facets to add in QSectorArtifact.initialize ("
127 + state.getID() + ").");
128 }
129 }
130 }
131 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org