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 javax.xml.namespace.QName;
21
22 import org.opensaml.xacml.ctx.AttributeValueType;
23 import org.opensaml.xml.XMLObject;
24 import org.opensaml.xml.io.AbstractXMLObjectUnmarshaller;
25 import org.opensaml.xml.io.UnmarshallingException;
26 import org.opensaml.xml.util.DatatypeHelper;
27 import org.opensaml.xml.util.XMLHelper;
28 import org.w3c.dom.Attr;
29
30
31 public class AttributeValueTypeUnmarshaller extends AbstractXMLObjectUnmarshaller {
32
33
34 public AttributeValueTypeUnmarshaller() {
35 super();
36 }
37
38
39
40
41
42
43
44
45
46 protected AttributeValueTypeUnmarshaller(String targetNamespaceURI, String targetLocalName) {
47 super(targetNamespaceURI, targetLocalName);
48 }
49
50
51 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
52 AttributeValueType attributeValue = (AttributeValueType) xmlObject;
53
54 QName attribQName = XMLHelper.getNodeQName(attribute);
55 if (attribute.isId()) {
56 attributeValue.getUnknownAttributes().registerID(attribQName);
57 }
58 attributeValue.getUnknownAttributes().put(attribQName, attribute.getValue());
59 }
60
61
62 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
63 throws UnmarshallingException {
64
65 AttributeValueType attributeValue = (AttributeValueType) parentXMLObject;
66 attributeValue.getUnknownXMLObjects().add(childXMLObject);
67 }
68
69
70 protected void processElementContent(XMLObject xmlObject, String elementContent) {
71 AttributeValueType attributeValue = (AttributeValueType) xmlObject;
72 attributeValue.setValue(DatatypeHelper.safeTrimOrNullString(elementContent));
73 }
74 }