comparison gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVProductArtifactFactory.java @ 789:0dc115cbef0d

Added javadoc for artifact package. gnv-artifacts/trunk@871 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 31 Mar 2010 09:09:05 +0000
parents c4156275c1e1
children 22c18083225e
comparison
equal deleted inserted replaced
788:e8a9e84a0328 789:0dc115cbef0d
25 import org.w3c.dom.Document; 25 import org.w3c.dom.Document;
26 import org.w3c.dom.Node; 26 import org.w3c.dom.Node;
27 import org.w3c.dom.NodeList; 27 import org.w3c.dom.NodeList;
28 28
29 /** 29 /**
30 * This factory is called to create a {@link
31 * de.intevation.gnv.artifacts.fis.SelectProductArtifact} which lets the user
32 * select a product supported by the selected fis.
33 *
30 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 34 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
31 */ 35 */
32 public class GNVProductArtifactFactory extends DefaultArtifactFactory { 36 public class GNVProductArtifactFactory extends DefaultArtifactFactory {
33 37
38 /**
39 *
40 */
34 public static final String XPATH_REPLACE_NAME = "IDENTIFIER"; 41 public static final String XPATH_REPLACE_NAME = "IDENTIFIER";
35 42
43 /**
44 *
45 */
36 public static final String XPATH_PRODUCT_ARTIFACT = 46 public static final String XPATH_PRODUCT_ARTIFACT =
37 "artifact-database/artifacts/artifact[@name='"+XPATH_REPLACE_NAME+"']"; 47 "artifact-database/artifacts/artifact[@name='"+XPATH_REPLACE_NAME+"']";
38 48
49 /**
50 *
51 */
39 public static final String XPATH_PRODUCT = "products/product"; 52 public static final String XPATH_PRODUCT = "products/product";
40 53
54 /**
55 *
56 */
41 public static final String XPATH_PRODUCT_NAME = "@name"; 57 public static final String XPATH_PRODUCT_NAME = "@name";
42 58
59 /**
60 *
61 */
43 public static final String XPATH_PRODUCT_FACTORY = "artifact-factory"; 62 public static final String XPATH_PRODUCT_FACTORY = "artifact-factory";
44 63
64 /**
65 *
66 */
45 public static final String XPATH_PRODUCT_PARAMETER = "parameters/parameter"; 67 public static final String XPATH_PRODUCT_PARAMETER = "parameters/parameter";
46 68
47 private Logger logger = Logger.getLogger(GNVProductArtifactFactory.class); 69 private Logger logger = Logger.getLogger(GNVProductArtifactFactory.class);
48 70
49 private Map productFactories; 71 private Map productFactories;
50 private Map products; 72 private Map products;
51 73
52 74
75 /**
76 * Constructor.
77 */
53 public GNVProductArtifactFactory() { 78 public GNVProductArtifactFactory() {
54 } 79 }
55 80
81 /**
82 * Method to create an artifact. If the created artifact is from type
83 * <code>ProxyArtifact</code>, a further ProductSelectArtifact is created
84 * which becomes embedded into the <code>ProxyArtifact</code>.
85 * @param identifier UUID.
86 * @param context CallContext.
87 * @param data Some data.
88 * @return The created artifact.
89 */
56 @Override 90 @Override
57 public Artifact createArtifact(String identifier, Object context, Document data) { 91 public Artifact createArtifact(String identifier, Object context, Document data) {
58 92
59 // create a SelectProductArtifact for initial product selection 93 // create a SelectProductArtifact for initial product selection
60 Artifact artifact = super.createArtifact(identifier, context, data); 94 Artifact artifact = super.createArtifact(identifier, context, data);
69 } 103 }
70 104
71 return artifact; 105 return artifact;
72 } 106 }
73 107
108 /**
109 *
110 * @param document
111 * @param factoryNode
112 */
74 @Override 113 @Override
75 public void setup(Document document, Node factoryNode) { 114 public void setup(Document document, Node factoryNode) {
76 super.setup(document, factoryNode); 115 super.setup(document, factoryNode);
77 116
78 String xpath = XPATH_PRODUCT_ARTIFACT.replace(XPATH_REPLACE_NAME, name); 117 String xpath = XPATH_PRODUCT_ARTIFACT.replace(XPATH_REPLACE_NAME, name);
96 parseProductFactories(document, productNodes); 135 parseProductFactories(document, productNodes);
97 } 136 }
98 } 137 }
99 138
100 139
140 /**
141 *
142 * @param name
143 * @return
144 */
101 public ArtifactFactory getArtifactFactoryByName(String name) { 145 public ArtifactFactory getArtifactFactoryByName(String name) {
102 return (ArtifactFactory) productFactories.get(name); 146 return (ArtifactFactory) productFactories.get(name);
103 } 147 }
104 148
105 149
150 /**
151 *
152 * @param document
153 * @param products
154 */
106 protected void parseProductFactories(Document document, NodeList products) { 155 protected void parseProductFactories(Document document, NodeList products) {
107 int items = products.getLength(); 156 int items = products.getLength();
108 157
109 for(int i = 0; i < items; i++) { 158 for(int i = 0; i < items; i++) {
110 159
142 } 191 }
143 } 192 }
144 } 193 }
145 194
146 195
196 /**
197 * Initialize all products supported by the current fis.
198 * @param productNode
199 */
147 protected void initializeProducts(Node productNode) { 200 protected void initializeProducts(Node productNode) {
148 String productName = (String) XMLUtils.xpath( 201 String productName = (String) XMLUtils.xpath(
149 productNode, "@name", XPathConstants.STRING); 202 productNode, "@name", XPathConstants.STRING);
150 203
151 NodeList parameterNodes = (NodeList) XMLUtils.xpath( 204 NodeList parameterNodes = (NodeList) XMLUtils.xpath(
171 new DefaultProduct(productName, inputParameter, this.name) 224 new DefaultProduct(productName, inputParameter, this.name)
172 ); 225 );
173 } 226 }
174 } 227 }
175 } 228 }
229 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org