001    
002    package org.w3._2005._08.addressing;
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.XmlType;
014    import javax.xml.namespace.QName;
015    import org.w3c.dom.Element;
016    
017    
018    /**
019     * <p>Java class for EndpointReferenceType complex type.
020     * 
021     * <p>The following schema fragment specifies the expected content contained within this class.
022     * 
023     * <pre>
024     * &lt;complexType name="EndpointReferenceType">
025     *   &lt;complexContent>
026     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
027     *       &lt;sequence>
028     *         &lt;element name="Address" type="{http://www.w3.org/2005/08/addressing}AttributedURIType"/>
029     *         &lt;element name="ReferenceParameters" type="{http://www.w3.org/2005/08/addressing}ReferenceParametersType" minOccurs="0"/>
030     *         &lt;element ref="{http://www.w3.org/2005/08/addressing}Metadata" minOccurs="0"/>
031     *         &lt;any/>
032     *       &lt;/sequence>
033     *     &lt;/restriction>
034     *   &lt;/complexContent>
035     * &lt;/complexType>
036     * </pre>
037     * 
038     * 
039     */
040    @XmlAccessorType(XmlAccessType.FIELD)
041    @XmlType(name = "EndpointReferenceType", propOrder = {
042        "address",
043        "referenceParameters",
044        "metadata",
045        "any"
046    })
047    public class EndpointReferenceType {
048    
049        @XmlElement(name = "Address", required = true)
050        protected AttributedURIType address;
051        @XmlElement(name = "ReferenceParameters")
052        protected ReferenceParametersType referenceParameters;
053        @XmlElement(name = "Metadata")
054        protected MetadataType metadata;
055        @XmlAnyElement(lax = true)
056        protected List<Object> any;
057        @XmlAnyAttribute
058        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
059    
060        /**
061         * Gets the value of the address property.
062         * 
063         * @return
064         *     possible object is
065         *     {@link AttributedURIType }
066         *     
067         */
068        public AttributedURIType getAddress() {
069            return address;
070        }
071    
072        /**
073         * Sets the value of the address property.
074         * 
075         * @param value
076         *     allowed object is
077         *     {@link AttributedURIType }
078         *     
079         */
080        public void setAddress(AttributedURIType value) {
081            this.address = value;
082        }
083    
084        /**
085         * Gets the value of the referenceParameters property.
086         * 
087         * @return
088         *     possible object is
089         *     {@link ReferenceParametersType }
090         *     
091         */
092        public ReferenceParametersType getReferenceParameters() {
093            return referenceParameters;
094        }
095    
096        /**
097         * Sets the value of the referenceParameters property.
098         * 
099         * @param value
100         *     allowed object is
101         *     {@link ReferenceParametersType }
102         *     
103         */
104        public void setReferenceParameters(ReferenceParametersType value) {
105            this.referenceParameters = value;
106        }
107    
108        /**
109         * Gets the value of the metadata property.
110         * 
111         * @return
112         *     possible object is
113         *     {@link MetadataType }
114         *     
115         */
116        public MetadataType getMetadata() {
117            return metadata;
118        }
119    
120        /**
121         * Sets the value of the metadata property.
122         * 
123         * @param value
124         *     allowed object is
125         *     {@link MetadataType }
126         *     
127         */
128        public void setMetadata(MetadataType value) {
129            this.metadata = value;
130        }
131    
132        /**
133         * Gets the value of the any property.
134         * 
135         * <p>
136         * This accessor method returns a reference to the live list,
137         * not a snapshot. Therefore any modification you make to the
138         * returned list will be present inside the JAXB object.
139         * This is why there is not a <CODE>set</CODE> method for the any property.
140         * 
141         * <p>
142         * For example, to add a new item, do as follows:
143         * <pre>
144         *    getAny().add(newItem);
145         * </pre>
146         * 
147         * 
148         * <p>
149         * Objects of the following type(s) are allowed in the list
150         * {@link Object }
151         * {@link Element }
152         * 
153         * 
154         */
155        public List<Object> getAny() {
156            if (any == null) {
157                any = new ArrayList<Object>();
158            }
159            return this.any;
160        }
161    
162        /**
163         * Gets a map that contains attributes that aren't bound to any typed property on this class.
164         * 
165         * <p>
166         * the map is keyed by the name of the attribute and 
167         * the value is the string value of the attribute.
168         * 
169         * the map returned by this method is live, and you can add new attribute
170         * by updating the map directly. Because of this design, there's no setter.
171         * 
172         * 
173         * @return
174         *     always non-null
175         */
176        public Map<QName, String> getOtherAttributes() {
177            return otherAttributes;
178        }
179    
180    }