Mercurial > dive4elements > river
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); |