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