comparison artifacts/src/main/java/org/dive4elements/river/artifacts/SQRelationArtifact.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/artifacts/SQRelationArtifact.java@bd047b71ab37
children 4897a58c8746
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.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 org.dive4elements.artifactdatabase.data.DefaultStateData;
10 import org.dive4elements.artifactdatabase.state.DefaultOutput;
11 import org.dive4elements.artifactdatabase.state.Facet;
12 import org.dive4elements.artifacts.ArtifactFactory;
13 import org.dive4elements.artifacts.ArtifactNamespaceContext;
14 import org.dive4elements.artifacts.CallMeta;
15 import org.dive4elements.artifacts.common.utils.XMLUtils;
16 import org.dive4elements.river.artifacts.model.sq.StaticSQRelation;
17 import org.dive4elements.river.artifacts.resources.Resources;
18 import org.dive4elements.river.artifacts.states.StaticState;
19 import org.dive4elements.river.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 }

http://dive4elements.wald.intevation.org