comparison 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
comparison
equal deleted inserted replaced
939:32d0a543e3e8 940:f4439e015278
21 21
22 import org.w3c.dom.Document; 22 import org.w3c.dom.Document;
23 import org.w3c.dom.Element; 23 import org.w3c.dom.Element;
24 import org.w3c.dom.NodeList; 24 import org.w3c.dom.NodeList;
25 25
26 import de.intevation.artifacts.Artifact;
27 import de.intevation.artifacts.ArtifactDatabase;
28 import de.intevation.artifacts.ArtifactDatabaseException;
26 import de.intevation.artifacts.ArtifactFactory; 29 import de.intevation.artifacts.ArtifactFactory;
27 import de.intevation.artifacts.CallContext; 30 import de.intevation.artifacts.CallContext;
28 31
29 import de.intevation.artifacts.common.ArtifactNamespaceContext; 32 import de.intevation.artifacts.common.ArtifactNamespaceContext;
30 import de.intevation.artifacts.common.utils.XMLUtils; 33 import de.intevation.artifacts.common.utils.XMLUtils;
31 34
35 import de.intevation.artifactdatabase.ArtifactDatabaseImpl;
32 import de.intevation.artifactdatabase.DefaultArtifact; 36 import de.intevation.artifactdatabase.DefaultArtifact;
33 import de.intevation.artifactdatabase.data.DefaultStateData; 37 import de.intevation.artifactdatabase.data.DefaultStateData;
34 import de.intevation.artifactdatabase.data.StateData; 38 import de.intevation.artifactdatabase.data.StateData;
35 import de.intevation.artifactdatabase.state.DefaultOutput; 39 import de.intevation.artifactdatabase.state.DefaultOutput;
36 import de.intevation.artifactdatabase.state.Facet; 40 import de.intevation.artifactdatabase.state.Facet;
76 80
77 /** The XPath that points to the name of the target state of ADVANCE.*/ 81 /** The XPath that points to the name of the target state of ADVANCE.*/
78 public static final String XPATH_ADVANCE_TARGET = 82 public static final String XPATH_ADVANCE_TARGET =
79 "/art:action/art:target/@art:name"; 83 "/art:action/art:target/@art:name";
80 84
85 public static final String XPATH_MODEL_ARTIFACT =
86 "/art:action/art:template/@art:uuid";
87
81 /** The constant string that shows that an operation was successful.*/ 88 /** The constant string that shows that an operation was successful.*/
82 public static final String OPERATION_SUCCESSFUL = "SUCCESS"; 89 public static final String OPERATION_SUCCESSFUL = "SUCCESS";
83 90
84 /** The constant string that shows that an operation failed.*/ 91 /** The constant string that shows that an operation failed.*/
85 public static final String OPERATION_FAILED = "FAILURE"; 92 public static final String OPERATION_FAILED = "FAILURE";
168 175
169 logger.debug("Set initial state for artifact '" + name + "'"); 176 logger.debug("Set initial state for artifact '" + name + "'");
170 List<State> states = engine.getStates(name); 177 List<State> states = engine.getStates(name);
171 178
172 setCurrentState(states.get(0)); 179 setCurrentState(states.get(0));
180
181 String model = XMLUtils.xpathString(
182 data,
183 XPATH_MODEL_ARTIFACT,
184 ArtifactNamespaceContext.INSTANCE);
185
186 if (model != null && model.length() > 0) {
187 ArtifactDatabase db = (ArtifactDatabase) flysContext.get(
188 ArtifactDatabaseImpl.GLOBAL_CONTEXT_KEY);
189
190 try {
191 initialize(db.getRawArtifact(model), context);
192 }
193 catch (ArtifactDatabaseException adbe) {
194 logger.error(adbe, adbe);
195 }
196 }
197 }
198
199
200 protected void initialize(Artifact artifact, Object context) {
201 // do nothing here
173 } 202 }
174 203
175 204
176 /** 205 /**
177 * Insert new data included in <code>input</code> into the current state. 206 * Insert new data included in <code>input</code> into the current state.

http://dive4elements.wald.intevation.org