001    
002    package org.oasis_open.docs.wsn.t_1;
003    
004    import java.util.ArrayList;
005    import java.util.List;
006    import javax.xml.bind.annotation.XmlAccessType;
007    import javax.xml.bind.annotation.XmlAccessorType;
008    import javax.xml.bind.annotation.XmlAnyElement;
009    import javax.xml.bind.annotation.XmlAttribute;
010    import javax.xml.bind.annotation.XmlElement;
011    import javax.xml.bind.annotation.XmlType;
012    import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
013    import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
014    import javax.xml.namespace.QName;
015    
016    
017    /**
018     * <p>Java class for TopicType complex type.
019     * 
020     * <p>The following schema fragment specifies the expected content contained within this class.
021     * 
022     * <pre>
023     * &lt;complexType name="TopicType">
024     *   &lt;complexContent>
025     *     &lt;extension base="{http://docs.oasis-open.org/wsn/t-1}ExtensibleDocumented">
026     *       &lt;sequence>
027     *         &lt;element name="MessagePattern" type="{http://docs.oasis-open.org/wsn/t-1}QueryExpressionType" minOccurs="0"/>
028     *         &lt;element name="Topic" type="{http://docs.oasis-open.org/wsn/t-1}TopicType" maxOccurs="unbounded" minOccurs="0"/>
029     *         &lt;any/>
030     *       &lt;/sequence>
031     *       &lt;attribute name="final" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
032     *       &lt;attribute name="messageTypes">
033     *         &lt;simpleType>
034     *           &lt;list itemType="{http://www.w3.org/2001/XMLSchema}QName" />
035     *         &lt;/simpleType>
036     *       &lt;/attribute>
037     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}NCName" />
038     *     &lt;/extension>
039     *   &lt;/complexContent>
040     * &lt;/complexType>
041     * </pre>
042     * 
043     * 
044     */
045    @XmlAccessorType(XmlAccessType.FIELD)
046    @XmlType(name = "TopicType", propOrder = {
047        "messagePattern",
048        "topic",
049        "any"
050    })
051    public class TopicType
052        extends ExtensibleDocumented
053    {
054    
055        @XmlElement(name = "MessagePattern")
056        protected QueryExpressionType messagePattern;
057        @XmlElement(name = "Topic")
058        protected List<TopicType> topic;
059        @XmlAnyElement(lax = true)
060        protected List<Object> any;
061        @XmlAttribute(name = "final")
062        protected Boolean _final;
063        @XmlAttribute
064        protected List<QName> messageTypes;
065        @XmlAttribute(required = true)
066        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
067        protected String name;
068    
069        /**
070         * Gets the value of the messagePattern property.
071         * 
072         * @return
073         *     possible object is
074         *     {@link QueryExpressionType }
075         *     
076         */
077        public QueryExpressionType getMessagePattern() {
078            return messagePattern;
079        }
080    
081        /**
082         * Sets the value of the messagePattern property.
083         * 
084         * @param value
085         *     allowed object is
086         *     {@link QueryExpressionType }
087         *     
088         */
089        public void setMessagePattern(QueryExpressionType value) {
090            this.messagePattern = value;
091        }
092    
093        /**
094         * Gets the value of the topic property.
095         * 
096         * <p>
097         * This accessor method returns a reference to the live list,
098         * not a snapshot. Therefore any modification you make to the
099         * returned list will be present inside the JAXB object.
100         * This is why there is not a <CODE>set</CODE> method for the topic property.
101         * 
102         * <p>
103         * For example, to add a new item, do as follows:
104         * <pre>
105         *    getTopic().add(newItem);
106         * </pre>
107         * 
108         * 
109         * <p>
110         * Objects of the following type(s) are allowed in the list
111         * {@link TopicType }
112         * 
113         * 
114         */
115        public List<TopicType> getTopic() {
116            if (topic == null) {
117                topic = new ArrayList<TopicType>();
118            }
119            return this.topic;
120        }
121    
122        /**
123         * Gets the value of the any property.
124         * 
125         * <p>
126         * This accessor method returns a reference to the live list,
127         * not a snapshot. Therefore any modification you make to the
128         * returned list will be present inside the JAXB object.
129         * This is why there is not a <CODE>set</CODE> method for the any property.
130         * 
131         * <p>
132         * For example, to add a new item, do as follows:
133         * <pre>
134         *    getAny().add(newItem);
135         * </pre>
136         * 
137         * 
138         * <p>
139         * Objects of the following type(s) are allowed in the list
140         * {@link Object }
141         * 
142         * 
143         */
144        public List<Object> getAny() {
145            if (any == null) {
146                any = new ArrayList<Object>();
147            }
148            return this.any;
149        }
150    
151        /**
152         * Gets the value of the final property.
153         * 
154         * @return
155         *     possible object is
156         *     {@link Boolean }
157         *     
158         */
159        public boolean isFinal() {
160            if (_final == null) {
161                return false;
162            } else {
163                return _final;
164            }
165        }
166    
167        /**
168         * Sets the value of the final property.
169         * 
170         * @param value
171         *     allowed object is
172         *     {@link Boolean }
173         *     
174         */
175        public void setFinal(Boolean value) {
176            this._final = value;
177        }
178    
179        /**
180         * Gets the value of the messageTypes property.
181         * 
182         * <p>
183         * This accessor method returns a reference to the live list,
184         * not a snapshot. Therefore any modification you make to the
185         * returned list will be present inside the JAXB object.
186         * This is why there is not a <CODE>set</CODE> method for the messageTypes property.
187         * 
188         * <p>
189         * For example, to add a new item, do as follows:
190         * <pre>
191         *    getMessageTypes().add(newItem);
192         * </pre>
193         * 
194         * 
195         * <p>
196         * Objects of the following type(s) are allowed in the list
197         * {@link QName }
198         * 
199         * 
200         */
201        public List<QName> getMessageTypes() {
202            if (messageTypes == null) {
203                messageTypes = new ArrayList<QName>();
204            }
205            return this.messageTypes;
206        }
207    
208        /**
209         * Gets the value of the name property.
210         * 
211         * @return
212         *     possible object is
213         *     {@link String }
214         *     
215         */
216        public String getName() {
217            return name;
218        }
219    
220        /**
221         * Sets the value of the name property.
222         * 
223         * @param value
224         *     allowed object is
225         *     {@link String }
226         *     
227         */
228        public void setName(String value) {
229            this.name = value;
230        }
231    
232    }