001//
002// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.10-b140310.1920 
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: 2020.08.16 at 01:13:55 AM EDT 
006//
007
008
009package org.apache.activemq.schema.core;
010
011import java.util.ArrayList;
012import java.util.HashMap;
013import java.util.List;
014import java.util.Map;
015import javax.xml.bind.JAXBElement;
016import javax.xml.bind.annotation.XmlAccessType;
017import javax.xml.bind.annotation.XmlAccessorType;
018import javax.xml.bind.annotation.XmlAnyAttribute;
019import javax.xml.bind.annotation.XmlAnyElement;
020import javax.xml.bind.annotation.XmlAttribute;
021import javax.xml.bind.annotation.XmlElementRef;
022import javax.xml.bind.annotation.XmlID;
023import javax.xml.bind.annotation.XmlRootElement;
024import javax.xml.bind.annotation.XmlSchemaType;
025import javax.xml.bind.annotation.XmlType;
026import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
027import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
028import javax.xml.namespace.QName;
029import org.jvnet.jaxb2_commons.lang.Equals;
030import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
031import org.jvnet.jaxb2_commons.lang.HashCode;
032import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
033import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
034import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
035import org.jvnet.jaxb2_commons.lang.ToString;
036import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
037import org.jvnet.jaxb2_commons.locator.ObjectLocator;
038import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
039
040
041/**
042 * <p>Java class for anonymous complex type.
043 * 
044 * <p>The following schema fragment specifies the expected content contained within this class.
045 * 
046 * <pre>
047 * &lt;complexType>
048 *   &lt;complexContent>
049 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
050 *       &lt;choice maxOccurs="unbounded" minOccurs="0">
051 *         &lt;choice>
052 *           &lt;element name="destination" minOccurs="0">
053 *             &lt;complexType>
054 *               &lt;complexContent>
055 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
056 *                   &lt;choice minOccurs="0">
057 *                     &lt;element ref="{http://activemq.apache.org/schema/core}queue"/>
058 *                     &lt;element ref="{http://activemq.apache.org/schema/core}tempQueue"/>
059 *                     &lt;element ref="{http://activemq.apache.org/schema/core}tempTopic"/>
060 *                     &lt;element ref="{http://activemq.apache.org/schema/core}topic"/>
061 *                     &lt;any namespace='##other'/>
062 *                   &lt;/choice>
063 *                 &lt;/restriction>
064 *               &lt;/complexContent>
065 *             &lt;/complexType>
066 *           &lt;/element>
067 *           &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
068 *         &lt;/choice>
069 *       &lt;/choice>
070 *       &lt;attribute name="destination" type="{http://www.w3.org/2001/XMLSchema}string" />
071 *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
072 *       &lt;anyAttribute processContents='lax' namespace='##other'/>
073 *     &lt;/restriction>
074 *   &lt;/complexContent>
075 * &lt;/complexType>
076 * </pre>
077 * 
078 * 
079 */
080@XmlAccessorType(XmlAccessType.FIELD)
081@XmlType(name = "", propOrder = {
082    "destinationOrAny"
083})
084@XmlRootElement(name = "simpleDispatchSelector")
085public class DtoSimpleDispatchSelector
086    implements Equals, HashCode, ToString
087{
088
089    @XmlElementRef(name = "destination", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class, required = false)
090    @XmlAnyElement(lax = true)
091    protected List<Object> destinationOrAny;
092    @XmlAttribute(name = "destination")
093    protected String destination;
094    @XmlAttribute(name = "id")
095    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
096    @XmlID
097    @XmlSchemaType(name = "ID")
098    protected String id;
099    @XmlAnyAttribute
100    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
101
102    /**
103     * Gets the value of the destinationOrAny property.
104     * 
105     * <p>
106     * This accessor method returns a reference to the live list,
107     * not a snapshot. Therefore any modification you make to the
108     * returned list will be present inside the JAXB object.
109     * This is why there is not a <CODE>set</CODE> method for the destinationOrAny property.
110     * 
111     * <p>
112     * For example, to add a new item, do as follows:
113     * <pre>
114     *    getDestinationOrAny().add(newItem);
115     * </pre>
116     * 
117     * 
118     * <p>
119     * Objects of the following type(s) are allowed in the list
120     * {@link Object }
121     * {@link JAXBElement }{@code <}{@link DtoSimpleDispatchSelector.Destination }{@code >}
122     * 
123     * 
124     */
125    public List<Object> getDestinationOrAny() {
126        if (destinationOrAny == null) {
127            destinationOrAny = new ArrayList<Object>();
128        }
129        return this.destinationOrAny;
130    }
131
132    /**
133     * Gets the value of the destination property.
134     * 
135     * @return
136     *     possible object is
137     *     {@link String }
138     *     
139     */
140    public String getDestination() {
141        return destination;
142    }
143
144    /**
145     * Sets the value of the destination property.
146     * 
147     * @param value
148     *     allowed object is
149     *     {@link String }
150     *     
151     */
152    public void setDestination(String value) {
153        this.destination = value;
154    }
155
156    /**
157     * Gets the value of the id property.
158     * 
159     * @return
160     *     possible object is
161     *     {@link String }
162     *     
163     */
164    public String getId() {
165        return id;
166    }
167
168    /**
169     * Sets the value of the id property.
170     * 
171     * @param value
172     *     allowed object is
173     *     {@link String }
174     *     
175     */
176    public void setId(String value) {
177        this.id = value;
178    }
179
180    /**
181     * Gets a map that contains attributes that aren't bound to any typed property on this class.
182     * 
183     * <p>
184     * the map is keyed by the name of the attribute and 
185     * the value is the string value of the attribute.
186     * 
187     * the map returned by this method is live, and you can add new attribute
188     * by updating the map directly. Because of this design, there's no setter.
189     * 
190     * 
191     * @return
192     *     always non-null
193     */
194    public Map<QName, String> getOtherAttributes() {
195        return otherAttributes;
196    }
197
198    public String toString() {
199        final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
200        final StringBuilder buffer = new StringBuilder();
201        append(null, buffer, strategy);
202        return buffer.toString();
203    }
204
205    public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
206        strategy.appendStart(locator, this, buffer);
207        appendFields(locator, buffer, strategy);
208        strategy.appendEnd(locator, this, buffer);
209        return buffer;
210    }
211
212    public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
213        {
214            List<Object> theDestinationOrAny;
215            theDestinationOrAny = (((this.destinationOrAny!= null)&&(!this.destinationOrAny.isEmpty()))?this.getDestinationOrAny():null);
216            strategy.appendField(locator, this, "destinationOrAny", buffer, theDestinationOrAny);
217        }
218        {
219            String theDestination;
220            theDestination = this.getDestination();
221            strategy.appendField(locator, this, "destination", buffer, theDestination);
222        }
223        {
224            String theId;
225            theId = this.getId();
226            strategy.appendField(locator, this, "id", buffer, theId);
227        }
228        return buffer;
229    }
230
231    public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
232        int currentHashCode = 1;
233        {
234            List<Object> theDestinationOrAny;
235            theDestinationOrAny = (((this.destinationOrAny!= null)&&(!this.destinationOrAny.isEmpty()))?this.getDestinationOrAny():null);
236            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "destinationOrAny", theDestinationOrAny), currentHashCode, theDestinationOrAny);
237        }
238        {
239            String theDestination;
240            theDestination = this.getDestination();
241            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "destination", theDestination), currentHashCode, theDestination);
242        }
243        {
244            String theId;
245            theId = this.getId();
246            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "id", theId), currentHashCode, theId);
247        }
248        return currentHashCode;
249    }
250
251    public int hashCode() {
252        final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
253        return this.hashCode(null, strategy);
254    }
255
256    public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
257        if (!(object instanceof DtoSimpleDispatchSelector)) {
258            return false;
259        }
260        if (this == object) {
261            return true;
262        }
263        final DtoSimpleDispatchSelector that = ((DtoSimpleDispatchSelector) object);
264        {
265            List<Object> lhsDestinationOrAny;
266            lhsDestinationOrAny = (((this.destinationOrAny!= null)&&(!this.destinationOrAny.isEmpty()))?this.getDestinationOrAny():null);
267            List<Object> rhsDestinationOrAny;
268            rhsDestinationOrAny = (((that.destinationOrAny!= null)&&(!that.destinationOrAny.isEmpty()))?that.getDestinationOrAny():null);
269            if (!strategy.equals(LocatorUtils.property(thisLocator, "destinationOrAny", lhsDestinationOrAny), LocatorUtils.property(thatLocator, "destinationOrAny", rhsDestinationOrAny), lhsDestinationOrAny, rhsDestinationOrAny)) {
270                return false;
271            }
272        }
273        {
274            String lhsDestination;
275            lhsDestination = this.getDestination();
276            String rhsDestination;
277            rhsDestination = that.getDestination();
278            if (!strategy.equals(LocatorUtils.property(thisLocator, "destination", lhsDestination), LocatorUtils.property(thatLocator, "destination", rhsDestination), lhsDestination, rhsDestination)) {
279                return false;
280            }
281        }
282        {
283            String lhsId;
284            lhsId = this.getId();
285            String rhsId;
286            rhsId = that.getId();
287            if (!strategy.equals(LocatorUtils.property(thisLocator, "id", lhsId), LocatorUtils.property(thatLocator, "id", rhsId), lhsId, rhsId)) {
288                return false;
289            }
290        }
291        return true;
292    }
293
294    public boolean equals(Object object) {
295        final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
296        return equals(null, null, object, strategy);
297    }
298
299
300    /**
301     * <p>Java class for anonymous complex type.
302     * 
303     * <p>The following schema fragment specifies the expected content contained within this class.
304     * 
305     * <pre>
306     * &lt;complexType>
307     *   &lt;complexContent>
308     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
309     *       &lt;choice minOccurs="0">
310     *         &lt;element ref="{http://activemq.apache.org/schema/core}queue"/>
311     *         &lt;element ref="{http://activemq.apache.org/schema/core}tempQueue"/>
312     *         &lt;element ref="{http://activemq.apache.org/schema/core}tempTopic"/>
313     *         &lt;element ref="{http://activemq.apache.org/schema/core}topic"/>
314     *         &lt;any namespace='##other'/>
315     *       &lt;/choice>
316     *     &lt;/restriction>
317     *   &lt;/complexContent>
318     * &lt;/complexType>
319     * </pre>
320     * 
321     * 
322     */
323    @XmlAccessorType(XmlAccessType.FIELD)
324    @XmlType(name = "", propOrder = {
325        "queue",
326        "tempQueue",
327        "tempTopic",
328        "topic",
329        "any"
330    })
331    public static class Destination
332        implements Equals, HashCode, ToString
333    {
334
335        protected DtoQueue queue;
336        protected DtoTempQueue tempQueue;
337        protected DtoTempTopic tempTopic;
338        protected DtoTopic topic;
339        @XmlAnyElement(lax = true)
340        protected Object any;
341
342        /**
343         * Gets the value of the queue property.
344         * 
345         * @return
346         *     possible object is
347         *     {@link DtoQueue }
348         *     
349         */
350        public DtoQueue getQueue() {
351            return queue;
352        }
353
354        /**
355         * Sets the value of the queue property.
356         * 
357         * @param value
358         *     allowed object is
359         *     {@link DtoQueue }
360         *     
361         */
362        public void setQueue(DtoQueue value) {
363            this.queue = value;
364        }
365
366        /**
367         * Gets the value of the tempQueue property.
368         * 
369         * @return
370         *     possible object is
371         *     {@link DtoTempQueue }
372         *     
373         */
374        public DtoTempQueue getTempQueue() {
375            return tempQueue;
376        }
377
378        /**
379         * Sets the value of the tempQueue property.
380         * 
381         * @param value
382         *     allowed object is
383         *     {@link DtoTempQueue }
384         *     
385         */
386        public void setTempQueue(DtoTempQueue value) {
387            this.tempQueue = value;
388        }
389
390        /**
391         * Gets the value of the tempTopic property.
392         * 
393         * @return
394         *     possible object is
395         *     {@link DtoTempTopic }
396         *     
397         */
398        public DtoTempTopic getTempTopic() {
399            return tempTopic;
400        }
401
402        /**
403         * Sets the value of the tempTopic property.
404         * 
405         * @param value
406         *     allowed object is
407         *     {@link DtoTempTopic }
408         *     
409         */
410        public void setTempTopic(DtoTempTopic value) {
411            this.tempTopic = value;
412        }
413
414        /**
415         * Gets the value of the topic property.
416         * 
417         * @return
418         *     possible object is
419         *     {@link DtoTopic }
420         *     
421         */
422        public DtoTopic getTopic() {
423            return topic;
424        }
425
426        /**
427         * Sets the value of the topic property.
428         * 
429         * @param value
430         *     allowed object is
431         *     {@link DtoTopic }
432         *     
433         */
434        public void setTopic(DtoTopic value) {
435            this.topic = value;
436        }
437
438        /**
439         * Gets the value of the any property.
440         * 
441         * @return
442         *     possible object is
443         *     {@link Object }
444         *     
445         */
446        public Object getAny() {
447            return any;
448        }
449
450        /**
451         * Sets the value of the any property.
452         * 
453         * @param value
454         *     allowed object is
455         *     {@link Object }
456         *     
457         */
458        public void setAny(Object value) {
459            this.any = value;
460        }
461
462        public String toString() {
463            final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
464            final StringBuilder buffer = new StringBuilder();
465            append(null, buffer, strategy);
466            return buffer.toString();
467        }
468
469        public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
470            strategy.appendStart(locator, this, buffer);
471            appendFields(locator, buffer, strategy);
472            strategy.appendEnd(locator, this, buffer);
473            return buffer;
474        }
475
476        public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
477            {
478                DtoQueue theQueue;
479                theQueue = this.getQueue();
480                strategy.appendField(locator, this, "queue", buffer, theQueue);
481            }
482            {
483                DtoTempQueue theTempQueue;
484                theTempQueue = this.getTempQueue();
485                strategy.appendField(locator, this, "tempQueue", buffer, theTempQueue);
486            }
487            {
488                DtoTempTopic theTempTopic;
489                theTempTopic = this.getTempTopic();
490                strategy.appendField(locator, this, "tempTopic", buffer, theTempTopic);
491            }
492            {
493                DtoTopic theTopic;
494                theTopic = this.getTopic();
495                strategy.appendField(locator, this, "topic", buffer, theTopic);
496            }
497            {
498                Object theAny;
499                theAny = this.getAny();
500                strategy.appendField(locator, this, "any", buffer, theAny);
501            }
502            return buffer;
503        }
504
505        public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
506            int currentHashCode = 1;
507            {
508                DtoQueue theQueue;
509                theQueue = this.getQueue();
510                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "queue", theQueue), currentHashCode, theQueue);
511            }
512            {
513                DtoTempQueue theTempQueue;
514                theTempQueue = this.getTempQueue();
515                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "tempQueue", theTempQueue), currentHashCode, theTempQueue);
516            }
517            {
518                DtoTempTopic theTempTopic;
519                theTempTopic = this.getTempTopic();
520                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "tempTopic", theTempTopic), currentHashCode, theTempTopic);
521            }
522            {
523                DtoTopic theTopic;
524                theTopic = this.getTopic();
525                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "topic", theTopic), currentHashCode, theTopic);
526            }
527            {
528                Object theAny;
529                theAny = this.getAny();
530                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
531            }
532            return currentHashCode;
533        }
534
535        public int hashCode() {
536            final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
537            return this.hashCode(null, strategy);
538        }
539
540        public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
541            if (!(object instanceof DtoSimpleDispatchSelector.Destination)) {
542                return false;
543            }
544            if (this == object) {
545                return true;
546            }
547            final DtoSimpleDispatchSelector.Destination that = ((DtoSimpleDispatchSelector.Destination) object);
548            {
549                DtoQueue lhsQueue;
550                lhsQueue = this.getQueue();
551                DtoQueue rhsQueue;
552                rhsQueue = that.getQueue();
553                if (!strategy.equals(LocatorUtils.property(thisLocator, "queue", lhsQueue), LocatorUtils.property(thatLocator, "queue", rhsQueue), lhsQueue, rhsQueue)) {
554                    return false;
555                }
556            }
557            {
558                DtoTempQueue lhsTempQueue;
559                lhsTempQueue = this.getTempQueue();
560                DtoTempQueue rhsTempQueue;
561                rhsTempQueue = that.getTempQueue();
562                if (!strategy.equals(LocatorUtils.property(thisLocator, "tempQueue", lhsTempQueue), LocatorUtils.property(thatLocator, "tempQueue", rhsTempQueue), lhsTempQueue, rhsTempQueue)) {
563                    return false;
564                }
565            }
566            {
567                DtoTempTopic lhsTempTopic;
568                lhsTempTopic = this.getTempTopic();
569                DtoTempTopic rhsTempTopic;
570                rhsTempTopic = that.getTempTopic();
571                if (!strategy.equals(LocatorUtils.property(thisLocator, "tempTopic", lhsTempTopic), LocatorUtils.property(thatLocator, "tempTopic", rhsTempTopic), lhsTempTopic, rhsTempTopic)) {
572                    return false;
573                }
574            }
575            {
576                DtoTopic lhsTopic;
577                lhsTopic = this.getTopic();
578                DtoTopic rhsTopic;
579                rhsTopic = that.getTopic();
580                if (!strategy.equals(LocatorUtils.property(thisLocator, "topic", lhsTopic), LocatorUtils.property(thatLocator, "topic", rhsTopic), lhsTopic, rhsTopic)) {
581                    return false;
582                }
583            }
584            {
585                Object lhsAny;
586                lhsAny = this.getAny();
587                Object rhsAny;
588                rhsAny = that.getAny();
589                if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
590                    return false;
591                }
592            }
593            return true;
594        }
595
596        public boolean equals(Object object) {
597            final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
598            return equals(null, null, object, strategy);
599        }
600
601    }
602
603}