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     * &lt;complexType>
027     *   &lt;complexContent>
028     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
029     *       &lt;sequence>
030     *         &lt;element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}AppliesTo"/>
031     *         &lt;choice maxOccurs="unbounded">
032     *           &lt;element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy"/>
033     *           &lt;element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}PolicyReference"/>
034     *         &lt;/choice>
035     *         &lt;any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
036     *       &lt;/sequence>
037     *       &lt;anyAttribute processContents='lax'/>
038     *     &lt;/restriction>
039     *   &lt;/complexContent>
040     * &lt;/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    }