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 java.util.Map.Entry;
21
22 import javax.xml.namespace.QName;
23
24 import org.opensaml.Configuration;
25 import org.opensaml.xacml.policy.AttributeAssignmentType;
26 import org.opensaml.xacml.policy.AttributeValueType;
27 import org.opensaml.xml.XMLObject;
28 import org.opensaml.xml.io.AbstractXMLObjectMarshaller;
29 import org.opensaml.xml.io.MarshallingException;
30 import org.opensaml.xml.util.DatatypeHelper;
31 import org.opensaml.xml.util.XMLHelper;
32 import org.w3c.dom.Attr;
33 import org.w3c.dom.Element;
34
35
36 public class AttributeValueTypeMarshaller extends AbstractXMLObjectMarshaller {
37
38
39 public AttributeValueTypeMarshaller() {
40 super();
41 }
42
43
44 protected void marshallAttributes(XMLObject xmlObject, Element domElement) throws MarshallingException {
45 AttributeValueType attributeValue = (AttributeValueType) xmlObject;
46
47 if(!DatatypeHelper.isEmpty(attributeValue.getDataType())){
48 domElement.setAttributeNS(null,AttributeAssignmentType.DATA_TYPE_ATTRIB_NAME, attributeValue.getDataType());
49 }
50
51 Attr attribute;
52 for (Entry<QName, String> entry : attributeValue.getUnknownAttributes().entrySet()) {
53 attribute = XMLHelper.constructAttribute(domElement.getOwnerDocument(), entry.getKey());
54 attribute.setValue(entry.getValue());
55 domElement.setAttributeNodeNS(attribute);
56 if (Configuration.isIDAttribute(entry.getKey())
57 || attributeValue.getUnknownAttributes().isIDAttribute(entry.getKey())) {
58 attribute.getOwnerElement().setIdAttributeNode(attribute, true);
59 }
60 }
61 }
62
63
64 protected void marshallElementContent(XMLObject xmlObject, Element domElement) throws MarshallingException {
65 AttributeValueType attributeValue = (AttributeValueType) xmlObject;
66
67 if (attributeValue.getValue() != null) {
68 XMLHelper.appendTextContent(domElement, attributeValue.getValue());
69 }
70 }
71 }