comparison gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java @ 117:ef157bd2fa92

LanguageSupport integrated gnv-artifacts/trunk@178 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 02 Oct 2009 14:24:47 +0000
parents 820238357bab
children 7fb9441dd8af
comparison
equal deleted inserted replaced
116:820238357bab 117:ef157bd2fa92
22 import de.intevation.artifactdatabase.DefaultArtifact; 22 import de.intevation.artifactdatabase.DefaultArtifact;
23 import de.intevation.artifactdatabase.XMLUtils; 23 import de.intevation.artifactdatabase.XMLUtils;
24 import de.intevation.artifacts.ArtifactFactory; 24 import de.intevation.artifacts.ArtifactFactory;
25 import de.intevation.artifacts.ArtifactNamespaceContext; 25 import de.intevation.artifacts.ArtifactNamespaceContext;
26 import de.intevation.artifacts.CallContext; 26 import de.intevation.artifacts.CallContext;
27 import de.intevation.artifacts.CallMeta;
27 import de.intevation.gnv.artifacts.context.GNVArtifactContext; 28 import de.intevation.gnv.artifacts.context.GNVArtifactContext;
28 import de.intevation.gnv.transition.DefaultInputData; 29 import de.intevation.gnv.transition.DefaultInputData;
29 import de.intevation.gnv.transition.InputData; 30 import de.intevation.gnv.transition.InputData;
30 import de.intevation.gnv.transition.InputValue; 31 import de.intevation.gnv.transition.InputValue;
31 import de.intevation.gnv.transition.OutputMode; 32 import de.intevation.gnv.transition.OutputMode;
101 if (this.current.validate()){ 102 if (this.current.validate()){
102 103
103 try { 104 try {
104 Transition nextStep = this.transitions.get(transitionName); 105 Transition nextStep = this.transitions.get(transitionName);
105 // 2.Ergebnisse Berechnen 106 // 2.Ergebnisse Berechnen
106 this.current.advance(uuid); 107 this.current.advance(uuid,context.getMeta());
107 // 3. Ergebnisse übergeben 108 // 3. Ergebnisse übergeben
108 nextStep.setDescibeData(this.current.getDescibeData()); 109 nextStep.setDescibeData(this.current.getDescibeData());
109 nextStep.putInputData(this.current.getInputData(),uuid); 110 nextStep.putInputData(this.current.getInputData(),uuid);
110 // 4. Umschalten auf neue Transistion 111 // 4. Umschalten auf neue Transistion
111 this.current = nextStep; 112 this.current = nextStep;
207 208
208 } 209 }
209 } 210 }
210 211
211 212
212 protected Document createDescibeOutput(){ 213 protected Document createDescibeOutput(CallMeta callMeta){
213 log.debug("GNVArtifactBase.createDescibeOutput"); 214 log.debug("GNVArtifactBase.createDescibeOutput");
214 Document document = XMLUtils.newDocument(); 215 Document document = XMLUtils.newDocument();
215 Element rootNode = this.createRootNode(document); 216 Element rootNode = this.createRootNode(document);
216 this.createHeader(rootNode, document, "describe"); 217 this.createHeader(rootNode, document, "describe");
217 this.createOutputs(rootNode, document); 218 this.createOutputs(rootNode, document);
218 this.createCurrentState(rootNode, document); 219 this.createCurrentState(rootNode, document);
219 this.createReachableStates(rootNode, document); 220 this.createReachableStates(rootNode, document);
220 this.createModel(rootNode, document); 221 this.createModel(rootNode, document);
221 this.createUserInterface(rootNode, document); 222 this.createUserInterface(rootNode, document,callMeta);
222 return document; 223 return document;
223 } 224 }
224 225
225 protected Element createRootNode(Document document){ 226 protected Element createRootNode(Document document){
226 Element rootNode = xmlUtilities.createArtifactElement(document,"result"); 227 Element rootNode = xmlUtilities.createArtifactElement(document,"result");
282 } 283 }
283 } 284 }
284 parent.appendChild(modelNode); 285 parent.appendChild(modelNode);
285 } 286 }
286 287
287 protected void createUserInterface(Element parent, Document document){ 288 protected void createUserInterface(Element parent, Document document, CallMeta callMeta){
288 Element uiNode = xmlUtilities.createArtifactElement(document,"ui"); 289 Element uiNode = xmlUtilities.createArtifactElement(document,"ui");
289 290
290 if (this.current != null){ 291 if (this.current != null){
291 this.current.describe(document, uiNode); 292 this.current.describe(document, uiNode,callMeta);
292 } 293 }
293 294
294 parent.appendChild(uiNode); 295 parent.appendChild(uiNode);
295 } 296 }
296 297
362 return returnValue.values(); 363 return returnValue.values();
363 } 364 }
364 365
365 366
366 /** 367 /**
367 * @see de.intevation.artifactdatabase.DefaultArtifact#out(org.w3c.dom.Document, java.io.OutputStream, de.intevation.artifacts.CallContext) 368 * @see de.intevation.artifactdatabase.DefaultArtifact#out(org.w3c.dom.Document,
369 * java.io.OutputStream, de.intevation.artifacts.CallContext)
368 */ 370 */
369 @Override 371 @Override
370 public void out(Document format, OutputStream outputStream, CallContext context) 372 public void out(Document format, OutputStream outputStream,
371 throws IOException { 373 CallContext context) throws IOException {
372 log.debug("TGNVArtifactBase.out"); 374 log.debug("TGNVArtifactBase.out");
373 try { 375 try {
374 376
375 if (current != null && current instanceof OutputTransition){ 377 if (current != null && current instanceof OutputTransition) {
376 String uuid = Config.getStringXPath(format, "action/uuid/@value"); 378 String uuid = Config.getStringXPath(format,
377 ((OutputTransition)current).out(this.readOutputType(format),this.parseInputData(format, "/action/out/params/input"), outputStream,uuid); 379 "action/uuid/@value");
378 //context.afterCall(CallContext.STORE); // TODO: FIXME Schmutzige Lösung: Besser einen weiteren Transitionsschritt zwischenschalten. 380 ((OutputTransition) current)
381 .out(this.readOutputType(format), this.parseInputData(
382 format, "/action/out/params/input"),
383 outputStream, uuid, context.getMeta());
379 } 384 }
380 } catch (TransitionException e) { 385 } catch (TransitionException e) {
381 log.error(e,e); 386 log.error(e, e);
382 throw new IOException(e.getMessage()); 387 throw new IOException(e.getMessage());
383 } 388 }
384 } 389 }
385 390
386 391

http://dive4elements.wald.intevation.org