Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/SQRelationArtifact.java @ 5540:25c2505df28f
Merged
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Wed, 03 Apr 2013 16:00:21 +0200 |
parents | 9a14eac637ec |
children |
comparison
equal
deleted
inserted
replaced
5539:8d0af912351c | 5540:25c2505df28f |
---|---|
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 import org.w3c.dom.Document; | |
8 | |
9 import de.intevation.artifactdatabase.data.DefaultStateData; | |
10 import de.intevation.artifactdatabase.state.DefaultOutput; | |
11 import de.intevation.artifactdatabase.state.Facet; | |
12 import de.intevation.artifacts.ArtifactFactory; | |
13 import de.intevation.artifacts.ArtifactNamespaceContext; | |
14 import de.intevation.artifacts.CallMeta; | |
15 import de.intevation.artifacts.common.utils.XMLUtils; | |
16 import de.intevation.flys.artifacts.model.sq.StaticSQRelation; | |
17 import de.intevation.flys.artifacts.resources.Resources; | |
18 import de.intevation.flys.artifacts.states.StaticState; | |
19 import de.intevation.flys.artifacts.states.sq.SQStaticState; | |
20 | |
21 | |
22 public class SQRelationArtifact | |
23 extends AbstractStaticStateArtifact | |
24 { | |
25 private static final Logger logger = | |
26 Logger.getLogger(SQRelationArtifact.class); | |
27 | |
28 public static final String XPATH_RIVER = "/art:action/art:river/@art:name"; | |
29 public static final String XPATH_STATION = | |
30 "/art:action/art:measurement_station/@art:number"; | |
31 public static final String NAME = "staticsqrelation"; | |
32 public static final String STATIC_STATE_NAME = "state.sqrelation.static"; | |
33 public static final String UIPROVIDER = "static_sqrelation"; | |
34 public static final String SQ_RELATION_OUT_A = "sq_relation_a"; | |
35 public static final String SQ_RELATION_OUT_B = "sq_relation_b"; | |
36 public static final String SQ_RELATION_OUT_C = "sq_relation_c"; | |
37 public static final String SQ_RELATION_OUT_D = "sq_relation_d"; | |
38 public static final String SQ_RELATION_OUT_E = "sq_relation_e"; | |
39 public static final String SQ_RELATION_OUT_F = "sq_relation_f"; | |
40 | |
41 | |
42 @Override | |
43 public void setup( | |
44 String identifier, | |
45 ArtifactFactory factory, | |
46 Object context, | |
47 CallMeta callmeta, | |
48 Document data | |
49 ) { | |
50 logger.debug("SQRelationArtifact.setup()"); | |
51 | |
52 String river = XMLUtils.xpathString( | |
53 data, | |
54 XPATH_RIVER, | |
55 ArtifactNamespaceContext.INSTANCE); | |
56 String station = XMLUtils.xpathString( | |
57 data, | |
58 XPATH_STATION, | |
59 ArtifactNamespaceContext.INSTANCE); | |
60 | |
61 addData( | |
62 "river", | |
63 new DefaultStateData( | |
64 "river", | |
65 Resources.getMsg(callmeta, "static.sq.river", "Rivername"), | |
66 "String", | |
67 river)); | |
68 addData( | |
69 "station", | |
70 new DefaultStateData( | |
71 "station", | |
72 Resources.getMsg(callmeta, "static.sq.station", "Station"), | |
73 "String", | |
74 station)); | |
75 super.setup(identifier, factory, context, callmeta, data); | |
76 } | |
77 | |
78 @Override | |
79 protected void initStaticState() { | |
80 StaticState state = new SQStaticState(STATIC_STATE_NAME); | |
81 | |
82 List<Facet> fs = new ArrayList<Facet>(); | |
83 state.staticCompute(fs, this); | |
84 | |
85 if (hasParameter(StaticSQRelation.Parameter.A, fs)) { | |
86 DefaultOutput outputA = new DefaultOutput( | |
87 SQ_RELATION_OUT_A, | |
88 "output.static.sqrelation.a", | |
89 "image/png", | |
90 fs, | |
91 "chart"); | |
92 state.addOutput(outputA); | |
93 } | |
94 if (hasParameter(StaticSQRelation.Parameter.B, fs)) { | |
95 DefaultOutput outputB = new DefaultOutput( | |
96 SQ_RELATION_OUT_B, | |
97 "output.static.sqrelation.b", | |
98 "image/png", | |
99 fs, | |
100 "chart"); | |
101 state.addOutput(outputB); | |
102 } | |
103 if (hasParameter(StaticSQRelation.Parameter.C, fs)) { | |
104 DefaultOutput outputC = new DefaultOutput( | |
105 SQ_RELATION_OUT_C, | |
106 "output.static.sqrelation.c", | |
107 "image/png", | |
108 fs, | |
109 "chart"); | |
110 state.addOutput(outputC); | |
111 } | |
112 if (hasParameter(StaticSQRelation.Parameter.D, fs)) { | |
113 DefaultOutput outputD = new DefaultOutput( | |
114 SQ_RELATION_OUT_D, | |
115 "output.static.sqrelation.d", | |
116 "image/png", | |
117 fs, | |
118 "chart"); | |
119 state.addOutput(outputD); | |
120 } | |
121 if (hasParameter(StaticSQRelation.Parameter.E, fs)) { | |
122 DefaultOutput outputE = new DefaultOutput( | |
123 SQ_RELATION_OUT_E, | |
124 "output.static.sqrelation.e", | |
125 "image/png", | |
126 fs, | |
127 "chart"); | |
128 state.addOutput(outputE); | |
129 } | |
130 if (hasParameter(StaticSQRelation.Parameter.F, fs)) { | |
131 DefaultOutput outputF = new DefaultOutput( | |
132 SQ_RELATION_OUT_F, | |
133 "output.static.sqrelation.f", | |
134 "image/png", | |
135 fs, | |
136 "chart"); | |
137 state.addOutput(outputF); | |
138 } | |
139 addFacets(STATIC_STATE_NAME, fs); | |
140 state.setUIProvider(UIPROVIDER); | |
141 setStaticState(state); | |
142 } | |
143 | |
144 @Override | |
145 public String getName() { | |
146 return NAME; | |
147 } | |
148 | |
149 private boolean hasParameter(StaticSQRelation.Parameter p, List<Facet> fs) { | |
150 for (Facet f : fs) { | |
151 if (f.getName().equals("sq_" + | |
152 p.toString().toLowerCase() + "_curve")) { | |
153 return true; | |
154 } | |
155 } | |
156 return false; | |
157 } | |
158 } |