Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.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/artifacts/GNVArtifactBase.java Tue Sep 08 12:22:00 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java Tue Sep 08 14:07:59 2009 +0000 @@ -72,6 +72,53 @@ super(); } + /** + * @see de.intevation.artifactdatabase.DefaultArtifact#advance(org.w3c.dom.Document, java.lang.Object) + */ + @Override + public Document advance(Document target, Object context) { + Document result = super.newDocument(); + if (this.current != null){ + String transitionName = this.readTransitionName(target); + if (this.current.isTransitionReachable(transitionName)){ + // 1. Prüfung ob Transition valide ist + if (this.current.validate()){ + + try { + Transition nextStep = this.transitions.get(transitionName); + // 2.Ergebnisse Berechnen + this.current.advance(); + // 3. Ergebnisse übergeben + nextStep.setDescibeData(this.current.getDescibeData()); + // 4. Umschalten auf neue Transistion + this.current = nextStep; + } catch (TransitionException e) { + log.error(e,e); + // TODO: Errormmessage senden. + } + + }else{ + log.error("Advance nicht möglich, da die Bedingungen für den Übergang " + + "in den neuen Zustand noch nicht gegeben ist."); + // TODO: Errormmessage senden. + } + + }else{ + log.error("Transitionsübergang wird nicht unterstützt."); + // TODO: Errormmessage senden. + } + }else{ + log.error("Kein Transitionsschritt aktiviert."); + // TODO: Errormmessage senden. + } + return result; + } + + protected String readTransitionName(Document document) { + String returnValue = Config.getStringXPath(document, "action/target/@name"); + return returnValue; + } + protected Node getConfigurationFragment(Document document){ log.debug("GNVArtifactBase.getConfigurationFragment"); String xpathQuery = XPATH_ARTIFACT_CONFIGURATION.replaceAll(XPATH_IDENTIFIER_REPLACE, this.name);