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 }

http://dive4elements.wald.intevation.org