001    //
002    // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 
003    // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
004    // Any modifications to this file will be lost upon recompilation of the source schema. 
005    // Generated on: 2013.02.07 at 02:32:38 PM CET 
006    //
007    
008    
009    package jabber.server;
010    
011    import java.util.ArrayList;
012    import java.util.List;
013    import javax.xml.bind.JAXBElement;
014    import javax.xml.bind.annotation.XmlAccessType;
015    import javax.xml.bind.annotation.XmlAccessorType;
016    import javax.xml.bind.annotation.XmlAnyElement;
017    import javax.xml.bind.annotation.XmlAttribute;
018    import javax.xml.bind.annotation.XmlElementRef;
019    import javax.xml.bind.annotation.XmlElementRefs;
020    import javax.xml.bind.annotation.XmlRootElement;
021    import javax.xml.bind.annotation.XmlSchemaType;
022    import javax.xml.bind.annotation.XmlType;
023    import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
024    import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
025    
026    
027    /**
028     * <p>Java class for anonymous complex type.
029     * 
030     * <p>The following schema fragment specifies the expected content contained within this class.
031     * 
032     * <pre>
033     * &lt;complexType>
034     *   &lt;complexContent>
035     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
036     *       &lt;sequence>
037     *         &lt;choice maxOccurs="unbounded" minOccurs="0">
038     *           &lt;element ref="{jabber:server}subject"/>
039     *           &lt;element ref="{jabber:server}body"/>
040     *           &lt;element ref="{jabber:server}thread"/>
041     *         &lt;/choice>
042     *         &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
043     *         &lt;element ref="{jabber:server}error" minOccurs="0"/>
044     *       &lt;/sequence>
045     *       &lt;attribute name="from" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
046     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}NMTOKEN" />
047     *       &lt;attribute name="to" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
048     *       &lt;attribute name="type" default="normal">
049     *         &lt;simpleType>
050     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}NCName">
051     *             &lt;enumeration value="chat"/>
052     *             &lt;enumeration value="error"/>
053     *             &lt;enumeration value="groupchat"/>
054     *             &lt;enumeration value="headline"/>
055     *             &lt;enumeration value="normal"/>
056     *           &lt;/restriction>
057     *         &lt;/simpleType>
058     *       &lt;/attribute>
059     *       &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/>
060     *     &lt;/restriction>
061     *   &lt;/complexContent>
062     * &lt;/complexType>
063     * </pre>
064     * 
065     * 
066     */
067    @XmlAccessorType(XmlAccessType.FIELD)
068    @XmlType(name = "", propOrder = {
069        "subjectOrBodyOrThread",
070        "any",
071        "error"
072    })
073    @XmlRootElement(name = "message")
074    public class Message {
075    
076        @XmlElementRefs({
077            @XmlElementRef(name = "body", namespace = "jabber:server", type = Body.class),
078            @XmlElementRef(name = "subject", namespace = "jabber:server", type = Subject.class),
079            @XmlElementRef(name = "thread", namespace = "jabber:server", type = JAXBElement.class)
080        })
081        protected List<Object> subjectOrBodyOrThread;
082        @XmlAnyElement(lax = true)
083        protected List<Object> any;
084        protected Error error;
085        @XmlAttribute(required = true)
086        protected String from;
087        @XmlAttribute
088        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
089        @XmlSchemaType(name = "NMTOKEN")
090        protected String id;
091        @XmlAttribute(required = true)
092        protected String to;
093        @XmlAttribute
094        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
095        protected String type;
096        @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
097        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
098        @XmlSchemaType(name = "language")
099        protected String lang;
100    
101        /**
102         * Gets the value of the subjectOrBodyOrThread property.
103         * 
104         * <p>
105         * This accessor method returns a reference to the live list,
106         * not a snapshot. Therefore any modification you make to the
107         * returned list will be present inside the JAXB object.
108         * This is why there is not a <CODE>set</CODE> method for the subjectOrBodyOrThread property.
109         * 
110         * <p>
111         * For example, to add a new item, do as follows:
112         * <pre>
113         *    getSubjectOrBodyOrThread().add(newItem);
114         * </pre>
115         * 
116         * 
117         * <p>
118         * Objects of the following type(s) are allowed in the list
119         * {@link Body }
120         * {@link JAXBElement }{@code <}{@link String }{@code >}
121         * {@link Subject }
122         * 
123         * 
124         */
125        public List<Object> getSubjectOrBodyOrThread() {
126            if (subjectOrBodyOrThread == null) {
127                subjectOrBodyOrThread = new ArrayList<Object>();
128            }
129            return this.subjectOrBodyOrThread;
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         * 
152         * 
153         */
154        public List<Object> getAny() {
155            if (any == null) {
156                any = new ArrayList<Object>();
157            }
158            return this.any;
159        }
160    
161        /**
162         * Gets the value of the error property.
163         * 
164         * @return
165         *     possible object is
166         *     {@link Error }
167         *     
168         */
169        public Error getError() {
170            return error;
171        }
172    
173        /**
174         * Sets the value of the error property.
175         * 
176         * @param value
177         *     allowed object is
178         *     {@link Error }
179         *     
180         */
181        public void setError(Error value) {
182            this.error = value;
183        }
184    
185        /**
186         * Gets the value of the from property.
187         * 
188         * @return
189         *     possible object is
190         *     {@link String }
191         *     
192         */
193        public String getFrom() {
194            return from;
195        }
196    
197        /**
198         * Sets the value of the from property.
199         * 
200         * @param value
201         *     allowed object is
202         *     {@link String }
203         *     
204         */
205        public void setFrom(String value) {
206            this.from = value;
207        }
208    
209        /**
210         * Gets the value of the id property.
211         * 
212         * @return
213         *     possible object is
214         *     {@link String }
215         *     
216         */
217        public String getId() {
218            return id;
219        }
220    
221        /**
222         * Sets the value of the id property.
223         * 
224         * @param value
225         *     allowed object is
226         *     {@link String }
227         *     
228         */
229        public void setId(String value) {
230            this.id = value;
231        }
232    
233        /**
234         * Gets the value of the to property.
235         * 
236         * @return
237         *     possible object is
238         *     {@link String }
239         *     
240         */
241        public String getTo() {
242            return to;
243        }
244    
245        /**
246         * Sets the value of the to property.
247         * 
248         * @param value
249         *     allowed object is
250         *     {@link String }
251         *     
252         */
253        public void setTo(String value) {
254            this.to = value;
255        }
256    
257        /**
258         * Gets the value of the type property.
259         * 
260         * @return
261         *     possible object is
262         *     {@link String }
263         *     
264         */
265        public String getType() {
266            if (type == null) {
267                return "normal";
268            } else {
269                return type;
270            }
271        }
272    
273        /**
274         * Sets the value of the type property.
275         * 
276         * @param value
277         *     allowed object is
278         *     {@link String }
279         *     
280         */
281        public void setType(String value) {
282            this.type = value;
283        }
284    
285        /**
286         * Gets the value of the lang property.
287         * 
288         * @return
289         *     possible object is
290         *     {@link String }
291         *     
292         */
293        public String getLang() {
294            return lang;
295        }
296    
297        /**
298         * Sets the value of the lang property.
299         * 
300         * @param value
301         *     allowed object is
302         *     {@link String }
303         *     
304         */
305        public void setLang(String value) {
306            this.lang = value;
307        }
308    
309    }