1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.opensaml.xacml.policy.impl;
19
20 import javax.xml.namespace.QName;
21
22 import org.opensaml.xacml.policy.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 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
40 AttributeValueType attributeValue = (AttributeValueType) xmlObject;
41
42 QName attribQName = XMLHelper.getNodeQName(attribute);
43 if (attribute.isId()) {
44 attributeValue.getUnknownAttributes().registerID(attribQName);
45 }
46 attributeValue.getUnknownAttributes().put(attribQName, attribute.getValue());
47
48 if(attribute.getLocalName().equals(AttributeValueType.DATA_TYPE_ATTRIB_NAME)){
49 attributeValue.setDataType(DatatypeHelper.safeTrimOrNullString(attribute.getValue()));
50 }
51 }
52
53
54 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
55 throws UnmarshallingException {
56 AttributeValueType attributeValue = (AttributeValueType) parentXMLObject;
57 attributeValue.getUnknownXMLObjects().add(childXMLObject);
58 }
59
60
61 protected void processElementContent(XMLObject xmlObject, String elementContent) {
62 AttributeValueType attributeValue = (AttributeValueType) xmlObject;
63 attributeValue.setValue(elementContent);
64 }
65 }