001    //
002    // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 
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: 2011.11.18 at 02:23:57 PM EST 
006    //
007    
008    
009    package org.jabber.etherx.streams;
010    
011    import java.math.BigDecimal;
012    import java.util.ArrayList;
013    import java.util.List;
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.XmlElement;
019    import javax.xml.bind.annotation.XmlElements;
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    import jabber.server.dialback.Result;
026    import jabber.server.dialback.Verify;
027    
028    
029    /**
030     * <p>Java class for anonymous complex type.
031     * 
032     * <p>The following schema fragment specifies the expected content contained within this class.
033     * 
034     * <pre>
035     * &lt;complexType>
036     *   &lt;complexContent>
037     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
038     *       &lt;sequence>
039     *         &lt;element ref="{http://etherx.jabber.org/streams}features" minOccurs="0"/>
040     *         &lt;any namespace='urn:ietf:params:xml:ns:xmpp-tls' maxOccurs="unbounded" minOccurs="0"/>
041     *         &lt;any namespace='urn:ietf:params:xml:ns:xmpp-sasl' maxOccurs="unbounded" minOccurs="0"/>
042     *         &lt;choice maxOccurs="unbounded" minOccurs="0">
043     *           &lt;element ref="{jabber:client}message"/>
044     *           &lt;element ref="{jabber:client}presence"/>
045     *           &lt;element ref="{jabber:client}iq"/>
046     *           &lt;element ref="{jabber:server}message"/>
047     *           &lt;element ref="{jabber:server}presence"/>
048     *           &lt;element ref="{jabber:server}iq"/>
049     *           &lt;element ref="{jabber:server:dialback}result"/>
050     *           &lt;element ref="{jabber:server:dialback}verify"/>
051     *         &lt;/choice>
052     *         &lt;element ref="{http://etherx.jabber.org/streams}error" minOccurs="0"/>
053     *       &lt;/sequence>
054     *       &lt;attribute name="from" type="{http://www.w3.org/2001/XMLSchema}string" />
055     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}NMTOKEN" />
056     *       &lt;attribute name="to" type="{http://www.w3.org/2001/XMLSchema}string" />
057     *       &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}decimal" />
058     *       &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/>
059     *     &lt;/restriction>
060     *   &lt;/complexContent>
061     * &lt;/complexType>
062     * </pre>
063     * 
064     * 
065     */
066    @XmlAccessorType(XmlAccessType.FIELD)
067    @XmlType(name = "", propOrder = {
068        "features",
069        "tls",
070        "sasl",
071        "messageOrPresenceOrIq",
072        "error"
073    })
074    @XmlRootElement(name = "stream")
075    public class Stream {
076    
077        protected Features features;
078        @XmlAnyElement(lax = true)
079        protected List<Object> tls;
080        @XmlAnyElement(lax = true)
081        protected List<Object> sasl;
082        @XmlElements({
083            @XmlElement(name = "message", namespace = "jabber:client", type = jabber.client.Message.class),
084            @XmlElement(name = "presence", namespace = "jabber:client", type = jabber.client.Presence.class),
085            @XmlElement(name = "iq", namespace = "jabber:client", type = jabber.client.Iq.class),
086            @XmlElement(name = "result", namespace = "jabber:server:dialback", type = Result.class),
087            @XmlElement(name = "iq", namespace = "jabber:server", type = jabber.server.Iq.class),
088            @XmlElement(name = "presence", namespace = "jabber:server", type = jabber.server.Presence.class),
089            @XmlElement(name = "message", namespace = "jabber:server", type = jabber.server.Message.class),
090            @XmlElement(name = "verify", namespace = "jabber:server:dialback", type = Verify.class)
091        })
092        protected List<Object> messageOrPresenceOrIq;
093        protected Error error;
094        @XmlAttribute
095        protected String from;
096        @XmlAttribute
097        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
098        @XmlSchemaType(name = "NMTOKEN")
099        protected String id;
100        @XmlAttribute
101        protected String to;
102        @XmlAttribute
103        protected BigDecimal version;
104        @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
105        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
106        @XmlSchemaType(name = "language")
107        protected String lang;
108    
109        /**
110         * Gets the value of the features property.
111         * 
112         * @return
113         *     possible object is
114         *     {@link Features }
115         *     
116         */
117        public Features getFeatures() {
118            return features;
119        }
120    
121        /**
122         * Sets the value of the features property.
123         * 
124         * @param value
125         *     allowed object is
126         *     {@link Features }
127         *     
128         */
129        public void setFeatures(Features value) {
130            this.features = value;
131        }
132    
133        /**
134         * Gets the value of the tls property.
135         * 
136         * <p>
137         * This accessor method returns a reference to the live list,
138         * not a snapshot. Therefore any modification you make to the
139         * returned list will be present inside the JAXB object.
140         * This is why there is not a <CODE>set</CODE> method for the tls property.
141         * 
142         * <p>
143         * For example, to add a new item, do as follows:
144         * <pre>
145         *    getTls().add(newItem);
146         * </pre>
147         * 
148         * 
149         * <p>
150         * Objects of the following type(s) are allowed in the list
151         * {@link Object }
152         * 
153         * 
154         */
155        public List<Object> getTls() {
156            if (tls == null) {
157                tls = new ArrayList<Object>();
158            }
159            return this.tls;
160        }
161    
162        /**
163         * Gets the value of the sasl property.
164         * 
165         * <p>
166         * This accessor method returns a reference to the live list,
167         * not a snapshot. Therefore any modification you make to the
168         * returned list will be present inside the JAXB object.
169         * This is why there is not a <CODE>set</CODE> method for the sasl property.
170         * 
171         * <p>
172         * For example, to add a new item, do as follows:
173         * <pre>
174         *    getSasl().add(newItem);
175         * </pre>
176         * 
177         * 
178         * <p>
179         * Objects of the following type(s) are allowed in the list
180         * {@link Object }
181         * 
182         * 
183         */
184        public List<Object> getSasl() {
185            if (sasl == null) {
186                sasl = new ArrayList<Object>();
187            }
188            return this.sasl;
189        }
190    
191        /**
192         * Gets the value of the messageOrPresenceOrIq property.
193         * 
194         * <p>
195         * This accessor method returns a reference to the live list,
196         * not a snapshot. Therefore any modification you make to the
197         * returned list will be present inside the JAXB object.
198         * This is why there is not a <CODE>set</CODE> method for the messageOrPresenceOrIq property.
199         * 
200         * <p>
201         * For example, to add a new item, do as follows:
202         * <pre>
203         *    getMessageOrPresenceOrIq().add(newItem);
204         * </pre>
205         * 
206         * 
207         * <p>
208         * Objects of the following type(s) are allowed in the list
209         * {@link jabber.client.Message }
210         * {@link jabber.client.Presence }
211         * {@link jabber.client.Iq }
212         * {@link Result }
213         * {@link jabber.server.Iq }
214         * {@link jabber.server.Presence }
215         * {@link jabber.server.Message }
216         * {@link Verify }
217         * 
218         * 
219         */
220        public List<Object> getMessageOrPresenceOrIq() {
221            if (messageOrPresenceOrIq == null) {
222                messageOrPresenceOrIq = new ArrayList<Object>();
223            }
224            return this.messageOrPresenceOrIq;
225        }
226    
227        /**
228         * Gets the value of the error property.
229         * 
230         * @return
231         *     possible object is
232         *     {@link Error }
233         *     
234         */
235        public Error getError() {
236            return error;
237        }
238    
239        /**
240         * Sets the value of the error property.
241         * 
242         * @param value
243         *     allowed object is
244         *     {@link Error }
245         *     
246         */
247        public void setError(Error value) {
248            this.error = value;
249        }
250    
251        /**
252         * Gets the value of the from property.
253         * 
254         * @return
255         *     possible object is
256         *     {@link String }
257         *     
258         */
259        public String getFrom() {
260            return from;
261        }
262    
263        /**
264         * Sets the value of the from property.
265         * 
266         * @param value
267         *     allowed object is
268         *     {@link String }
269         *     
270         */
271        public void setFrom(String value) {
272            this.from = value;
273        }
274    
275        /**
276         * Gets the value of the id property.
277         * 
278         * @return
279         *     possible object is
280         *     {@link String }
281         *     
282         */
283        public String getId() {
284            return id;
285        }
286    
287        /**
288         * Sets the value of the id property.
289         * 
290         * @param value
291         *     allowed object is
292         *     {@link String }
293         *     
294         */
295        public void setId(String value) {
296            this.id = value;
297        }
298    
299        /**
300         * Gets the value of the to property.
301         * 
302         * @return
303         *     possible object is
304         *     {@link String }
305         *     
306         */
307        public String getTo() {
308            return to;
309        }
310    
311        /**
312         * Sets the value of the to property.
313         * 
314         * @param value
315         *     allowed object is
316         *     {@link String }
317         *     
318         */
319        public void setTo(String value) {
320            this.to = value;
321        }
322    
323        /**
324         * Gets the value of the version property.
325         * 
326         * @return
327         *     possible object is
328         *     {@link BigDecimal }
329         *     
330         */
331        public BigDecimal getVersion() {
332            return version;
333        }
334    
335        /**
336         * Sets the value of the version property.
337         * 
338         * @param value
339         *     allowed object is
340         *     {@link BigDecimal }
341         *     
342         */
343        public void setVersion(BigDecimal value) {
344            this.version = value;
345        }
346    
347        /**
348         * Gets the value of the lang property.
349         * 
350         * @return
351         *     possible object is
352         *     {@link String }
353         *     
354         */
355        public String getLang() {
356            return lang;
357        }
358    
359        /**
360         * Sets the value of the lang property.
361         * 
362         * @param value
363         *     allowed object is
364         *     {@link String }
365         *     
366         */
367        public void setLang(String value) {
368            this.lang = value;
369        }
370    
371    }