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