Mercurial > dive4elements > gnv-client
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; + + } }