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.math.BigInteger;
012import java.util.ArrayList;
013import java.util.HashMap;
014import java.util.List;
015import java.util.Map;
016import javax.xml.bind.JAXBElement;
017import javax.xml.bind.annotation.XmlAccessType;
018import javax.xml.bind.annotation.XmlAccessorType;
019import javax.xml.bind.annotation.XmlAnyAttribute;
020import javax.xml.bind.annotation.XmlAnyElement;
021import javax.xml.bind.annotation.XmlAttribute;
022import javax.xml.bind.annotation.XmlElementRef;
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="destination" 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}queue"/>
059 *                     &lt;element ref="{http://activemq.apache.org/schema/core}tempQueue"/>
060 *                     &lt;element ref="{http://activemq.apache.org/schema/core}tempTopic"/>
061 *                     &lt;element ref="{http://activemq.apache.org/schema/core}topic"/>
062 *                     &lt;any namespace='##other'/>
063 *                   &lt;/choice>
064 *                 &lt;/restriction>
065 *               &lt;/complexContent>
066 *             &lt;/complexType>
067 *           &lt;/element>
068 *           &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
069 *         &lt;/choice>
070 *       &lt;/choice>
071 *       &lt;attribute name="backOffMultiplier" type="{http://www.w3.org/2001/XMLSchema}double" />
072 *       &lt;attribute name="collisionAvoidancePercent" type="{http://www.w3.org/2001/XMLSchema}short" />
073 *       &lt;attribute name="destination" type="{http://www.w3.org/2001/XMLSchema}string" />
074 *       &lt;attribute name="initialRedeliveryDelay" type="{http://www.w3.org/2001/XMLSchema}long" />
075 *       &lt;attribute name="maximumRedeliveries" type="{http://www.w3.org/2001/XMLSchema}integer" />
076 *       &lt;attribute name="maximumRedeliveryDelay" type="{http://www.w3.org/2001/XMLSchema}long" />
077 *       &lt;attribute name="preDispatchCheck" type="{http://www.w3.org/2001/XMLSchema}boolean" />
078 *       &lt;attribute name="queue" type="{http://www.w3.org/2001/XMLSchema}string" />
079 *       &lt;attribute name="redeliveryDelay" type="{http://www.w3.org/2001/XMLSchema}long" />
080 *       &lt;attribute name="tempQueue" type="{http://www.w3.org/2001/XMLSchema}boolean" />
081 *       &lt;attribute name="tempTopic" type="{http://www.w3.org/2001/XMLSchema}boolean" />
082 *       &lt;attribute name="topic" type="{http://www.w3.org/2001/XMLSchema}string" />
083 *       &lt;attribute name="useCollisionAvoidance" type="{http://www.w3.org/2001/XMLSchema}boolean" />
084 *       &lt;attribute name="useExponentialBackOff" type="{http://www.w3.org/2001/XMLSchema}boolean" />
085 *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
086 *       &lt;anyAttribute processContents='lax' namespace='##other'/>
087 *     &lt;/restriction>
088 *   &lt;/complexContent>
089 * &lt;/complexType>
090 * </pre>
091 * 
092 * 
093 */
094@XmlAccessorType(XmlAccessType.FIELD)
095@XmlType(name = "", propOrder = {
096    "destinationOrAny"
097})
098@XmlRootElement(name = "redeliveryPolicy")
099public class DtoRedeliveryPolicy
100    implements Equals, HashCode, ToString
101{
102
103    @XmlElementRef(name = "destination", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class, required = false)
104    @XmlAnyElement(lax = true)
105    protected List<Object> destinationOrAny;
106    @XmlAttribute(name = "backOffMultiplier")
107    protected Double backOffMultiplier;
108    @XmlAttribute(name = "collisionAvoidancePercent")
109    protected Short collisionAvoidancePercent;
110    @XmlAttribute(name = "destination")
111    protected String destination;
112    @XmlAttribute(name = "initialRedeliveryDelay")
113    protected Long initialRedeliveryDelay;
114    @XmlAttribute(name = "maximumRedeliveries")
115    protected BigInteger maximumRedeliveries;
116    @XmlAttribute(name = "maximumRedeliveryDelay")
117    protected Long maximumRedeliveryDelay;
118    @XmlAttribute(name = "preDispatchCheck")
119    protected Boolean preDispatchCheck;
120    @XmlAttribute(name = "queue")
121    protected String queue;
122    @XmlAttribute(name = "redeliveryDelay")
123    protected Long redeliveryDelay;
124    @XmlAttribute(name = "tempQueue")
125    protected Boolean tempQueue;
126    @XmlAttribute(name = "tempTopic")
127    protected Boolean tempTopic;
128    @XmlAttribute(name = "topic")
129    protected String topic;
130    @XmlAttribute(name = "useCollisionAvoidance")
131    protected Boolean useCollisionAvoidance;
132    @XmlAttribute(name = "useExponentialBackOff")
133    protected Boolean useExponentialBackOff;
134    @XmlAttribute(name = "id")
135    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
136    @XmlID
137    @XmlSchemaType(name = "ID")
138    protected String id;
139    @XmlAnyAttribute
140    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
141
142    /**
143     * Gets the value of the destinationOrAny property.
144     * 
145     * <p>
146     * This accessor method returns a reference to the live list,
147     * not a snapshot. Therefore any modification you make to the
148     * returned list will be present inside the JAXB object.
149     * This is why there is not a <CODE>set</CODE> method for the destinationOrAny property.
150     * 
151     * <p>
152     * For example, to add a new item, do as follows:
153     * <pre>
154     *    getDestinationOrAny().add(newItem);
155     * </pre>
156     * 
157     * 
158     * <p>
159     * Objects of the following type(s) are allowed in the list
160     * {@link JAXBElement }{@code <}{@link DtoRedeliveryPolicy.Destination }{@code >}
161     * {@link Object }
162     * 
163     * 
164     */
165    public List<Object> getDestinationOrAny() {
166        if (destinationOrAny == null) {
167            destinationOrAny = new ArrayList<Object>();
168        }
169        return this.destinationOrAny;
170    }
171
172    /**
173     * Gets the value of the backOffMultiplier property.
174     * 
175     * @return
176     *     possible object is
177     *     {@link Double }
178     *     
179     */
180    public Double getBackOffMultiplier() {
181        return backOffMultiplier;
182    }
183
184    /**
185     * Sets the value of the backOffMultiplier property.
186     * 
187     * @param value
188     *     allowed object is
189     *     {@link Double }
190     *     
191     */
192    public void setBackOffMultiplier(Double value) {
193        this.backOffMultiplier = value;
194    }
195
196    /**
197     * Gets the value of the collisionAvoidancePercent property.
198     * 
199     * @return
200     *     possible object is
201     *     {@link Short }
202     *     
203     */
204    public Short getCollisionAvoidancePercent() {
205        return collisionAvoidancePercent;
206    }
207
208    /**
209     * Sets the value of the collisionAvoidancePercent property.
210     * 
211     * @param value
212     *     allowed object is
213     *     {@link Short }
214     *     
215     */
216    public void setCollisionAvoidancePercent(Short value) {
217        this.collisionAvoidancePercent = value;
218    }
219
220    /**
221     * Gets the value of the destination property.
222     * 
223     * @return
224     *     possible object is
225     *     {@link String }
226     *     
227     */
228    public String getDestination() {
229        return destination;
230    }
231
232    /**
233     * Sets the value of the destination property.
234     * 
235     * @param value
236     *     allowed object is
237     *     {@link String }
238     *     
239     */
240    public void setDestination(String value) {
241        this.destination = value;
242    }
243
244    /**
245     * Gets the value of the initialRedeliveryDelay property.
246     * 
247     * @return
248     *     possible object is
249     *     {@link Long }
250     *     
251     */
252    public Long getInitialRedeliveryDelay() {
253        return initialRedeliveryDelay;
254    }
255
256    /**
257     * Sets the value of the initialRedeliveryDelay property.
258     * 
259     * @param value
260     *     allowed object is
261     *     {@link Long }
262     *     
263     */
264    public void setInitialRedeliveryDelay(Long value) {
265        this.initialRedeliveryDelay = value;
266    }
267
268    /**
269     * Gets the value of the maximumRedeliveries property.
270     * 
271     * @return
272     *     possible object is
273     *     {@link BigInteger }
274     *     
275     */
276    public BigInteger getMaximumRedeliveries() {
277        return maximumRedeliveries;
278    }
279
280    /**
281     * Sets the value of the maximumRedeliveries property.
282     * 
283     * @param value
284     *     allowed object is
285     *     {@link BigInteger }
286     *     
287     */
288    public void setMaximumRedeliveries(BigInteger value) {
289        this.maximumRedeliveries = value;
290    }
291
292    /**
293     * Gets the value of the maximumRedeliveryDelay property.
294     * 
295     * @return
296     *     possible object is
297     *     {@link Long }
298     *     
299     */
300    public Long getMaximumRedeliveryDelay() {
301        return maximumRedeliveryDelay;
302    }
303
304    /**
305     * Sets the value of the maximumRedeliveryDelay property.
306     * 
307     * @param value
308     *     allowed object is
309     *     {@link Long }
310     *     
311     */
312    public void setMaximumRedeliveryDelay(Long value) {
313        this.maximumRedeliveryDelay = value;
314    }
315
316    /**
317     * Gets the value of the preDispatchCheck property.
318     * 
319     * @return
320     *     possible object is
321     *     {@link Boolean }
322     *     
323     */
324    public Boolean isPreDispatchCheck() {
325        return preDispatchCheck;
326    }
327
328    /**
329     * Sets the value of the preDispatchCheck property.
330     * 
331     * @param value
332     *     allowed object is
333     *     {@link Boolean }
334     *     
335     */
336    public void setPreDispatchCheck(Boolean value) {
337        this.preDispatchCheck = value;
338    }
339
340    /**
341     * Gets the value of the queue property.
342     * 
343     * @return
344     *     possible object is
345     *     {@link String }
346     *     
347     */
348    public String getQueue() {
349        return queue;
350    }
351
352    /**
353     * Sets the value of the queue property.
354     * 
355     * @param value
356     *     allowed object is
357     *     {@link String }
358     *     
359     */
360    public void setQueue(String value) {
361        this.queue = value;
362    }
363
364    /**
365     * Gets the value of the redeliveryDelay property.
366     * 
367     * @return
368     *     possible object is
369     *     {@link Long }
370     *     
371     */
372    public Long getRedeliveryDelay() {
373        return redeliveryDelay;
374    }
375
376    /**
377     * Sets the value of the redeliveryDelay property.
378     * 
379     * @param value
380     *     allowed object is
381     *     {@link Long }
382     *     
383     */
384    public void setRedeliveryDelay(Long value) {
385        this.redeliveryDelay = value;
386    }
387
388    /**
389     * Gets the value of the tempQueue property.
390     * 
391     * @return
392     *     possible object is
393     *     {@link Boolean }
394     *     
395     */
396    public Boolean isTempQueue() {
397        return tempQueue;
398    }
399
400    /**
401     * Sets the value of the tempQueue property.
402     * 
403     * @param value
404     *     allowed object is
405     *     {@link Boolean }
406     *     
407     */
408    public void setTempQueue(Boolean value) {
409        this.tempQueue = value;
410    }
411
412    /**
413     * Gets the value of the tempTopic property.
414     * 
415     * @return
416     *     possible object is
417     *     {@link Boolean }
418     *     
419     */
420    public Boolean isTempTopic() {
421        return tempTopic;
422    }
423
424    /**
425     * Sets the value of the tempTopic property.
426     * 
427     * @param value
428     *     allowed object is
429     *     {@link Boolean }
430     *     
431     */
432    public void setTempTopic(Boolean value) {
433        this.tempTopic = value;
434    }
435
436    /**
437     * Gets the value of the topic property.
438     * 
439     * @return
440     *     possible object is
441     *     {@link String }
442     *     
443     */
444    public String getTopic() {
445        return topic;
446    }
447
448    /**
449     * Sets the value of the topic property.
450     * 
451     * @param value
452     *     allowed object is
453     *     {@link String }
454     *     
455     */
456    public void setTopic(String value) {
457        this.topic = value;
458    }
459
460    /**
461     * Gets the value of the useCollisionAvoidance property.
462     * 
463     * @return
464     *     possible object is
465     *     {@link Boolean }
466     *     
467     */
468    public Boolean isUseCollisionAvoidance() {
469        return useCollisionAvoidance;
470    }
471
472    /**
473     * Sets the value of the useCollisionAvoidance property.
474     * 
475     * @param value
476     *     allowed object is
477     *     {@link Boolean }
478     *     
479     */
480    public void setUseCollisionAvoidance(Boolean value) {
481        this.useCollisionAvoidance = value;
482    }
483
484    /**
485     * Gets the value of the useExponentialBackOff property.
486     * 
487     * @return
488     *     possible object is
489     *     {@link Boolean }
490     *     
491     */
492    public Boolean isUseExponentialBackOff() {
493        return useExponentialBackOff;
494    }
495
496    /**
497     * Sets the value of the useExponentialBackOff property.
498     * 
499     * @param value
500     *     allowed object is
501     *     {@link Boolean }
502     *     
503     */
504    public void setUseExponentialBackOff(Boolean value) {
505        this.useExponentialBackOff = value;
506    }
507
508    /**
509     * Gets the value of the id property.
510     * 
511     * @return
512     *     possible object is
513     *     {@link String }
514     *     
515     */
516    public String getId() {
517        return id;
518    }
519
520    /**
521     * Sets the value of the id property.
522     * 
523     * @param value
524     *     allowed object is
525     *     {@link String }
526     *     
527     */
528    public void setId(String value) {
529        this.id = value;
530    }
531
532    /**
533     * Gets a map that contains attributes that aren't bound to any typed property on this class.
534     * 
535     * <p>
536     * the map is keyed by the name of the attribute and 
537     * the value is the string value of the attribute.
538     * 
539     * the map returned by this method is live, and you can add new attribute
540     * by updating the map directly. Because of this design, there's no setter.
541     * 
542     * 
543     * @return
544     *     always non-null
545     */
546    public Map<QName, String> getOtherAttributes() {
547        return otherAttributes;
548    }
549
550    public String toString() {
551        final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
552        final StringBuilder buffer = new StringBuilder();
553        append(null, buffer, strategy);
554        return buffer.toString();
555    }
556
557    public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
558        strategy.appendStart(locator, this, buffer);
559        appendFields(locator, buffer, strategy);
560        strategy.appendEnd(locator, this, buffer);
561        return buffer;
562    }
563
564    public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
565        {
566            List<Object> theDestinationOrAny;
567            theDestinationOrAny = (((this.destinationOrAny!= null)&&(!this.destinationOrAny.isEmpty()))?this.getDestinationOrAny():null);
568            strategy.appendField(locator, this, "destinationOrAny", buffer, theDestinationOrAny);
569        }
570        {
571            Double theBackOffMultiplier;
572            theBackOffMultiplier = this.getBackOffMultiplier();
573            strategy.appendField(locator, this, "backOffMultiplier", buffer, theBackOffMultiplier);
574        }
575        {
576            Short theCollisionAvoidancePercent;
577            theCollisionAvoidancePercent = this.getCollisionAvoidancePercent();
578            strategy.appendField(locator, this, "collisionAvoidancePercent", buffer, theCollisionAvoidancePercent);
579        }
580        {
581            String theDestination;
582            theDestination = this.getDestination();
583            strategy.appendField(locator, this, "destination", buffer, theDestination);
584        }
585        {
586            Long theInitialRedeliveryDelay;
587            theInitialRedeliveryDelay = this.getInitialRedeliveryDelay();
588            strategy.appendField(locator, this, "initialRedeliveryDelay", buffer, theInitialRedeliveryDelay);
589        }
590        {
591            BigInteger theMaximumRedeliveries;
592            theMaximumRedeliveries = this.getMaximumRedeliveries();
593            strategy.appendField(locator, this, "maximumRedeliveries", buffer, theMaximumRedeliveries);
594        }
595        {
596            Long theMaximumRedeliveryDelay;
597            theMaximumRedeliveryDelay = this.getMaximumRedeliveryDelay();
598            strategy.appendField(locator, this, "maximumRedeliveryDelay", buffer, theMaximumRedeliveryDelay);
599        }
600        {
601            Boolean thePreDispatchCheck;
602            thePreDispatchCheck = this.isPreDispatchCheck();
603            strategy.appendField(locator, this, "preDispatchCheck", buffer, thePreDispatchCheck);
604        }
605        {
606            String theQueue;
607            theQueue = this.getQueue();
608            strategy.appendField(locator, this, "queue", buffer, theQueue);
609        }
610        {
611            Long theRedeliveryDelay;
612            theRedeliveryDelay = this.getRedeliveryDelay();
613            strategy.appendField(locator, this, "redeliveryDelay", buffer, theRedeliveryDelay);
614        }
615        {
616            Boolean theTempQueue;
617            theTempQueue = this.isTempQueue();
618            strategy.appendField(locator, this, "tempQueue", buffer, theTempQueue);
619        }
620        {
621            Boolean theTempTopic;
622            theTempTopic = this.isTempTopic();
623            strategy.appendField(locator, this, "tempTopic", buffer, theTempTopic);
624        }
625        {
626            String theTopic;
627            theTopic = this.getTopic();
628            strategy.appendField(locator, this, "topic", buffer, theTopic);
629        }
630        {
631            Boolean theUseCollisionAvoidance;
632            theUseCollisionAvoidance = this.isUseCollisionAvoidance();
633            strategy.appendField(locator, this, "useCollisionAvoidance", buffer, theUseCollisionAvoidance);
634        }
635        {
636            Boolean theUseExponentialBackOff;
637            theUseExponentialBackOff = this.isUseExponentialBackOff();
638            strategy.appendField(locator, this, "useExponentialBackOff", buffer, theUseExponentialBackOff);
639        }
640        {
641            String theId;
642            theId = this.getId();
643            strategy.appendField(locator, this, "id", buffer, theId);
644        }
645        return buffer;
646    }
647
648    public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
649        int currentHashCode = 1;
650        {
651            List<Object> theDestinationOrAny;
652            theDestinationOrAny = (((this.destinationOrAny!= null)&&(!this.destinationOrAny.isEmpty()))?this.getDestinationOrAny():null);
653            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "destinationOrAny", theDestinationOrAny), currentHashCode, theDestinationOrAny);
654        }
655        {
656            Double theBackOffMultiplier;
657            theBackOffMultiplier = this.getBackOffMultiplier();
658            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "backOffMultiplier", theBackOffMultiplier), currentHashCode, theBackOffMultiplier);
659        }
660        {
661            Short theCollisionAvoidancePercent;
662            theCollisionAvoidancePercent = this.getCollisionAvoidancePercent();
663            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "collisionAvoidancePercent", theCollisionAvoidancePercent), currentHashCode, theCollisionAvoidancePercent);
664        }
665        {
666            String theDestination;
667            theDestination = this.getDestination();
668            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "destination", theDestination), currentHashCode, theDestination);
669        }
670        {
671            Long theInitialRedeliveryDelay;
672            theInitialRedeliveryDelay = this.getInitialRedeliveryDelay();
673            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "initialRedeliveryDelay", theInitialRedeliveryDelay), currentHashCode, theInitialRedeliveryDelay);
674        }
675        {
676            BigInteger theMaximumRedeliveries;
677            theMaximumRedeliveries = this.getMaximumRedeliveries();
678            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "maximumRedeliveries", theMaximumRedeliveries), currentHashCode, theMaximumRedeliveries);
679        }
680        {
681            Long theMaximumRedeliveryDelay;
682            theMaximumRedeliveryDelay = this.getMaximumRedeliveryDelay();
683            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "maximumRedeliveryDelay", theMaximumRedeliveryDelay), currentHashCode, theMaximumRedeliveryDelay);
684        }
685        {
686            Boolean thePreDispatchCheck;
687            thePreDispatchCheck = this.isPreDispatchCheck();
688            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "preDispatchCheck", thePreDispatchCheck), currentHashCode, thePreDispatchCheck);
689        }
690        {
691            String theQueue;
692            theQueue = this.getQueue();
693            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "queue", theQueue), currentHashCode, theQueue);
694        }
695        {
696            Long theRedeliveryDelay;
697            theRedeliveryDelay = this.getRedeliveryDelay();
698            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "redeliveryDelay", theRedeliveryDelay), currentHashCode, theRedeliveryDelay);
699        }
700        {
701            Boolean theTempQueue;
702            theTempQueue = this.isTempQueue();
703            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "tempQueue", theTempQueue), currentHashCode, theTempQueue);
704        }
705        {
706            Boolean theTempTopic;
707            theTempTopic = this.isTempTopic();
708            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "tempTopic", theTempTopic), currentHashCode, theTempTopic);
709        }
710        {
711            String theTopic;
712            theTopic = this.getTopic();
713            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "topic", theTopic), currentHashCode, theTopic);
714        }
715        {
716            Boolean theUseCollisionAvoidance;
717            theUseCollisionAvoidance = this.isUseCollisionAvoidance();
718            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "useCollisionAvoidance", theUseCollisionAvoidance), currentHashCode, theUseCollisionAvoidance);
719        }
720        {
721            Boolean theUseExponentialBackOff;
722            theUseExponentialBackOff = this.isUseExponentialBackOff();
723            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "useExponentialBackOff", theUseExponentialBackOff), currentHashCode, theUseExponentialBackOff);
724        }
725        {
726            String theId;
727            theId = this.getId();
728            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "id", theId), currentHashCode, theId);
729        }
730        return currentHashCode;
731    }
732
733    public int hashCode() {
734        final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
735        return this.hashCode(null, strategy);
736    }
737
738    public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
739        if (!(object instanceof DtoRedeliveryPolicy)) {
740            return false;
741        }
742        if (this == object) {
743            return true;
744        }
745        final DtoRedeliveryPolicy that = ((DtoRedeliveryPolicy) object);
746        {
747            List<Object> lhsDestinationOrAny;
748            lhsDestinationOrAny = (((this.destinationOrAny!= null)&&(!this.destinationOrAny.isEmpty()))?this.getDestinationOrAny():null);
749            List<Object> rhsDestinationOrAny;
750            rhsDestinationOrAny = (((that.destinationOrAny!= null)&&(!that.destinationOrAny.isEmpty()))?that.getDestinationOrAny():null);
751            if (!strategy.equals(LocatorUtils.property(thisLocator, "destinationOrAny", lhsDestinationOrAny), LocatorUtils.property(thatLocator, "destinationOrAny", rhsDestinationOrAny), lhsDestinationOrAny, rhsDestinationOrAny)) {
752                return false;
753            }
754        }
755        {
756            Double lhsBackOffMultiplier;
757            lhsBackOffMultiplier = this.getBackOffMultiplier();
758            Double rhsBackOffMultiplier;
759            rhsBackOffMultiplier = that.getBackOffMultiplier();
760            if (!strategy.equals(LocatorUtils.property(thisLocator, "backOffMultiplier", lhsBackOffMultiplier), LocatorUtils.property(thatLocator, "backOffMultiplier", rhsBackOffMultiplier), lhsBackOffMultiplier, rhsBackOffMultiplier)) {
761                return false;
762            }
763        }
764        {
765            Short lhsCollisionAvoidancePercent;
766            lhsCollisionAvoidancePercent = this.getCollisionAvoidancePercent();
767            Short rhsCollisionAvoidancePercent;
768            rhsCollisionAvoidancePercent = that.getCollisionAvoidancePercent();
769            if (!strategy.equals(LocatorUtils.property(thisLocator, "collisionAvoidancePercent", lhsCollisionAvoidancePercent), LocatorUtils.property(thatLocator, "collisionAvoidancePercent", rhsCollisionAvoidancePercent), lhsCollisionAvoidancePercent, rhsCollisionAvoidancePercent)) {
770                return false;
771            }
772        }
773        {
774            String lhsDestination;
775            lhsDestination = this.getDestination();
776            String rhsDestination;
777            rhsDestination = that.getDestination();
778            if (!strategy.equals(LocatorUtils.property(thisLocator, "destination", lhsDestination), LocatorUtils.property(thatLocator, "destination", rhsDestination), lhsDestination, rhsDestination)) {
779                return false;
780            }
781        }
782        {
783            Long lhsInitialRedeliveryDelay;
784            lhsInitialRedeliveryDelay = this.getInitialRedeliveryDelay();
785            Long rhsInitialRedeliveryDelay;
786            rhsInitialRedeliveryDelay = that.getInitialRedeliveryDelay();
787            if (!strategy.equals(LocatorUtils.property(thisLocator, "initialRedeliveryDelay", lhsInitialRedeliveryDelay), LocatorUtils.property(thatLocator, "initialRedeliveryDelay", rhsInitialRedeliveryDelay), lhsInitialRedeliveryDelay, rhsInitialRedeliveryDelay)) {
788                return false;
789            }
790        }
791        {
792            BigInteger lhsMaximumRedeliveries;
793            lhsMaximumRedeliveries = this.getMaximumRedeliveries();
794            BigInteger rhsMaximumRedeliveries;
795            rhsMaximumRedeliveries = that.getMaximumRedeliveries();
796            if (!strategy.equals(LocatorUtils.property(thisLocator, "maximumRedeliveries", lhsMaximumRedeliveries), LocatorUtils.property(thatLocator, "maximumRedeliveries", rhsMaximumRedeliveries), lhsMaximumRedeliveries, rhsMaximumRedeliveries)) {
797                return false;
798            }
799        }
800        {
801            Long lhsMaximumRedeliveryDelay;
802            lhsMaximumRedeliveryDelay = this.getMaximumRedeliveryDelay();
803            Long rhsMaximumRedeliveryDelay;
804            rhsMaximumRedeliveryDelay = that.getMaximumRedeliveryDelay();
805            if (!strategy.equals(LocatorUtils.property(thisLocator, "maximumRedeliveryDelay", lhsMaximumRedeliveryDelay), LocatorUtils.property(thatLocator, "maximumRedeliveryDelay", rhsMaximumRedeliveryDelay), lhsMaximumRedeliveryDelay, rhsMaximumRedeliveryDelay)) {
806                return false;
807            }
808        }
809        {
810            Boolean lhsPreDispatchCheck;
811            lhsPreDispatchCheck = this.isPreDispatchCheck();
812            Boolean rhsPreDispatchCheck;
813            rhsPreDispatchCheck = that.isPreDispatchCheck();
814            if (!strategy.equals(LocatorUtils.property(thisLocator, "preDispatchCheck", lhsPreDispatchCheck), LocatorUtils.property(thatLocator, "preDispatchCheck", rhsPreDispatchCheck), lhsPreDispatchCheck, rhsPreDispatchCheck)) {
815                return false;
816            }
817        }
818        {
819            String lhsQueue;
820            lhsQueue = this.getQueue();
821            String rhsQueue;
822            rhsQueue = that.getQueue();
823            if (!strategy.equals(LocatorUtils.property(thisLocator, "queue", lhsQueue), LocatorUtils.property(thatLocator, "queue", rhsQueue), lhsQueue, rhsQueue)) {
824                return false;
825            }
826        }
827        {
828            Long lhsRedeliveryDelay;
829            lhsRedeliveryDelay = this.getRedeliveryDelay();
830            Long rhsRedeliveryDelay;
831            rhsRedeliveryDelay = that.getRedeliveryDelay();
832            if (!strategy.equals(LocatorUtils.property(thisLocator, "redeliveryDelay", lhsRedeliveryDelay), LocatorUtils.property(thatLocator, "redeliveryDelay", rhsRedeliveryDelay), lhsRedeliveryDelay, rhsRedeliveryDelay)) {
833                return false;
834            }
835        }
836        {
837            Boolean lhsTempQueue;
838            lhsTempQueue = this.isTempQueue();
839            Boolean rhsTempQueue;
840            rhsTempQueue = that.isTempQueue();
841            if (!strategy.equals(LocatorUtils.property(thisLocator, "tempQueue", lhsTempQueue), LocatorUtils.property(thatLocator, "tempQueue", rhsTempQueue), lhsTempQueue, rhsTempQueue)) {
842                return false;
843            }
844        }
845        {
846            Boolean lhsTempTopic;
847            lhsTempTopic = this.isTempTopic();
848            Boolean rhsTempTopic;
849            rhsTempTopic = that.isTempTopic();
850            if (!strategy.equals(LocatorUtils.property(thisLocator, "tempTopic", lhsTempTopic), LocatorUtils.property(thatLocator, "tempTopic", rhsTempTopic), lhsTempTopic, rhsTempTopic)) {
851                return false;
852            }
853        }
854        {
855            String lhsTopic;
856            lhsTopic = this.getTopic();
857            String rhsTopic;
858            rhsTopic = that.getTopic();
859            if (!strategy.equals(LocatorUtils.property(thisLocator, "topic", lhsTopic), LocatorUtils.property(thatLocator, "topic", rhsTopic), lhsTopic, rhsTopic)) {
860                return false;
861            }
862        }
863        {
864            Boolean lhsUseCollisionAvoidance;
865            lhsUseCollisionAvoidance = this.isUseCollisionAvoidance();
866            Boolean rhsUseCollisionAvoidance;
867            rhsUseCollisionAvoidance = that.isUseCollisionAvoidance();
868            if (!strategy.equals(LocatorUtils.property(thisLocator, "useCollisionAvoidance", lhsUseCollisionAvoidance), LocatorUtils.property(thatLocator, "useCollisionAvoidance", rhsUseCollisionAvoidance), lhsUseCollisionAvoidance, rhsUseCollisionAvoidance)) {
869                return false;
870            }
871        }
872        {
873            Boolean lhsUseExponentialBackOff;
874            lhsUseExponentialBackOff = this.isUseExponentialBackOff();
875            Boolean rhsUseExponentialBackOff;
876            rhsUseExponentialBackOff = that.isUseExponentialBackOff();
877            if (!strategy.equals(LocatorUtils.property(thisLocator, "useExponentialBackOff", lhsUseExponentialBackOff), LocatorUtils.property(thatLocator, "useExponentialBackOff", rhsUseExponentialBackOff), lhsUseExponentialBackOff, rhsUseExponentialBackOff)) {
878                return false;
879            }
880        }
881        {
882            String lhsId;
883            lhsId = this.getId();
884            String rhsId;
885            rhsId = that.getId();
886            if (!strategy.equals(LocatorUtils.property(thisLocator, "id", lhsId), LocatorUtils.property(thatLocator, "id", rhsId), lhsId, rhsId)) {
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     * <p>Java class for anonymous complex type.
901     * 
902     * <p>The following schema fragment specifies the expected content contained within this class.
903     * 
904     * <pre>
905     * &lt;complexType>
906     *   &lt;complexContent>
907     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
908     *       &lt;choice minOccurs="0">
909     *         &lt;element ref="{http://activemq.apache.org/schema/core}queue"/>
910     *         &lt;element ref="{http://activemq.apache.org/schema/core}tempQueue"/>
911     *         &lt;element ref="{http://activemq.apache.org/schema/core}tempTopic"/>
912     *         &lt;element ref="{http://activemq.apache.org/schema/core}topic"/>
913     *         &lt;any namespace='##other'/>
914     *       &lt;/choice>
915     *     &lt;/restriction>
916     *   &lt;/complexContent>
917     * &lt;/complexType>
918     * </pre>
919     * 
920     * 
921     */
922    @XmlAccessorType(XmlAccessType.FIELD)
923    @XmlType(name = "", propOrder = {
924        "queue",
925        "tempQueue",
926        "tempTopic",
927        "topic",
928        "any"
929    })
930    public static class Destination
931        implements Equals, HashCode, ToString
932    {
933
934        protected DtoQueue queue;
935        protected DtoTempQueue tempQueue;
936        protected DtoTempTopic tempTopic;
937        protected DtoTopic topic;
938        @XmlAnyElement(lax = true)
939        protected Object any;
940
941        /**
942         * Gets the value of the queue property.
943         * 
944         * @return
945         *     possible object is
946         *     {@link DtoQueue }
947         *     
948         */
949        public DtoQueue getQueue() {
950            return queue;
951        }
952
953        /**
954         * Sets the value of the queue property.
955         * 
956         * @param value
957         *     allowed object is
958         *     {@link DtoQueue }
959         *     
960         */
961        public void setQueue(DtoQueue value) {
962            this.queue = value;
963        }
964
965        /**
966         * Gets the value of the tempQueue property.
967         * 
968         * @return
969         *     possible object is
970         *     {@link DtoTempQueue }
971         *     
972         */
973        public DtoTempQueue getTempQueue() {
974            return tempQueue;
975        }
976
977        /**
978         * Sets the value of the tempQueue property.
979         * 
980         * @param value
981         *     allowed object is
982         *     {@link DtoTempQueue }
983         *     
984         */
985        public void setTempQueue(DtoTempQueue value) {
986            this.tempQueue = value;
987        }
988
989        /**
990         * Gets the value of the tempTopic property.
991         * 
992         * @return
993         *     possible object is
994         *     {@link DtoTempTopic }
995         *     
996         */
997        public DtoTempTopic getTempTopic() {
998            return tempTopic;
999        }
1000
1001        /**
1002         * Sets the value of the tempTopic property.
1003         * 
1004         * @param value
1005         *     allowed object is
1006         *     {@link DtoTempTopic }
1007         *     
1008         */
1009        public void setTempTopic(DtoTempTopic value) {
1010            this.tempTopic = value;
1011        }
1012
1013        /**
1014         * Gets the value of the topic property.
1015         * 
1016         * @return
1017         *     possible object is
1018         *     {@link DtoTopic }
1019         *     
1020         */
1021        public DtoTopic getTopic() {
1022            return topic;
1023        }
1024
1025        /**
1026         * Sets the value of the topic property.
1027         * 
1028         * @param value
1029         *     allowed object is
1030         *     {@link DtoTopic }
1031         *     
1032         */
1033        public void setTopic(DtoTopic value) {
1034            this.topic = value;
1035        }
1036
1037        /**
1038         * Gets the value of the any property.
1039         * 
1040         * @return
1041         *     possible object is
1042         *     {@link Object }
1043         *     
1044         */
1045        public Object getAny() {
1046            return any;
1047        }
1048
1049        /**
1050         * Sets the value of the any property.
1051         * 
1052         * @param value
1053         *     allowed object is
1054         *     {@link Object }
1055         *     
1056         */
1057        public void setAny(Object value) {
1058            this.any = value;
1059        }
1060
1061        public String toString() {
1062            final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
1063            final StringBuilder buffer = new StringBuilder();
1064            append(null, buffer, strategy);
1065            return buffer.toString();
1066        }
1067
1068        public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
1069            strategy.appendStart(locator, this, buffer);
1070            appendFields(locator, buffer, strategy);
1071            strategy.appendEnd(locator, this, buffer);
1072            return buffer;
1073        }
1074
1075        public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
1076            {
1077                DtoQueue theQueue;
1078                theQueue = this.getQueue();
1079                strategy.appendField(locator, this, "queue", buffer, theQueue);
1080            }
1081            {
1082                DtoTempQueue theTempQueue;
1083                theTempQueue = this.getTempQueue();
1084                strategy.appendField(locator, this, "tempQueue", buffer, theTempQueue);
1085            }
1086            {
1087                DtoTempTopic theTempTopic;
1088                theTempTopic = this.getTempTopic();
1089                strategy.appendField(locator, this, "tempTopic", buffer, theTempTopic);
1090            }
1091            {
1092                DtoTopic theTopic;
1093                theTopic = this.getTopic();
1094                strategy.appendField(locator, this, "topic", buffer, theTopic);
1095            }
1096            {
1097                Object theAny;
1098                theAny = this.getAny();
1099                strategy.appendField(locator, this, "any", buffer, theAny);
1100            }
1101            return buffer;
1102        }
1103
1104        public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
1105            int currentHashCode = 1;
1106            {
1107                DtoQueue theQueue;
1108                theQueue = this.getQueue();
1109                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "queue", theQueue), currentHashCode, theQueue);
1110            }
1111            {
1112                DtoTempQueue theTempQueue;
1113                theTempQueue = this.getTempQueue();
1114                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "tempQueue", theTempQueue), currentHashCode, theTempQueue);
1115            }
1116            {
1117                DtoTempTopic theTempTopic;
1118                theTempTopic = this.getTempTopic();
1119                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "tempTopic", theTempTopic), currentHashCode, theTempTopic);
1120            }
1121            {
1122                DtoTopic theTopic;
1123                theTopic = this.getTopic();
1124                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "topic", theTopic), currentHashCode, theTopic);
1125            }
1126            {
1127                Object theAny;
1128                theAny = this.getAny();
1129                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
1130            }
1131            return currentHashCode;
1132        }
1133
1134        public int hashCode() {
1135            final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
1136            return this.hashCode(null, strategy);
1137        }
1138
1139        public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
1140            if (!(object instanceof DtoRedeliveryPolicy.Destination)) {
1141                return false;
1142            }
1143            if (this == object) {
1144                return true;
1145            }
1146            final DtoRedeliveryPolicy.Destination that = ((DtoRedeliveryPolicy.Destination) object);
1147            {
1148                DtoQueue lhsQueue;
1149                lhsQueue = this.getQueue();
1150                DtoQueue rhsQueue;
1151                rhsQueue = that.getQueue();
1152                if (!strategy.equals(LocatorUtils.property(thisLocator, "queue", lhsQueue), LocatorUtils.property(thatLocator, "queue", rhsQueue), lhsQueue, rhsQueue)) {
1153                    return false;
1154                }
1155            }
1156            {
1157                DtoTempQueue lhsTempQueue;
1158                lhsTempQueue = this.getTempQueue();
1159                DtoTempQueue rhsTempQueue;
1160                rhsTempQueue = that.getTempQueue();
1161                if (!strategy.equals(LocatorUtils.property(thisLocator, "tempQueue", lhsTempQueue), LocatorUtils.property(thatLocator, "tempQueue", rhsTempQueue), lhsTempQueue, rhsTempQueue)) {
1162                    return false;
1163                }
1164            }
1165            {
1166                DtoTempTopic lhsTempTopic;
1167                lhsTempTopic = this.getTempTopic();
1168                DtoTempTopic rhsTempTopic;
1169                rhsTempTopic = that.getTempTopic();
1170                if (!strategy.equals(LocatorUtils.property(thisLocator, "tempTopic", lhsTempTopic), LocatorUtils.property(thatLocator, "tempTopic", rhsTempTopic), lhsTempTopic, rhsTempTopic)) {
1171                    return false;
1172                }
1173            }
1174            {
1175                DtoTopic lhsTopic;
1176                lhsTopic = this.getTopic();
1177                DtoTopic rhsTopic;
1178                rhsTopic = that.getTopic();
1179                if (!strategy.equals(LocatorUtils.property(thisLocator, "topic", lhsTopic), LocatorUtils.property(thatLocator, "topic", rhsTopic), lhsTopic, rhsTopic)) {
1180                    return false;
1181                }
1182            }
1183            {
1184                Object lhsAny;
1185                lhsAny = this.getAny();
1186                Object rhsAny;
1187                rhsAny = that.getAny();
1188                if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
1189                    return false;
1190                }
1191            }
1192            return true;
1193        }
1194
1195        public boolean equals(Object object) {
1196            final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
1197            return equals(null, null, object, strategy);
1198        }
1199
1200    }
1201
1202}