Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java @ 58:f31343d80d53
Artifact.advance initial implementiert
gnv-artifacts/trunk@40 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 08 Sep 2009 14:07:59 +0000 |
parents | f01592cd6419 |
children | 2c5d8f5bced1 |
comparison
equal
deleted
inserted
replaced
57:f01592cd6419 | 58:f31343d80d53 |
---|---|
14 import org.w3c.dom.Node; | 14 import org.w3c.dom.Node; |
15 import org.w3c.dom.NodeList; | 15 import org.w3c.dom.NodeList; |
16 | 16 |
17 import de.intevation.artifactdatabase.Config; | 17 import de.intevation.artifactdatabase.Config; |
18 import de.intevation.gnv.artifacts.GNVArtifactBase; | 18 import de.intevation.gnv.artifacts.GNVArtifactBase; |
19 import de.intevation.gnv.geobackend.base.Result; | |
20 import de.intevation.gnv.geobackend.base.query.QueryExecutor; | |
21 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; | |
22 import de.intevation.gnv.geobackend.base.query.exception.QueryException; | |
19 import de.intevation.gnv.transition.exception.TransitionException; | 23 import de.intevation.gnv.transition.exception.TransitionException; |
20 | 24 |
21 /** | 25 /** |
22 * @author Tim Englich <tim.englich@intevation.de> | 26 * @author Tim Englich <tim.englich@intevation.de> |
23 * | 27 * |
42 | 46 |
43 private Map<String,InputValue> inputValues = null; | 47 private Map<String,InputValue> inputValues = null; |
44 | 48 |
45 private Transition parent = null; | 49 private Transition parent = null; |
46 | 50 |
47 private Collection<InputData> inputData = null; | 51 private Map<String,InputData> inputData = null; |
52 | |
53 private Collection<Object> descibeData = null; | |
48 /** | 54 /** |
49 * Constructor | 55 * Constructor |
50 */ | 56 */ |
51 public TransitionBase() { | 57 public TransitionBase() { |
52 super(); | 58 super(); |
138 while(it.hasNext()){ | 144 while(it.hasNext()){ |
139 InputData tmpItem = it.next(); | 145 InputData tmpItem = it.next(); |
140 InputValue inputValue = this.inputValues.get(tmpItem.getName()); | 146 InputValue inputValue = this.inputValues.get(tmpItem.getName()); |
141 if (inputValue != null){ | 147 if (inputValue != null){ |
142 if (this.inputData == null){ | 148 if (this.inputData == null){ |
143 this.inputData = new ArrayList<InputData>(inputData.size()); | 149 this.inputData = new HashMap<String,InputData>(inputData.size()); |
144 // TODO validate Value; | 150 // TODO validate Value; und Valueconcatenieren |
145 this.inputData.add(tmpItem); | 151 this.inputData.put(tmpItem.getName(),tmpItem); |
146 } | 152 } |
147 | 153 |
148 }else{ | 154 }else{ |
149 String errMsg = "No Inputvalue given for Inputdata "+ tmpItem.getName(); | 155 String errMsg = "No Inputvalue given for Inputdata "+ tmpItem.getName(); |
150 log.warn(errMsg+ "Value will be ignored"); | 156 log.warn(errMsg+ "Value will be ignored"); |
155 }else{ | 161 }else{ |
156 log.warn("No Inputdata given"); | 162 log.warn("No Inputdata given"); |
157 } | 163 } |
158 | 164 |
159 } | 165 } |
160 | 166 |
167 /** | |
168 * @see de.intevation.gnv.transition.Transition#isTransitionReachable(java.lang.String) | |
169 */ | |
170 public boolean isTransitionReachable(String transitionID) { | |
171 log.debug("TransitionBase.isTransitionReachable"); | |
172 boolean returnValue = false; | |
173 Iterator<String> transitions = reachableTransitions.iterator(); | |
174 while (transitions.hasNext()){ | |
175 if(transitions.next().equals(transitionID)){ | |
176 log.debug("Transition "+transitionID+" wird unterstützt."); | |
177 returnValue = true; | |
178 break; | |
179 } | |
180 } | |
181 return returnValue; | |
182 } | |
183 | |
184 /** | |
185 * @see de.intevation.gnv.transition.Transition#advance() | |
186 */ | |
187 public void advance() throws TransitionException { | |
188 log.debug("TransitionBase.advance"); | |
189 try { | |
190 String[] filterValues = new String[this.inputValueNames.size()]; | |
191 Iterator<String> it = this.inputValueNames.iterator(); | |
192 int i = 0; | |
193 while (it.hasNext()){ | |
194 filterValues[i++] = this.inputData.get(it.next()).getValue(); | |
195 } | |
196 QueryExecutor queryExecutor = QueryExecutorFactory.getInstance().getQueryExecutor(); | |
197 Collection<Result> result = queryExecutor.executeQuery(this.queryID, filterValues); | |
198 if (this.descibeData == null){ | |
199 this.descibeData = new ArrayList<Object>(); | |
200 } | |
201 this.descibeData.add(result); | |
202 } catch (QueryException e) { | |
203 log.error(e,e); | |
204 throw new TransitionException(e); | |
205 } | |
206 } | |
207 | |
208 /** | |
209 * @see de.intevation.gnv.transition.Transition#getDescibeData() | |
210 */ | |
211 public Collection<Object> getDescibeData() { | |
212 return this.descibeData; | |
213 } | |
214 | |
215 /** | |
216 * @see de.intevation.gnv.transition.Transition#setDescibeData(java.util.Collection) | |
217 */ | |
218 public void setDescibeData(Collection<Object> descibeData) { | |
219 this.descibeData = descibeData; | |
220 | |
221 } | |
161 } | 222 } |