comparison flys-artifacts/src/main/java/de/intevation/flys/collections/AttributeParser.java @ 1779:2fe270661b20

Let Output and Attribute Parsers collect Facets during processing. flys-artifacts/trunk@3101 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 28 Oct 2011 09:08:48 +0000
parents 238145ef67da
children 0b466bd4ab24
comparison
equal deleted inserted replaced
1778:5a1d59926a72 1779:2fe270661b20
1 package de.intevation.flys.collections; 1 package de.intevation.flys.collections;
2 2
3 import java.util.ArrayList;
3 import java.util.HashMap; 4 import java.util.HashMap;
5 import java.util.List;
4 import java.util.Map; 6 import java.util.Map;
5 7
6 import javax.xml.xpath.XPathConstants; 8 import javax.xml.xpath.XPathConstants;
7 9
8 import org.apache.log4j.Logger; 10 import org.apache.log4j.Logger;
13 import org.w3c.dom.NodeList; 15 import org.w3c.dom.NodeList;
14 16
15 import de.intevation.artifacts.ArtifactNamespaceContext; 17 import de.intevation.artifacts.ArtifactNamespaceContext;
16 18
17 import de.intevation.artifactdatabase.state.DefaultOutput; 19 import de.intevation.artifactdatabase.state.DefaultOutput;
20 import de.intevation.artifactdatabase.state.Facet;
18 import de.intevation.artifactdatabase.state.Output; 21 import de.intevation.artifactdatabase.state.Output;
19 22
20 import de.intevation.artifacts.common.utils.XMLUtils; 23 import de.intevation.artifacts.common.utils.XMLUtils;
21 24
22 import de.intevation.flys.artifacts.model.ManagedFacet; 25 import de.intevation.flys.artifacts.model.ManagedFacet;
23 import de.intevation.flys.artifacts.model.ManagedDomFacet; 26 import de.intevation.flys.artifacts.model.ManagedDomFacet;
24 27
25 28 /**
29 * Access parts of the Attribute parts of a FLYSCollections description
30 * document.
31 */
26 public class AttributeParser { 32 public class AttributeParser {
27 33
28 /** Constant XPath that points to the outputmodes of an artifact. */ 34 /** Constant XPath that points to the outputmodes of an artifact. */
29 public static final String XPATH_ARTIFACT_OUTPUTMODES = 35 public static final String XPATH_ARTIFACT_OUTPUTMODES =
30 "/art:attribute/art:outputs/art:output"; 36 "/art:attribute/art:outputs/art:output";
31 37
32
33 private static Logger logger = Logger.getLogger(AttributeParser.class); 38 private static Logger logger = Logger.getLogger(AttributeParser.class);
34
35 39
36 protected Map<String, Output> outs; 40 protected Map<String, Output> outs;
37 41
42 /** List of facets. */
43 protected List<Facet> facets;
44
38 45
39 public AttributeParser() { 46 public AttributeParser() {
40 this.outs = new HashMap<String, Output>(); 47 this.outs = new HashMap<String, Output>();
48 this.facets = new ArrayList<Facet>();
41 } 49 }
42 50
43 51
44 public void parse(Document doc) { 52 public void parse(Document doc) {
45 logger.debug("AttributeParser.parse"); 53 logger.debug("AttributeParser.parse");
65 public Map<String, Output> getOuts() { 73 public Map<String, Output> getOuts() {
66 return outs; 74 return outs;
67 } 75 }
68 76
69 77
78 /**
79 * Adds item (a ManagedFacet) to an out.
80 */
70 protected void addItem(String out, ManagedFacet item) { 81 protected void addItem(String out, ManagedFacet item) {
82 this.facets.add(item);
71 Output o = outs.get(out); 83 Output o = outs.get(out);
72 84
73 if (o != null) { 85 if (o != null) {
74 o.addFacet(item); 86 o.addFacet(item);
75 } 87 }
89 101
90 parseItems(out, name); 102 parseItems(out, name);
91 } 103 }
92 104
93 105
106 /**
107 * Access all facets.
108 * @return list of all facets.
109 */
110 public List<Facet> getFacets() {
111 return this.facets;
112 }
113
114
94 protected void parseItems(Node out, String outname) { 115 protected void parseItems(Node out, String outname) {
95 NodeList themes = (NodeList) XMLUtils.xpath( 116 NodeList themes = (NodeList) XMLUtils.xpath(
96 out, "art:facet", 117 out, "art:facet",
97 XPathConstants.NODESET, 118 XPathConstants.NODESET,
98 ArtifactNamespaceContext.INSTANCE); 119 ArtifactNamespaceContext.INSTANCE);

http://dive4elements.wald.intevation.org