Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java @ 940:f4439e015278
Append artifact recommendations to the artifact's describe document.
flys-artifacts/trunk@2334 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 14 Jul 2011 15:30:55 +0000 |
parents | 9e813e9137a5 |
children | 1b509e4cf99b |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Thu Jul 14 14:25:36 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Thu Jul 14 15:30:55 2011 +0000 @@ -23,12 +23,16 @@ import org.w3c.dom.Element; import org.w3c.dom.NodeList; +import de.intevation.artifacts.Artifact; +import de.intevation.artifacts.ArtifactDatabase; +import de.intevation.artifacts.ArtifactDatabaseException; import de.intevation.artifacts.ArtifactFactory; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.ArtifactNamespaceContext; import de.intevation.artifacts.common.utils.XMLUtils; +import de.intevation.artifactdatabase.ArtifactDatabaseImpl; import de.intevation.artifactdatabase.DefaultArtifact; import de.intevation.artifactdatabase.data.DefaultStateData; import de.intevation.artifactdatabase.data.StateData; @@ -78,6 +82,9 @@ public static final String XPATH_ADVANCE_TARGET = "/art:action/art:target/@art:name"; + public static final String XPATH_MODEL_ARTIFACT = + "/art:action/art:template/@art:uuid"; + /** The constant string that shows that an operation was successful.*/ public static final String OPERATION_SUCCESSFUL = "SUCCESS"; @@ -170,6 +177,28 @@ List<State> states = engine.getStates(name); setCurrentState(states.get(0)); + + String model = XMLUtils.xpathString( + data, + XPATH_MODEL_ARTIFACT, + ArtifactNamespaceContext.INSTANCE); + + if (model != null && model.length() > 0) { + ArtifactDatabase db = (ArtifactDatabase) flysContext.get( + ArtifactDatabaseImpl.GLOBAL_CONTEXT_KEY); + + try { + initialize(db.getRawArtifact(model), context); + } + catch (ArtifactDatabaseException adbe) { + logger.error(adbe, adbe); + } + } + } + + + protected void initialize(Artifact artifact, Object context) { + // do nothing here }