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 org.opensaml.xacml.policy.AttributeDesignatorType;
21 import org.opensaml.xacml.policy.AttributeSelectorType;
22 import org.opensaml.xacml.policy.AttributeValueType;
23 import org.opensaml.xacml.policy.SubjectMatchType;
24 import org.opensaml.xml.XMLObject;
25 import org.opensaml.xml.io.AbstractXMLObjectUnmarshaller;
26 import org.opensaml.xml.io.UnmarshallingException;
27 import org.opensaml.xml.util.DatatypeHelper;
28 import org.w3c.dom.Attr;
29
30
31 public class SubjectMatchTypeUnmarshaller extends AbstractXMLObjectUnmarshaller {
32
33
34 public SubjectMatchTypeUnmarshaller() {
35 super();
36 }
37
38
39 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
40 if (attribute.getLocalName().equals(SubjectMatchType.MATCH_ID_ATTRIB_NAME)) {
41 SubjectMatchType matchType = (SubjectMatchType) xmlObject;
42 matchType.setMatchId(DatatypeHelper.safeTrimOrNullString(attribute.getValue()));
43 }
44 }
45
46
47 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
48 throws UnmarshallingException {
49 SubjectMatchType matchType = (SubjectMatchType) parentXMLObject;
50
51 if (childXMLObject instanceof AttributeValueType) {
52 matchType.setAttributeValue((AttributeValueType) childXMLObject);
53 } else if (childXMLObject.getElementQName().equals(
54 AttributeDesignatorType.SUBJECT_ATTRIBUTE_DESIGNATOR_ELEMENT_NAME)) {
55 matchType.setSubjectAttributeDesignator((AttributeDesignatorType) childXMLObject);
56 } else if (childXMLObject instanceof AttributeSelectorType) {
57 matchType.setAttributeSelector((AttributeSelectorType) childXMLObject);
58 }
59 }
60
61
62 protected void processElementContent(XMLObject xmlObject, String elementContent) {
63
64 }
65 }