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.ConditionType;
21 import org.opensaml.xacml.policy.DescriptionType;
22 import org.opensaml.xacml.policy.EffectType;
23 import org.opensaml.xacml.policy.RuleType;
24 import org.opensaml.xacml.policy.TargetType;
25 import org.opensaml.xml.XMLObject;
26 import org.opensaml.xml.io.AbstractXMLObjectUnmarshaller;
27 import org.opensaml.xml.io.UnmarshallingException;
28 import org.opensaml.xml.util.DatatypeHelper;
29 import org.w3c.dom.Attr;
30
31
32
33
34 public class RuleTypeUnmarshaller extends AbstractXMLObjectUnmarshaller {
35
36
37 public RuleTypeUnmarshaller() {
38 super();
39 }
40
41
42
43 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
44 RuleType ruleType = (RuleType) xmlObject;
45
46 if(attribute.getLocalName().equals(RuleType.EFFECT_ATTRIB_NAME)){
47 ruleType.setEffect(EffectType.valueOf(
48 DatatypeHelper.safeTrimOrNullString(attribute.getValue())));
49 } else if(attribute.getLocalName().equals(RuleType.RULE_ID_ATTRIB_NAME)){
50 ruleType.setRuleId(DatatypeHelper.safeTrimOrNullString(attribute.getValue()));
51 }
52
53 }
54
55
56 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
57 throws UnmarshallingException {
58 RuleType ruleType = (RuleType) parentXMLObject;
59
60 if(childXMLObject instanceof TargetType){
61 ruleType.setTarget((TargetType)childXMLObject);
62 } else if(childXMLObject instanceof DescriptionType){
63 ruleType.setDescription((DescriptionType)childXMLObject);
64 }else if(childXMLObject instanceof ConditionType){
65 ruleType.setCondition((ConditionType)childXMLObject);
66 }
67 }
68
69
70 protected void processElementContent(XMLObject xmlObject, String elementContent) {
71 }
72
73 }