1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.opensaml.xacml.ctx.impl;
19
20 import java.util.ArrayList;
21 import java.util.Collections;
22 import java.util.List;
23
24 import javax.xml.namespace.QName;
25
26 import org.opensaml.xacml.ctx.AttributeValueType;
27 import org.opensaml.xml.XMLObject;
28 import org.opensaml.xml.util.AttributeMap;
29 import org.opensaml.xml.util.IndexedXMLObjectChildrenList;
30 import org.opensaml.xml.validation.AbstractValidatingXMLObject;
31
32
33 public class AttributeValueTypeImpl extends AbstractValidatingXMLObject implements AttributeValueType {
34
35
36 private IndexedXMLObjectChildrenList<XMLObject> unknownElements;
37
38
39 private AttributeMap unknownAttributes;
40
41
42 private String textContent;
43
44
45
46
47
48
49
50
51 protected AttributeValueTypeImpl(String namespaceURI, String elementLocalName, String namespacePrefix) {
52 super(namespaceURI, elementLocalName, namespacePrefix);
53 unknownAttributes = new AttributeMap(this);
54 unknownElements = new IndexedXMLObjectChildrenList<XMLObject>(this);
55 }
56
57
58 public List<XMLObject> getOrderedChildren() {
59 ArrayList<XMLObject> children = new ArrayList<XMLObject>();
60
61 if (textContent == null) {
62 children.addAll(unknownElements);
63 }
64
65 return Collections.unmodifiableList(children);
66 }
67
68
69 public List<XMLObject> getUnknownXMLObjects() {
70 return unknownElements;
71 }
72
73
74 public List<XMLObject> getUnknownXMLObjects(QName typeOrName) {
75 return (List<XMLObject>) unknownElements.subList(typeOrName);
76 }
77
78
79 public AttributeMap getUnknownAttributes() {
80 return unknownAttributes;
81 }
82
83
84 public String getValue() {
85 return textContent;
86 }
87
88
89 public void setValue(String value) {
90 textContent = prepareForAssignment(textContent, value);
91 }
92 }
93