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.CombinerParametersType;
21 import org.opensaml.xacml.policy.DefaultsType;
22 import org.opensaml.xacml.policy.DescriptionType;
23 import org.opensaml.xacml.policy.ObligationsType;
24 import org.opensaml.xacml.policy.PolicyType;
25 import org.opensaml.xacml.policy.RuleCombinerParametersType;
26 import org.opensaml.xacml.policy.RuleType;
27 import org.opensaml.xacml.policy.TargetType;
28 import org.opensaml.xacml.policy.VariableDefinitionType;
29 import org.opensaml.xml.XMLObject;
30 import org.opensaml.xml.io.AbstractXMLObjectUnmarshaller;
31 import org.opensaml.xml.io.UnmarshallingException;
32 import org.w3c.dom.Attr;
33
34
35 public class PolicyTypeUnmarshaller extends AbstractXMLObjectUnmarshaller {
36
37
38 public PolicyTypeUnmarshaller() {
39 super();
40 }
41
42
43 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
44 PolicyType policy = (PolicyType) xmlObject;
45
46 if (attribute.getLocalName().equals(PolicyType.POLICY_ID_ATTRIB_NAME)) {
47 policy.setPolicyId(attribute.getValue());
48 } else if (attribute.getLocalName().equals(PolicyType.VERSION_ATTRIB_NAME)) {
49 policy.setVersion(attribute.getValue());
50 } else if (attribute.getLocalName().equals(PolicyType.RULE_COMBINING_ALG_ID_ATTRIB_NAME)) {
51 policy.setRuleCombiningAlgoId(attribute.getValue());
52 }
53 }
54
55
56 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
57 throws UnmarshallingException {
58 PolicyType policy = (PolicyType) parentXMLObject;
59
60 if (childXMLObject instanceof DescriptionType) {
61 policy.setDescription((DescriptionType) childXMLObject);
62 } else if (childXMLObject.getElementQName().equals(DefaultsType.POLICY_DEFAULTS_ELEMENT_NAME)) {
63 policy.setPolicyDefaults((DefaultsType) childXMLObject);
64 } else if (childXMLObject instanceof TargetType) {
65 policy.setTarget((TargetType) childXMLObject);
66 } else if (childXMLObject instanceof CombinerParametersType) {
67 policy.getCombinerParameters().add((CombinerParametersType) childXMLObject);
68 } else if (childXMLObject instanceof RuleCombinerParametersType) {
69 policy.getRuleCombinerParameters().add((RuleCombinerParametersType) childXMLObject);
70 } else if (childXMLObject instanceof VariableDefinitionType) {
71 policy.getVariableDefinitions().add((VariableDefinitionType) childXMLObject);
72 } else if (childXMLObject instanceof RuleType) {
73 policy.getRules().add((RuleType)childXMLObject);
74 } else if (childXMLObject instanceof ObligationsType) {
75 policy.setObligations((ObligationsType) childXMLObject);
76 }
77 }
78
79
80 protected void processElementContent(XMLObject xmlObject, String elementContent) {
81
82 }
83 }