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.XmlRootElement;
013    import javax.xml.bind.annotation.XmlType;
014    import javax.xml.namespace.QName;
015    import org.w3c.dom.Element;
016    
017    
018    /**
019     * <p>Java class for anonymous complex type.
020     * 
021     * <p>The following schema fragment specifies the expected content contained within this class.
022     * 
023     * <pre>
024     * &lt;complexType>
025     *   &lt;complexContent>
026     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
027     *       &lt;sequence>
028     *         &lt;any processContents='lax' maxOccurs="unbounded"/>
029     *       &lt;/sequence>
030     *       &lt;anyAttribute processContents='lax'/>
031     *     &lt;/restriction>
032     *   &lt;/complexContent>
033     * &lt;/complexType>
034     * </pre>
035     * 
036     * 
037     */
038    @XmlAccessorType(XmlAccessType.FIELD)
039    @XmlType(name = "", propOrder = {
040        "any"
041    })
042    @XmlRootElement(name = "AppliesTo")
043    public class AppliesTo {
044    
045        @XmlAnyElement(lax = true)
046        protected List<Object> any;
047        @XmlAnyAttribute
048        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
049    
050        /**
051         * Gets the value of the any property.
052         * 
053         * <p>
054         * This accessor method returns a reference to the live list,
055         * not a snapshot. Therefore any modification you make to the
056         * returned list will be present inside the JAXB object.
057         * This is why there is not a <CODE>set</CODE> method for the any property.
058         * 
059         * <p>
060         * For example, to add a new item, do as follows:
061         * <pre>
062         *    getAny().add(newItem);
063         * </pre>
064         * 
065         * 
066         * <p>
067         * Objects of the following type(s) are allowed in the list
068         * {@link Object }
069         * {@link Element }
070         * 
071         * 
072         */
073        public List<Object> getAny() {
074            if (any == null) {
075                any = new ArrayList<Object>();
076            }
077            return this.any;
078        }
079    
080        /**
081         * Gets a map that contains attributes that aren't bound to any typed property on this class.
082         * 
083         * <p>
084         * the map is keyed by the name of the attribute and 
085         * the value is the string value of the attribute.
086         * 
087         * the map returned by this method is live, and you can add new attribute
088         * by updating the map directly. Because of this design, there's no setter.
089         * 
090         * 
091         * @return
092         *     always non-null
093         */
094        public Map<QName, String> getOtherAttributes() {
095            return otherAttributes;
096        }
097    
098    }