001
002 package org.kuali.student.security.policy.dto;
003
004 import java.util.ArrayList;
005 import java.util.HashMap;
006 import java.util.List;
007 import java.util.Map;
008 import javax.xml.bind.annotation.XmlAccessType;
009 import javax.xml.bind.annotation.XmlAccessorType;
010 import javax.xml.bind.annotation.XmlAnyAttribute;
011 import javax.xml.bind.annotation.XmlAnyElement;
012 import javax.xml.bind.annotation.XmlElement;
013 import javax.xml.bind.annotation.XmlElements;
014 import javax.xml.bind.annotation.XmlRootElement;
015 import javax.xml.bind.annotation.XmlType;
016 import javax.xml.namespace.QName;
017 import org.w3c.dom.Element;
018
019
020 /**
021 * <p>Java class for anonymous complex type.
022 *
023 * <p>The following schema fragment specifies the expected content contained within this class.
024 *
025 * <pre>
026 * <complexType>
027 * <complexContent>
028 * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
029 * <sequence>
030 * <element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}AppliesTo"/>
031 * <choice maxOccurs="unbounded">
032 * <element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy"/>
033 * <element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}PolicyReference"/>
034 * </choice>
035 * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
036 * </sequence>
037 * <anyAttribute processContents='lax'/>
038 * </restriction>
039 * </complexContent>
040 * </complexType>
041 * </pre>
042 *
043 *
044 */
045 @XmlAccessorType(XmlAccessType.FIELD)
046 @XmlType(name = "", propOrder = {
047 "appliesTo",
048 "policyOrPolicyReference",
049 "any"
050 })
051 @XmlRootElement(name = "PolicyAttachment")
052 public class PolicyAttachment {
053
054 @XmlElement(name = "AppliesTo", required = true)
055 protected AppliesTo appliesTo;
056 @XmlElements({
057 @XmlElement(name = "PolicyReference", type = PolicyReference.class),
058 @XmlElement(name = "Policy", type = Policy.class)
059 })
060 protected List<Object> policyOrPolicyReference;
061 @XmlAnyElement(lax = true)
062 protected List<Object> any;
063 @XmlAnyAttribute
064 private Map<QName, String> otherAttributes = new HashMap<QName, String>();
065
066 /**
067 * Gets the value of the appliesTo property.
068 *
069 * @return
070 * possible object is
071 * {@link AppliesTo }
072 *
073 */
074 public AppliesTo getAppliesTo() {
075 return appliesTo;
076 }
077
078 /**
079 * Sets the value of the appliesTo property.
080 *
081 * @param value
082 * allowed object is
083 * {@link AppliesTo }
084 *
085 */
086 public void setAppliesTo(AppliesTo value) {
087 this.appliesTo = value;
088 }
089
090 /**
091 * Gets the value of the policyOrPolicyReference property.
092 *
093 * <p>
094 * This accessor method returns a reference to the live list,
095 * not a snapshot. Therefore any modification you make to the
096 * returned list will be present inside the JAXB object.
097 * This is why there is not a <CODE>set</CODE> method for the policyOrPolicyReference property.
098 *
099 * <p>
100 * For example, to add a new item, do as follows:
101 * <pre>
102 * getPolicyOrPolicyReference().add(newItem);
103 * </pre>
104 *
105 *
106 * <p>
107 * Objects of the following type(s) are allowed in the list
108 * {@link PolicyReference }
109 * {@link Policy }
110 *
111 *
112 */
113 public List<Object> getPolicyOrPolicyReference() {
114 if (policyOrPolicyReference == null) {
115 policyOrPolicyReference = new ArrayList<Object>();
116 }
117 return this.policyOrPolicyReference;
118 }
119
120 /**
121 * Gets the value of the any property.
122 *
123 * <p>
124 * This accessor method returns a reference to the live list,
125 * not a snapshot. Therefore any modification you make to the
126 * returned list will be present inside the JAXB object.
127 * This is why there is not a <CODE>set</CODE> method for the any property.
128 *
129 * <p>
130 * For example, to add a new item, do as follows:
131 * <pre>
132 * getAny().add(newItem);
133 * </pre>
134 *
135 *
136 * <p>
137 * Objects of the following type(s) are allowed in the list
138 * {@link Object }
139 * {@link Element }
140 *
141 *
142 */
143 public List<Object> getAny() {
144 if (any == null) {
145 any = new ArrayList<Object>();
146 }
147 return this.any;
148 }
149
150 /**
151 * Gets a map that contains attributes that aren't bound to any typed property on this class.
152 *
153 * <p>
154 * the map is keyed by the name of the attribute and
155 * the value is the string value of the attribute.
156 *
157 * the map returned by this method is live, and you can add new attribute
158 * by updating the map directly. Because of this design, there's no setter.
159 *
160 *
161 * @return
162 * always non-null
163 */
164 public Map<QName, String> getOtherAttributes() {
165 return otherAttributes;
166 }
167
168 }