# HG changeset patch # User Ingo Weinzierl # Date 1297078653 0 # Node ID 0fab16cb4d44b296b82f2147e5b761789ac57d95 # Parent 7222d8fb53ea9eb6294beaca7a53f9fef2675807 Added the current state and reachable states description to the describe document of the WINFO artifact. flys-artifacts/trunk@1300 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 7222d8fb53ea -r 0fab16cb4d44 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Mon Feb 07 11:32:59 2011 +0000 +++ b/flys-artifacts/ChangeLog Mon Feb 07 11:37:33 2011 +0000 @@ -1,3 +1,9 @@ +2011-02-07 Ingo Weinzierl + + * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The + describe document returned by this artifact now contains the current state + and the reachable states. + 2011-02-07 Ingo Weinzierl * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: diff -r 7222d8fb53ea -r 0fab16cb4d44 flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Mon Feb 07 11:32:59 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Mon Feb 07 11:37:33 2011 +0000 @@ -15,6 +15,7 @@ import de.intevation.artifactdatabase.ProtocolUtils; import de.intevation.artifactdatabase.state.State; import de.intevation.artifactdatabase.state.StateEngine; +import de.intevation.artifactdatabase.transition.TransitionEngine; import de.intevation.artifacts.common.utils.XMLUtils; @@ -99,8 +100,24 @@ public Document describe(Document data, CallContext context) { logger.debug("Describe: the current state is: " + currentState.getID()); - Document description = XMLUtils.newDocument(); + FLYSContext flysContext = null; + if (context instanceof FLYSContext) { + flysContext = (FLYSContext) context; + } + else { + flysContext = (FLYSContext) context.globalContext(); + } + StateEngine stateEngine = (StateEngine) flysContext.get( + FLYSContext.STATE_ENGINE_KEY); + + TransitionEngine transitionEngine = (TransitionEngine) flysContext.get( + FLYSContext.TRANSITION_ENGINE_KEY); + + List reachable = transitionEngine.getReachableStates( + currentState, stateEngine); + + Document description = XMLUtils.newDocument(); XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( description, ArtifactNamespaceContext.NAMESPACE_URI, @@ -108,10 +125,12 @@ Element root = ProtocolUtils.createRootNode(creator); ProtocolUtils.appendDescribeHeader(creator, root, identifier(), hash()); + ProtocolUtils.appendState(creator, root, currentState); + ProtocolUtils.appendReachableStates(creator, root, reachable); - logger.warn("TODO: Implement the whole description!"); + logger.warn("TODO: Implement the model and ui description!"); + description.appendChild(root); - description.appendChild(root); return description; }