diff 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
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java	Tue Sep 08 12:22:00 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java	Tue Sep 08 14:07:59 2009 +0000
@@ -16,6 +16,10 @@
 
 import de.intevation.artifactdatabase.Config;
 import de.intevation.gnv.artifacts.GNVArtifactBase;
+import de.intevation.gnv.geobackend.base.Result;
+import de.intevation.gnv.geobackend.base.query.QueryExecutor;
+import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory;
+import de.intevation.gnv.geobackend.base.query.exception.QueryException;
 import de.intevation.gnv.transition.exception.TransitionException;
 
 /**
@@ -44,7 +48,9 @@
     
     private Transition parent = null;
     
-    private Collection<InputData> inputData = null;
+    private Map<String,InputData> inputData = null;
+    
+    private Collection<Object> descibeData = null;
     /**
      * Constructor
      */
@@ -140,9 +146,9 @@
                 InputValue inputValue = this.inputValues.get(tmpItem.getName());
                 if (inputValue != null){
                     if (this.inputData == null){
-                        this.inputData = new ArrayList<InputData>(inputData.size());
-                        // TODO validate Value;
-                        this.inputData.add(tmpItem);
+                        this.inputData = new HashMap<String,InputData>(inputData.size());
+                        // TODO validate Value; und Valueconcatenieren
+                        this.inputData.put(tmpItem.getName(),tmpItem);
                     }
                     
                 }else{
@@ -157,5 +163,60 @@
         }
     
     }
-    
+
+    /**
+     * @see de.intevation.gnv.transition.Transition#isTransitionReachable(java.lang.String)
+     */
+    public boolean isTransitionReachable(String transitionID) {
+        log.debug("TransitionBase.isTransitionReachable");
+        boolean returnValue = false;
+        Iterator<String> transitions = reachableTransitions.iterator();
+        while (transitions.hasNext()){
+            if(transitions.next().equals(transitionID)){
+                log.debug("Transition "+transitionID+" wird unterstützt.");
+                returnValue = true;
+                break;
+            }
+        }
+        return returnValue;
+    }
+
+    /**
+     * @see de.intevation.gnv.transition.Transition#advance()
+     */
+    public void advance() throws TransitionException {
+        log.debug("TransitionBase.advance");
+        try {
+            String[] filterValues = new String[this.inputValueNames.size()];
+            Iterator<String> it = this.inputValueNames.iterator();
+            int i = 0;
+            while (it.hasNext()){
+                filterValues[i++] = this.inputData.get(it.next()).getValue();
+            }
+            QueryExecutor queryExecutor = QueryExecutorFactory.getInstance().getQueryExecutor();
+            Collection<Result> result = queryExecutor.executeQuery(this.queryID, filterValues);
+            if (this.descibeData == null){
+                this.descibeData = new ArrayList<Object>();
+            }
+            this.descibeData.add(result);
+        } catch (QueryException e) {
+            log.error(e,e);
+            throw new TransitionException(e);
+        }
+    }
+
+    /**
+     * @see de.intevation.gnv.transition.Transition#getDescibeData()
+     */
+    public Collection<Object> getDescibeData() {
+        return this.descibeData;
+    }
+
+    /**
+     * @see de.intevation.gnv.transition.Transition#setDescibeData(java.util.Collection)
+     */
+    public void setDescibeData(Collection<Object> descibeData) {
+        this.descibeData = descibeData;
+        
+    }
 }

http://dive4elements.wald.intevation.org