1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.opensaml.xacml.profile.saml.impl;
20
21 import java.util.ArrayList;
22 import java.util.Collections;
23 import java.util.List;
24
25 import org.opensaml.common.impl.AbstractSAMLObject;
26 import org.opensaml.xacml.XACMLObject;
27 import org.opensaml.xacml.policy.PolicySetType;
28 import org.opensaml.xacml.policy.PolicyType;
29 import org.opensaml.xacml.profile.saml.ReferencedPoliciesType;
30 import org.opensaml.xacml.profile.saml.XACMLPolicyStatementType;
31 import org.opensaml.xml.XMLObject;
32 import org.opensaml.xml.util.IndexedXMLObjectChildrenList;
33
34
35 public class XACMLPolicyStatementTypeImpl extends AbstractSAMLObject implements XACMLPolicyStatementType {
36
37
38 private IndexedXMLObjectChildrenList<XACMLObject> choiceGroup;
39
40
41 private ReferencedPoliciesType referencedPolicies;
42
43
44
45
46
47
48
49
50 protected XACMLPolicyStatementTypeImpl(String namespaceURI, String elementLocalName, String namespacePrefix) {
51 super(namespaceURI, elementLocalName, namespacePrefix);
52 choiceGroup = new IndexedXMLObjectChildrenList<XACMLObject>(this);
53 }
54
55
56 public List<XMLObject> getOrderedChildren() {
57 ArrayList<XMLObject> children = new ArrayList<XMLObject>();
58
59 children.addAll(choiceGroup);
60
61 if (referencedPolicies != null) {
62 children.add(referencedPolicies);
63 }
64
65 return Collections.unmodifiableList(children);
66 }
67
68
69 public List<PolicyType> getPolicies() {
70 return (List<PolicyType>) choiceGroup.subList(PolicyType.DEFAULT_ELEMENT_NAME);
71 }
72
73
74 public List<PolicySetType> getPolicySets() {
75 return (List<PolicySetType>) choiceGroup.subList(PolicySetType.DEFAULT_ELEMENT_NAME);
76 }
77
78
79 public ReferencedPoliciesType getReferencedPolicies() {
80 return referencedPolicies;
81 }
82
83
84 public void setReferencedPolicies(ReferencedPoliciesType policies) {
85 referencedPolicies = prepareForAssignment(referencedPolicies, policies);
86 }
87 }