comparison gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java @ 57:f01592cd6419

Funktionalität Feed initial bereitgestellt. gnv-artifacts/trunk@39 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 08 Sep 2009 12:22:00 +0000
parents 737d8bf63701
children f31343d80d53
comparison
equal deleted inserted replaced
56:737d8bf63701 57:f01592cd6419
1 /** 1 /**
2 * 2 *
3 */ 3 */
4 package de.intevation.gnv.artifacts; 4 package de.intevation.gnv.artifacts;
5 5
6 import java.util.ArrayList;
6 import java.util.Collection; 7 import java.util.Collection;
7 import java.util.HashMap; 8 import java.util.HashMap;
8 import java.util.Iterator; 9 import java.util.Iterator;
9 import java.util.Map; 10 import java.util.Map;
10 11
15 import org.w3c.dom.NodeList; 16 import org.w3c.dom.NodeList;
16 17
17 import de.intevation.artifactdatabase.Config; 18 import de.intevation.artifactdatabase.Config;
18 import de.intevation.artifactdatabase.DefaultArtifact; 19 import de.intevation.artifactdatabase.DefaultArtifact;
19 import de.intevation.gnv.artifacts.context.GNVArtifactContext; 20 import de.intevation.gnv.artifacts.context.GNVArtifactContext;
21 import de.intevation.gnv.transition.DefaultInputData;
22 import de.intevation.gnv.transition.InputData;
20 import de.intevation.gnv.transition.InputValue; 23 import de.intevation.gnv.transition.InputValue;
21 import de.intevation.gnv.transition.Transition; 24 import de.intevation.gnv.transition.Transition;
22 import de.intevation.gnv.transition.TransitionFactory; 25 import de.intevation.gnv.transition.TransitionFactory;
26 import de.intevation.gnv.transition.exception.TransitionException;
23 27
24 /** 28 /**
25 * @author Tim Englich <tim.englich@intevation.de> 29 * @author Tim Englich <tim.englich@intevation.de>
26 * 30 *
27 */ 31 */
71 protected Node getConfigurationFragment(Document document){ 75 protected Node getConfigurationFragment(Document document){
72 log.debug("GNVArtifactBase.getConfigurationFragment"); 76 log.debug("GNVArtifactBase.getConfigurationFragment");
73 String xpathQuery = XPATH_ARTIFACT_CONFIGURATION.replaceAll(XPATH_IDENTIFIER_REPLACE, this.name); 77 String xpathQuery = XPATH_ARTIFACT_CONFIGURATION.replaceAll(XPATH_IDENTIFIER_REPLACE, this.name);
74 log.debug(xpathQuery); 78 log.debug(xpathQuery);
75 return Config.getNodeXPath(document,xpathQuery); 79 return Config.getNodeXPath(document,xpathQuery);
80 }
81
82 /**
83 * @see de.intevation.artifactdatabase.DefaultArtifact#feed(org.w3c.dom.Document, java.lang.Object)
84 */
85 @Override
86 public Document feed(Document target, Object context) {
87 Document result = super.newDocument();
88 try {
89 if (this.current != null){
90 this.current.putInputData(this.parseInputData(target));
91 // TODO Ergebnisdokument erzeugen.
92 }
93 } catch (TransitionException e) {
94 log.error(e,e);
95 //TODO: Fehlerdokumenterzeugen.
96 }
97 return result;
76 } 98 }
77 99
78 /** 100 /**
79 * @see de.intevation.artifactdatabase.DefaultArtifact#setup(java.lang.String, java.lang.Object) 101 * @see de.intevation.artifactdatabase.DefaultArtifact#setup(java.lang.String, java.lang.Object)
80 */ 102 */
201 Element node = document.createElementNS(DefaultArtifact.NAMESPACE_URI, name); 223 Element node = document.createElementNS(DefaultArtifact.NAMESPACE_URI, name);
202 node.setPrefix(DefaultArtifact.NAMESPACE_PREFIX); 224 node.setPrefix(DefaultArtifact.NAMESPACE_PREFIX);
203 return node; 225 return node;
204 } 226 }
205 227
228 protected Collection<InputData> parseInputData(Document document){
229 log.debug("GNVArtifactBase.parseInputData");
230 Collection<InputData> returnValue = null;
231
232 NodeList inputElemets = Config.getNodeSetXPath(document, "action/data/input");
233 if(inputElemets != null){
234 returnValue = new ArrayList<InputData>(inputElemets.getLength());
235 for (int i = 0; i < inputElemets.getLength(); i++){
236 Node inputDataNode = inputElemets.item(i);
237 InputData inputData = new DefaultInputData(Config.getStringXPath(inputDataNode,"@name"), Config.getStringXPath(inputDataNode,"@value"));
238 log.debug(inputData.toString());
239 returnValue.add(inputData);
240 }
241 }
242 return returnValue;
243 }
244
206 245
207 } 246 }

http://dive4elements.wald.intevation.org