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: 2019.03.15 at 09:00:08 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.XmlElementRefs;
023import javax.xml.bind.annotation.XmlID;
024import javax.xml.bind.annotation.XmlRootElement;
025import javax.xml.bind.annotation.XmlSchemaType;
026import javax.xml.bind.annotation.XmlType;
027import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
028import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
029import javax.xml.namespace.QName;
030import org.jvnet.jaxb2_commons.lang.Equals;
031import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
032import org.jvnet.jaxb2_commons.lang.HashCode;
033import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
034import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
035import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
036import org.jvnet.jaxb2_commons.lang.ToString;
037import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
038import org.jvnet.jaxb2_commons.locator.ObjectLocator;
039import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
040
041
042/**
043 * <p>Java class for anonymous complex type.
044 * 
045 * <p>The following schema fragment specifies the expected content contained within this class.
046 * 
047 * <pre>
048 * &lt;complexType>
049 *   &lt;complexContent>
050 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
051 *       &lt;choice maxOccurs="unbounded" minOccurs="0">
052 *         &lt;choice>
053 *           &lt;element name="broker" minOccurs="0">
054 *             &lt;complexType>
055 *               &lt;complexContent>
056 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
057 *                   &lt;choice minOccurs="0">
058 *                     &lt;element ref="{http://activemq.apache.org/schema/core}destinationPathSeparatorPlugin"/>
059 *                     &lt;element ref="{http://activemq.apache.org/schema/core}destinationsPlugin"/>
060 *                     &lt;element ref="{http://activemq.apache.org/schema/core}forcePersistencyModeBroker"/>
061 *                     &lt;element ref="{http://activemq.apache.org/schema/core}loggingBrokerPlugin"/>
062 *                     &lt;element ref="{http://activemq.apache.org/schema/core}multicastTraceBrokerPlugin"/>
063 *                     &lt;element ref="{http://activemq.apache.org/schema/core}redeliveryPlugin"/>
064 *                     &lt;element ref="{http://activemq.apache.org/schema/core}timeStampingBrokerPlugin"/>
065 *                     &lt;element ref="{http://activemq.apache.org/schema/core}traceBrokerPathPlugin"/>
066 *                     &lt;element ref="{http://activemq.apache.org/schema/core}udpTraceBrokerPlugin"/>
067 *                     &lt;any namespace='##other'/>
068 *                   &lt;/choice>
069 *                 &lt;/restriction>
070 *               &lt;/complexContent>
071 *             &lt;/complexType>
072 *           &lt;/element>
073 *           &lt;element name="query" minOccurs="0">
074 *             &lt;complexType>
075 *               &lt;complexContent>
076 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
077 *                   &lt;sequence minOccurs="0">
078 *                     &lt;any maxOccurs="unbounded" minOccurs="0"/>
079 *                   &lt;/sequence>
080 *                 &lt;/restriction>
081 *               &lt;/complexContent>
082 *             &lt;/complexType>
083 *           &lt;/element>
084 *           &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
085 *         &lt;/choice>
086 *       &lt;/choice>
087 *       &lt;attribute name="broker" type="{http://www.w3.org/2001/XMLSchema}string" />
088 *       &lt;attribute name="query" type="{http://www.w3.org/2001/XMLSchema}string" />
089 *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
090 *       &lt;anyAttribute processContents='lax' namespace='##other'/>
091 *     &lt;/restriction>
092 *   &lt;/complexContent>
093 * &lt;/complexType>
094 * </pre>
095 * 
096 * 
097 */
098@XmlAccessorType(XmlAccessType.FIELD)
099@XmlType(name = "", propOrder = {
100    "brokerOrQueryOrAny"
101})
102@XmlRootElement(name = "queryBasedSubscriptionRecoveryPolicy")
103public class DtoQueryBasedSubscriptionRecoveryPolicy
104    implements Equals, HashCode, ToString
105{
106
107    @XmlElementRefs({
108        @XmlElementRef(name = "broker", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class, required = false),
109        @XmlElementRef(name = "query", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class, required = false)
110    })
111    @XmlAnyElement(lax = true)
112    protected List<Object> brokerOrQueryOrAny;
113    @XmlAttribute(name = "broker")
114    protected String broker;
115    @XmlAttribute(name = "query")
116    protected String query;
117    @XmlAttribute(name = "id")
118    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
119    @XmlID
120    @XmlSchemaType(name = "ID")
121    protected String id;
122    @XmlAnyAttribute
123    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
124
125    /**
126     * Gets the value of the brokerOrQueryOrAny property.
127     * 
128     * <p>
129     * This accessor method returns a reference to the live list,
130     * not a snapshot. Therefore any modification you make to the
131     * returned list will be present inside the JAXB object.
132     * This is why there is not a <CODE>set</CODE> method for the brokerOrQueryOrAny property.
133     * 
134     * <p>
135     * For example, to add a new item, do as follows:
136     * <pre>
137     *    getBrokerOrQueryOrAny().add(newItem);
138     * </pre>
139     * 
140     * 
141     * <p>
142     * Objects of the following type(s) are allowed in the list
143     * {@link JAXBElement }{@code <}{@link DtoQueryBasedSubscriptionRecoveryPolicy.Broker }{@code >}
144     * {@link Object }
145     * {@link JAXBElement }{@code <}{@link DtoQueryBasedSubscriptionRecoveryPolicy.Query }{@code >}
146     * 
147     * 
148     */
149    public List<Object> getBrokerOrQueryOrAny() {
150        if (brokerOrQueryOrAny == null) {
151            brokerOrQueryOrAny = new ArrayList<Object>();
152        }
153        return this.brokerOrQueryOrAny;
154    }
155
156    /**
157     * Gets the value of the broker property.
158     * 
159     * @return
160     *     possible object is
161     *     {@link String }
162     *     
163     */
164    public String getBroker() {
165        return broker;
166    }
167
168    /**
169     * Sets the value of the broker property.
170     * 
171     * @param value
172     *     allowed object is
173     *     {@link String }
174     *     
175     */
176    public void setBroker(String value) {
177        this.broker = value;
178    }
179
180    /**
181     * Gets the value of the query property.
182     * 
183     * @return
184     *     possible object is
185     *     {@link String }
186     *     
187     */
188    public String getQuery() {
189        return query;
190    }
191
192    /**
193     * Sets the value of the query property.
194     * 
195     * @param value
196     *     allowed object is
197     *     {@link String }
198     *     
199     */
200    public void setQuery(String value) {
201        this.query = value;
202    }
203
204    /**
205     * Gets the value of the id property.
206     * 
207     * @return
208     *     possible object is
209     *     {@link String }
210     *     
211     */
212    public String getId() {
213        return id;
214    }
215
216    /**
217     * Sets the value of the id property.
218     * 
219     * @param value
220     *     allowed object is
221     *     {@link String }
222     *     
223     */
224    public void setId(String value) {
225        this.id = value;
226    }
227
228    /**
229     * Gets a map that contains attributes that aren't bound to any typed property on this class.
230     * 
231     * <p>
232     * the map is keyed by the name of the attribute and 
233     * the value is the string value of the attribute.
234     * 
235     * the map returned by this method is live, and you can add new attribute
236     * by updating the map directly. Because of this design, there's no setter.
237     * 
238     * 
239     * @return
240     *     always non-null
241     */
242    public Map<QName, String> getOtherAttributes() {
243        return otherAttributes;
244    }
245
246    public String toString() {
247        final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
248        final StringBuilder buffer = new StringBuilder();
249        append(null, buffer, strategy);
250        return buffer.toString();
251    }
252
253    public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
254        strategy.appendStart(locator, this, buffer);
255        appendFields(locator, buffer, strategy);
256        strategy.appendEnd(locator, this, buffer);
257        return buffer;
258    }
259
260    public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
261        {
262            List<Object> theBrokerOrQueryOrAny;
263            theBrokerOrQueryOrAny = (((this.brokerOrQueryOrAny!= null)&&(!this.brokerOrQueryOrAny.isEmpty()))?this.getBrokerOrQueryOrAny():null);
264            strategy.appendField(locator, this, "brokerOrQueryOrAny", buffer, theBrokerOrQueryOrAny);
265        }
266        {
267            String theBroker;
268            theBroker = this.getBroker();
269            strategy.appendField(locator, this, "broker", buffer, theBroker);
270        }
271        {
272            String theQuery;
273            theQuery = this.getQuery();
274            strategy.appendField(locator, this, "query", buffer, theQuery);
275        }
276        {
277            String theId;
278            theId = this.getId();
279            strategy.appendField(locator, this, "id", buffer, theId);
280        }
281        return buffer;
282    }
283
284    public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
285        int currentHashCode = 1;
286        {
287            List<Object> theBrokerOrQueryOrAny;
288            theBrokerOrQueryOrAny = (((this.brokerOrQueryOrAny!= null)&&(!this.brokerOrQueryOrAny.isEmpty()))?this.getBrokerOrQueryOrAny():null);
289            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "brokerOrQueryOrAny", theBrokerOrQueryOrAny), currentHashCode, theBrokerOrQueryOrAny);
290        }
291        {
292            String theBroker;
293            theBroker = this.getBroker();
294            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "broker", theBroker), currentHashCode, theBroker);
295        }
296        {
297            String theQuery;
298            theQuery = this.getQuery();
299            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "query", theQuery), currentHashCode, theQuery);
300        }
301        {
302            String theId;
303            theId = this.getId();
304            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "id", theId), currentHashCode, theId);
305        }
306        return currentHashCode;
307    }
308
309    public int hashCode() {
310        final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
311        return this.hashCode(null, strategy);
312    }
313
314    public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
315        if (!(object instanceof DtoQueryBasedSubscriptionRecoveryPolicy)) {
316            return false;
317        }
318        if (this == object) {
319            return true;
320        }
321        final DtoQueryBasedSubscriptionRecoveryPolicy that = ((DtoQueryBasedSubscriptionRecoveryPolicy) object);
322        {
323            List<Object> lhsBrokerOrQueryOrAny;
324            lhsBrokerOrQueryOrAny = (((this.brokerOrQueryOrAny!= null)&&(!this.brokerOrQueryOrAny.isEmpty()))?this.getBrokerOrQueryOrAny():null);
325            List<Object> rhsBrokerOrQueryOrAny;
326            rhsBrokerOrQueryOrAny = (((that.brokerOrQueryOrAny!= null)&&(!that.brokerOrQueryOrAny.isEmpty()))?that.getBrokerOrQueryOrAny():null);
327            if (!strategy.equals(LocatorUtils.property(thisLocator, "brokerOrQueryOrAny", lhsBrokerOrQueryOrAny), LocatorUtils.property(thatLocator, "brokerOrQueryOrAny", rhsBrokerOrQueryOrAny), lhsBrokerOrQueryOrAny, rhsBrokerOrQueryOrAny)) {
328                return false;
329            }
330        }
331        {
332            String lhsBroker;
333            lhsBroker = this.getBroker();
334            String rhsBroker;
335            rhsBroker = that.getBroker();
336            if (!strategy.equals(LocatorUtils.property(thisLocator, "broker", lhsBroker), LocatorUtils.property(thatLocator, "broker", rhsBroker), lhsBroker, rhsBroker)) {
337                return false;
338            }
339        }
340        {
341            String lhsQuery;
342            lhsQuery = this.getQuery();
343            String rhsQuery;
344            rhsQuery = that.getQuery();
345            if (!strategy.equals(LocatorUtils.property(thisLocator, "query", lhsQuery), LocatorUtils.property(thatLocator, "query", rhsQuery), lhsQuery, rhsQuery)) {
346                return false;
347            }
348        }
349        {
350            String lhsId;
351            lhsId = this.getId();
352            String rhsId;
353            rhsId = that.getId();
354            if (!strategy.equals(LocatorUtils.property(thisLocator, "id", lhsId), LocatorUtils.property(thatLocator, "id", rhsId), lhsId, rhsId)) {
355                return false;
356            }
357        }
358        return true;
359    }
360
361    public boolean equals(Object object) {
362        final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
363        return equals(null, null, object, strategy);
364    }
365
366
367    /**
368     * <p>Java class for anonymous complex type.
369     * 
370     * <p>The following schema fragment specifies the expected content contained within this class.
371     * 
372     * <pre>
373     * &lt;complexType>
374     *   &lt;complexContent>
375     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
376     *       &lt;choice minOccurs="0">
377     *         &lt;element ref="{http://activemq.apache.org/schema/core}destinationPathSeparatorPlugin"/>
378     *         &lt;element ref="{http://activemq.apache.org/schema/core}destinationsPlugin"/>
379     *         &lt;element ref="{http://activemq.apache.org/schema/core}forcePersistencyModeBroker"/>
380     *         &lt;element ref="{http://activemq.apache.org/schema/core}loggingBrokerPlugin"/>
381     *         &lt;element ref="{http://activemq.apache.org/schema/core}multicastTraceBrokerPlugin"/>
382     *         &lt;element ref="{http://activemq.apache.org/schema/core}redeliveryPlugin"/>
383     *         &lt;element ref="{http://activemq.apache.org/schema/core}timeStampingBrokerPlugin"/>
384     *         &lt;element ref="{http://activemq.apache.org/schema/core}traceBrokerPathPlugin"/>
385     *         &lt;element ref="{http://activemq.apache.org/schema/core}udpTraceBrokerPlugin"/>
386     *         &lt;any namespace='##other'/>
387     *       &lt;/choice>
388     *     &lt;/restriction>
389     *   &lt;/complexContent>
390     * &lt;/complexType>
391     * </pre>
392     * 
393     * 
394     */
395    @XmlAccessorType(XmlAccessType.FIELD)
396    @XmlType(name = "", propOrder = {
397        "destinationPathSeparatorPlugin",
398        "destinationsPlugin",
399        "forcePersistencyModeBroker",
400        "loggingBrokerPlugin",
401        "multicastTraceBrokerPlugin",
402        "redeliveryPlugin",
403        "timeStampingBrokerPlugin",
404        "traceBrokerPathPlugin",
405        "udpTraceBrokerPlugin",
406        "any"
407    })
408    public static class Broker
409        implements Equals, HashCode, ToString
410    {
411
412        protected DtoDestinationPathSeparatorPlugin destinationPathSeparatorPlugin;
413        protected DtoDestinationsPlugin destinationsPlugin;
414        protected DtoForcePersistencyModeBroker forcePersistencyModeBroker;
415        protected DtoLoggingBrokerPlugin loggingBrokerPlugin;
416        protected DtoMulticastTraceBrokerPlugin multicastTraceBrokerPlugin;
417        protected DtoRedeliveryPlugin redeliveryPlugin;
418        protected DtoTimeStampingBrokerPlugin timeStampingBrokerPlugin;
419        protected DtoTraceBrokerPathPlugin traceBrokerPathPlugin;
420        protected DtoUdpTraceBrokerPlugin udpTraceBrokerPlugin;
421        @XmlAnyElement(lax = true)
422        protected Object any;
423
424        /**
425         * Gets the value of the destinationPathSeparatorPlugin property.
426         * 
427         * @return
428         *     possible object is
429         *     {@link DtoDestinationPathSeparatorPlugin }
430         *     
431         */
432        public DtoDestinationPathSeparatorPlugin getDestinationPathSeparatorPlugin() {
433            return destinationPathSeparatorPlugin;
434        }
435
436        /**
437         * Sets the value of the destinationPathSeparatorPlugin property.
438         * 
439         * @param value
440         *     allowed object is
441         *     {@link DtoDestinationPathSeparatorPlugin }
442         *     
443         */
444        public void setDestinationPathSeparatorPlugin(DtoDestinationPathSeparatorPlugin value) {
445            this.destinationPathSeparatorPlugin = value;
446        }
447
448        /**
449         * Gets the value of the destinationsPlugin property.
450         * 
451         * @return
452         *     possible object is
453         *     {@link DtoDestinationsPlugin }
454         *     
455         */
456        public DtoDestinationsPlugin getDestinationsPlugin() {
457            return destinationsPlugin;
458        }
459
460        /**
461         * Sets the value of the destinationsPlugin property.
462         * 
463         * @param value
464         *     allowed object is
465         *     {@link DtoDestinationsPlugin }
466         *     
467         */
468        public void setDestinationsPlugin(DtoDestinationsPlugin value) {
469            this.destinationsPlugin = value;
470        }
471
472        /**
473         * Gets the value of the forcePersistencyModeBroker property.
474         * 
475         * @return
476         *     possible object is
477         *     {@link DtoForcePersistencyModeBroker }
478         *     
479         */
480        public DtoForcePersistencyModeBroker getForcePersistencyModeBroker() {
481            return forcePersistencyModeBroker;
482        }
483
484        /**
485         * Sets the value of the forcePersistencyModeBroker property.
486         * 
487         * @param value
488         *     allowed object is
489         *     {@link DtoForcePersistencyModeBroker }
490         *     
491         */
492        public void setForcePersistencyModeBroker(DtoForcePersistencyModeBroker value) {
493            this.forcePersistencyModeBroker = value;
494        }
495
496        /**
497         * Gets the value of the loggingBrokerPlugin property.
498         * 
499         * @return
500         *     possible object is
501         *     {@link DtoLoggingBrokerPlugin }
502         *     
503         */
504        public DtoLoggingBrokerPlugin getLoggingBrokerPlugin() {
505            return loggingBrokerPlugin;
506        }
507
508        /**
509         * Sets the value of the loggingBrokerPlugin property.
510         * 
511         * @param value
512         *     allowed object is
513         *     {@link DtoLoggingBrokerPlugin }
514         *     
515         */
516        public void setLoggingBrokerPlugin(DtoLoggingBrokerPlugin value) {
517            this.loggingBrokerPlugin = value;
518        }
519
520        /**
521         * Gets the value of the multicastTraceBrokerPlugin property.
522         * 
523         * @return
524         *     possible object is
525         *     {@link DtoMulticastTraceBrokerPlugin }
526         *     
527         */
528        public DtoMulticastTraceBrokerPlugin getMulticastTraceBrokerPlugin() {
529            return multicastTraceBrokerPlugin;
530        }
531
532        /**
533         * Sets the value of the multicastTraceBrokerPlugin property.
534         * 
535         * @param value
536         *     allowed object is
537         *     {@link DtoMulticastTraceBrokerPlugin }
538         *     
539         */
540        public void setMulticastTraceBrokerPlugin(DtoMulticastTraceBrokerPlugin value) {
541            this.multicastTraceBrokerPlugin = value;
542        }
543
544        /**
545         * Gets the value of the redeliveryPlugin property.
546         * 
547         * @return
548         *     possible object is
549         *     {@link DtoRedeliveryPlugin }
550         *     
551         */
552        public DtoRedeliveryPlugin getRedeliveryPlugin() {
553            return redeliveryPlugin;
554        }
555
556        /**
557         * Sets the value of the redeliveryPlugin property.
558         * 
559         * @param value
560         *     allowed object is
561         *     {@link DtoRedeliveryPlugin }
562         *     
563         */
564        public void setRedeliveryPlugin(DtoRedeliveryPlugin value) {
565            this.redeliveryPlugin = value;
566        }
567
568        /**
569         * Gets the value of the timeStampingBrokerPlugin property.
570         * 
571         * @return
572         *     possible object is
573         *     {@link DtoTimeStampingBrokerPlugin }
574         *     
575         */
576        public DtoTimeStampingBrokerPlugin getTimeStampingBrokerPlugin() {
577            return timeStampingBrokerPlugin;
578        }
579
580        /**
581         * Sets the value of the timeStampingBrokerPlugin property.
582         * 
583         * @param value
584         *     allowed object is
585         *     {@link DtoTimeStampingBrokerPlugin }
586         *     
587         */
588        public void setTimeStampingBrokerPlugin(DtoTimeStampingBrokerPlugin value) {
589            this.timeStampingBrokerPlugin = value;
590        }
591
592        /**
593         * Gets the value of the traceBrokerPathPlugin property.
594         * 
595         * @return
596         *     possible object is
597         *     {@link DtoTraceBrokerPathPlugin }
598         *     
599         */
600        public DtoTraceBrokerPathPlugin getTraceBrokerPathPlugin() {
601            return traceBrokerPathPlugin;
602        }
603
604        /**
605         * Sets the value of the traceBrokerPathPlugin property.
606         * 
607         * @param value
608         *     allowed object is
609         *     {@link DtoTraceBrokerPathPlugin }
610         *     
611         */
612        public void setTraceBrokerPathPlugin(DtoTraceBrokerPathPlugin value) {
613            this.traceBrokerPathPlugin = value;
614        }
615
616        /**
617         * Gets the value of the udpTraceBrokerPlugin property.
618         * 
619         * @return
620         *     possible object is
621         *     {@link DtoUdpTraceBrokerPlugin }
622         *     
623         */
624        public DtoUdpTraceBrokerPlugin getUdpTraceBrokerPlugin() {
625            return udpTraceBrokerPlugin;
626        }
627
628        /**
629         * Sets the value of the udpTraceBrokerPlugin property.
630         * 
631         * @param value
632         *     allowed object is
633         *     {@link DtoUdpTraceBrokerPlugin }
634         *     
635         */
636        public void setUdpTraceBrokerPlugin(DtoUdpTraceBrokerPlugin value) {
637            this.udpTraceBrokerPlugin = value;
638        }
639
640        /**
641         * Gets the value of the any property.
642         * 
643         * @return
644         *     possible object is
645         *     {@link Object }
646         *     
647         */
648        public Object getAny() {
649            return any;
650        }
651
652        /**
653         * Sets the value of the any property.
654         * 
655         * @param value
656         *     allowed object is
657         *     {@link Object }
658         *     
659         */
660        public void setAny(Object value) {
661            this.any = value;
662        }
663
664        public String toString() {
665            final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
666            final StringBuilder buffer = new StringBuilder();
667            append(null, buffer, strategy);
668            return buffer.toString();
669        }
670
671        public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
672            strategy.appendStart(locator, this, buffer);
673            appendFields(locator, buffer, strategy);
674            strategy.appendEnd(locator, this, buffer);
675            return buffer;
676        }
677
678        public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
679            {
680                DtoDestinationPathSeparatorPlugin theDestinationPathSeparatorPlugin;
681                theDestinationPathSeparatorPlugin = this.getDestinationPathSeparatorPlugin();
682                strategy.appendField(locator, this, "destinationPathSeparatorPlugin", buffer, theDestinationPathSeparatorPlugin);
683            }
684            {
685                DtoDestinationsPlugin theDestinationsPlugin;
686                theDestinationsPlugin = this.getDestinationsPlugin();
687                strategy.appendField(locator, this, "destinationsPlugin", buffer, theDestinationsPlugin);
688            }
689            {
690                DtoForcePersistencyModeBroker theForcePersistencyModeBroker;
691                theForcePersistencyModeBroker = this.getForcePersistencyModeBroker();
692                strategy.appendField(locator, this, "forcePersistencyModeBroker", buffer, theForcePersistencyModeBroker);
693            }
694            {
695                DtoLoggingBrokerPlugin theLoggingBrokerPlugin;
696                theLoggingBrokerPlugin = this.getLoggingBrokerPlugin();
697                strategy.appendField(locator, this, "loggingBrokerPlugin", buffer, theLoggingBrokerPlugin);
698            }
699            {
700                DtoMulticastTraceBrokerPlugin theMulticastTraceBrokerPlugin;
701                theMulticastTraceBrokerPlugin = this.getMulticastTraceBrokerPlugin();
702                strategy.appendField(locator, this, "multicastTraceBrokerPlugin", buffer, theMulticastTraceBrokerPlugin);
703            }
704            {
705                DtoRedeliveryPlugin theRedeliveryPlugin;
706                theRedeliveryPlugin = this.getRedeliveryPlugin();
707                strategy.appendField(locator, this, "redeliveryPlugin", buffer, theRedeliveryPlugin);
708            }
709            {
710                DtoTimeStampingBrokerPlugin theTimeStampingBrokerPlugin;
711                theTimeStampingBrokerPlugin = this.getTimeStampingBrokerPlugin();
712                strategy.appendField(locator, this, "timeStampingBrokerPlugin", buffer, theTimeStampingBrokerPlugin);
713            }
714            {
715                DtoTraceBrokerPathPlugin theTraceBrokerPathPlugin;
716                theTraceBrokerPathPlugin = this.getTraceBrokerPathPlugin();
717                strategy.appendField(locator, this, "traceBrokerPathPlugin", buffer, theTraceBrokerPathPlugin);
718            }
719            {
720                DtoUdpTraceBrokerPlugin theUdpTraceBrokerPlugin;
721                theUdpTraceBrokerPlugin = this.getUdpTraceBrokerPlugin();
722                strategy.appendField(locator, this, "udpTraceBrokerPlugin", buffer, theUdpTraceBrokerPlugin);
723            }
724            {
725                Object theAny;
726                theAny = this.getAny();
727                strategy.appendField(locator, this, "any", buffer, theAny);
728            }
729            return buffer;
730        }
731
732        public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
733            int currentHashCode = 1;
734            {
735                DtoDestinationPathSeparatorPlugin theDestinationPathSeparatorPlugin;
736                theDestinationPathSeparatorPlugin = this.getDestinationPathSeparatorPlugin();
737                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "destinationPathSeparatorPlugin", theDestinationPathSeparatorPlugin), currentHashCode, theDestinationPathSeparatorPlugin);
738            }
739            {
740                DtoDestinationsPlugin theDestinationsPlugin;
741                theDestinationsPlugin = this.getDestinationsPlugin();
742                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "destinationsPlugin", theDestinationsPlugin), currentHashCode, theDestinationsPlugin);
743            }
744            {
745                DtoForcePersistencyModeBroker theForcePersistencyModeBroker;
746                theForcePersistencyModeBroker = this.getForcePersistencyModeBroker();
747                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "forcePersistencyModeBroker", theForcePersistencyModeBroker), currentHashCode, theForcePersistencyModeBroker);
748            }
749            {
750                DtoLoggingBrokerPlugin theLoggingBrokerPlugin;
751                theLoggingBrokerPlugin = this.getLoggingBrokerPlugin();
752                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "loggingBrokerPlugin", theLoggingBrokerPlugin), currentHashCode, theLoggingBrokerPlugin);
753            }
754            {
755                DtoMulticastTraceBrokerPlugin theMulticastTraceBrokerPlugin;
756                theMulticastTraceBrokerPlugin = this.getMulticastTraceBrokerPlugin();
757                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "multicastTraceBrokerPlugin", theMulticastTraceBrokerPlugin), currentHashCode, theMulticastTraceBrokerPlugin);
758            }
759            {
760                DtoRedeliveryPlugin theRedeliveryPlugin;
761                theRedeliveryPlugin = this.getRedeliveryPlugin();
762                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "redeliveryPlugin", theRedeliveryPlugin), currentHashCode, theRedeliveryPlugin);
763            }
764            {
765                DtoTimeStampingBrokerPlugin theTimeStampingBrokerPlugin;
766                theTimeStampingBrokerPlugin = this.getTimeStampingBrokerPlugin();
767                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "timeStampingBrokerPlugin", theTimeStampingBrokerPlugin), currentHashCode, theTimeStampingBrokerPlugin);
768            }
769            {
770                DtoTraceBrokerPathPlugin theTraceBrokerPathPlugin;
771                theTraceBrokerPathPlugin = this.getTraceBrokerPathPlugin();
772                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "traceBrokerPathPlugin", theTraceBrokerPathPlugin), currentHashCode, theTraceBrokerPathPlugin);
773            }
774            {
775                DtoUdpTraceBrokerPlugin theUdpTraceBrokerPlugin;
776                theUdpTraceBrokerPlugin = this.getUdpTraceBrokerPlugin();
777                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "udpTraceBrokerPlugin", theUdpTraceBrokerPlugin), currentHashCode, theUdpTraceBrokerPlugin);
778            }
779            {
780                Object theAny;
781                theAny = this.getAny();
782                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
783            }
784            return currentHashCode;
785        }
786
787        public int hashCode() {
788            final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
789            return this.hashCode(null, strategy);
790        }
791
792        public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
793            if (!(object instanceof DtoQueryBasedSubscriptionRecoveryPolicy.Broker)) {
794                return false;
795            }
796            if (this == object) {
797                return true;
798            }
799            final DtoQueryBasedSubscriptionRecoveryPolicy.Broker that = ((DtoQueryBasedSubscriptionRecoveryPolicy.Broker) object);
800            {
801                DtoDestinationPathSeparatorPlugin lhsDestinationPathSeparatorPlugin;
802                lhsDestinationPathSeparatorPlugin = this.getDestinationPathSeparatorPlugin();
803                DtoDestinationPathSeparatorPlugin rhsDestinationPathSeparatorPlugin;
804                rhsDestinationPathSeparatorPlugin = that.getDestinationPathSeparatorPlugin();
805                if (!strategy.equals(LocatorUtils.property(thisLocator, "destinationPathSeparatorPlugin", lhsDestinationPathSeparatorPlugin), LocatorUtils.property(thatLocator, "destinationPathSeparatorPlugin", rhsDestinationPathSeparatorPlugin), lhsDestinationPathSeparatorPlugin, rhsDestinationPathSeparatorPlugin)) {
806                    return false;
807                }
808            }
809            {
810                DtoDestinationsPlugin lhsDestinationsPlugin;
811                lhsDestinationsPlugin = this.getDestinationsPlugin();
812                DtoDestinationsPlugin rhsDestinationsPlugin;
813                rhsDestinationsPlugin = that.getDestinationsPlugin();
814                if (!strategy.equals(LocatorUtils.property(thisLocator, "destinationsPlugin", lhsDestinationsPlugin), LocatorUtils.property(thatLocator, "destinationsPlugin", rhsDestinationsPlugin), lhsDestinationsPlugin, rhsDestinationsPlugin)) {
815                    return false;
816                }
817            }
818            {
819                DtoForcePersistencyModeBroker lhsForcePersistencyModeBroker;
820                lhsForcePersistencyModeBroker = this.getForcePersistencyModeBroker();
821                DtoForcePersistencyModeBroker rhsForcePersistencyModeBroker;
822                rhsForcePersistencyModeBroker = that.getForcePersistencyModeBroker();
823                if (!strategy.equals(LocatorUtils.property(thisLocator, "forcePersistencyModeBroker", lhsForcePersistencyModeBroker), LocatorUtils.property(thatLocator, "forcePersistencyModeBroker", rhsForcePersistencyModeBroker), lhsForcePersistencyModeBroker, rhsForcePersistencyModeBroker)) {
824                    return false;
825                }
826            }
827            {
828                DtoLoggingBrokerPlugin lhsLoggingBrokerPlugin;
829                lhsLoggingBrokerPlugin = this.getLoggingBrokerPlugin();
830                DtoLoggingBrokerPlugin rhsLoggingBrokerPlugin;
831                rhsLoggingBrokerPlugin = that.getLoggingBrokerPlugin();
832                if (!strategy.equals(LocatorUtils.property(thisLocator, "loggingBrokerPlugin", lhsLoggingBrokerPlugin), LocatorUtils.property(thatLocator, "loggingBrokerPlugin", rhsLoggingBrokerPlugin), lhsLoggingBrokerPlugin, rhsLoggingBrokerPlugin)) {
833                    return false;
834                }
835            }
836            {
837                DtoMulticastTraceBrokerPlugin lhsMulticastTraceBrokerPlugin;
838                lhsMulticastTraceBrokerPlugin = this.getMulticastTraceBrokerPlugin();
839                DtoMulticastTraceBrokerPlugin rhsMulticastTraceBrokerPlugin;
840                rhsMulticastTraceBrokerPlugin = that.getMulticastTraceBrokerPlugin();
841                if (!strategy.equals(LocatorUtils.property(thisLocator, "multicastTraceBrokerPlugin", lhsMulticastTraceBrokerPlugin), LocatorUtils.property(thatLocator, "multicastTraceBrokerPlugin", rhsMulticastTraceBrokerPlugin), lhsMulticastTraceBrokerPlugin, rhsMulticastTraceBrokerPlugin)) {
842                    return false;
843                }
844            }
845            {
846                DtoRedeliveryPlugin lhsRedeliveryPlugin;
847                lhsRedeliveryPlugin = this.getRedeliveryPlugin();
848                DtoRedeliveryPlugin rhsRedeliveryPlugin;
849                rhsRedeliveryPlugin = that.getRedeliveryPlugin();
850                if (!strategy.equals(LocatorUtils.property(thisLocator, "redeliveryPlugin", lhsRedeliveryPlugin), LocatorUtils.property(thatLocator, "redeliveryPlugin", rhsRedeliveryPlugin), lhsRedeliveryPlugin, rhsRedeliveryPlugin)) {
851                    return false;
852                }
853            }
854            {
855                DtoTimeStampingBrokerPlugin lhsTimeStampingBrokerPlugin;
856                lhsTimeStampingBrokerPlugin = this.getTimeStampingBrokerPlugin();
857                DtoTimeStampingBrokerPlugin rhsTimeStampingBrokerPlugin;
858                rhsTimeStampingBrokerPlugin = that.getTimeStampingBrokerPlugin();
859                if (!strategy.equals(LocatorUtils.property(thisLocator, "timeStampingBrokerPlugin", lhsTimeStampingBrokerPlugin), LocatorUtils.property(thatLocator, "timeStampingBrokerPlugin", rhsTimeStampingBrokerPlugin), lhsTimeStampingBrokerPlugin, rhsTimeStampingBrokerPlugin)) {
860                    return false;
861                }
862            }
863            {
864                DtoTraceBrokerPathPlugin lhsTraceBrokerPathPlugin;
865                lhsTraceBrokerPathPlugin = this.getTraceBrokerPathPlugin();
866                DtoTraceBrokerPathPlugin rhsTraceBrokerPathPlugin;
867                rhsTraceBrokerPathPlugin = that.getTraceBrokerPathPlugin();
868                if (!strategy.equals(LocatorUtils.property(thisLocator, "traceBrokerPathPlugin", lhsTraceBrokerPathPlugin), LocatorUtils.property(thatLocator, "traceBrokerPathPlugin", rhsTraceBrokerPathPlugin), lhsTraceBrokerPathPlugin, rhsTraceBrokerPathPlugin)) {
869                    return false;
870                }
871            }
872            {
873                DtoUdpTraceBrokerPlugin lhsUdpTraceBrokerPlugin;
874                lhsUdpTraceBrokerPlugin = this.getUdpTraceBrokerPlugin();
875                DtoUdpTraceBrokerPlugin rhsUdpTraceBrokerPlugin;
876                rhsUdpTraceBrokerPlugin = that.getUdpTraceBrokerPlugin();
877                if (!strategy.equals(LocatorUtils.property(thisLocator, "udpTraceBrokerPlugin", lhsUdpTraceBrokerPlugin), LocatorUtils.property(thatLocator, "udpTraceBrokerPlugin", rhsUdpTraceBrokerPlugin), lhsUdpTraceBrokerPlugin, rhsUdpTraceBrokerPlugin)) {
878                    return false;
879                }
880            }
881            {
882                Object lhsAny;
883                lhsAny = this.getAny();
884                Object rhsAny;
885                rhsAny = that.getAny();
886                if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
887                    return false;
888                }
889            }
890            return true;
891        }
892
893        public boolean equals(Object object) {
894            final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
895            return equals(null, null, object, strategy);
896        }
897
898    }
899
900
901    /**
902     * <p>Java class for anonymous complex type.
903     * 
904     * <p>The following schema fragment specifies the expected content contained within this class.
905     * 
906     * <pre>
907     * &lt;complexType>
908     *   &lt;complexContent>
909     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
910     *       &lt;sequence minOccurs="0">
911     *         &lt;any maxOccurs="unbounded" minOccurs="0"/>
912     *       &lt;/sequence>
913     *     &lt;/restriction>
914     *   &lt;/complexContent>
915     * &lt;/complexType>
916     * </pre>
917     * 
918     * 
919     */
920    @XmlAccessorType(XmlAccessType.FIELD)
921    @XmlType(name = "", propOrder = {
922        "any"
923    })
924    public static class Query
925        implements Equals, HashCode, ToString
926    {
927
928        @XmlAnyElement(lax = true)
929        protected List<Object> any;
930
931        /**
932         * Gets the value of the any property.
933         * 
934         * <p>
935         * This accessor method returns a reference to the live list,
936         * not a snapshot. Therefore any modification you make to the
937         * returned list will be present inside the JAXB object.
938         * This is why there is not a <CODE>set</CODE> method for the any property.
939         * 
940         * <p>
941         * For example, to add a new item, do as follows:
942         * <pre>
943         *    getAny().add(newItem);
944         * </pre>
945         * 
946         * 
947         * <p>
948         * Objects of the following type(s) are allowed in the list
949         * {@link Object }
950         * 
951         * 
952         */
953        public List<Object> getAny() {
954            if (any == null) {
955                any = new ArrayList<Object>();
956            }
957            return this.any;
958        }
959
960        public String toString() {
961            final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
962            final StringBuilder buffer = new StringBuilder();
963            append(null, buffer, strategy);
964            return buffer.toString();
965        }
966
967        public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
968            strategy.appendStart(locator, this, buffer);
969            appendFields(locator, buffer, strategy);
970            strategy.appendEnd(locator, this, buffer);
971            return buffer;
972        }
973
974        public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
975            {
976                List<Object> theAny;
977                theAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
978                strategy.appendField(locator, this, "any", buffer, theAny);
979            }
980            return buffer;
981        }
982
983        public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
984            int currentHashCode = 1;
985            {
986                List<Object> theAny;
987                theAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
988                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
989            }
990            return currentHashCode;
991        }
992
993        public int hashCode() {
994            final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
995            return this.hashCode(null, strategy);
996        }
997
998        public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
999            if (!(object instanceof DtoQueryBasedSubscriptionRecoveryPolicy.Query)) {
1000                return false;
1001            }
1002            if (this == object) {
1003                return true;
1004            }
1005            final DtoQueryBasedSubscriptionRecoveryPolicy.Query that = ((DtoQueryBasedSubscriptionRecoveryPolicy.Query) object);
1006            {
1007                List<Object> lhsAny;
1008                lhsAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
1009                List<Object> rhsAny;
1010                rhsAny = (((that.any!= null)&&(!that.any.isEmpty()))?that.getAny():null);
1011                if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
1012                    return false;
1013                }
1014            }
1015            return true;
1016        }
1017
1018        public boolean equals(Object object) {
1019            final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
1020            return equals(null, null, object, strategy);
1021        }
1022
1023    }
1024
1025}