001    //
002    // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.6 
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: 2013.10.14 at 11:56:49 PM IST 
006    //
007    
008    
009    package org.apache.activemq.schema.core;
010    
011    import java.math.BigInteger;
012    import java.util.ArrayList;
013    import java.util.HashMap;
014    import java.util.List;
015    import java.util.Map;
016    import javax.xml.bind.JAXBElement;
017    import javax.xml.bind.annotation.XmlAccessType;
018    import javax.xml.bind.annotation.XmlAccessorType;
019    import javax.xml.bind.annotation.XmlAnyAttribute;
020    import javax.xml.bind.annotation.XmlAnyElement;
021    import javax.xml.bind.annotation.XmlAttribute;
022    import javax.xml.bind.annotation.XmlElementRef;
023    import javax.xml.bind.annotation.XmlElementRefs;
024    import javax.xml.bind.annotation.XmlID;
025    import javax.xml.bind.annotation.XmlRootElement;
026    import javax.xml.bind.annotation.XmlSchemaType;
027    import javax.xml.bind.annotation.XmlType;
028    import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
029    import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
030    import javax.xml.namespace.QName;
031    import org.jvnet.jaxb2_commons.lang.Equals;
032    import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
033    import org.jvnet.jaxb2_commons.lang.HashCode;
034    import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
035    import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
036    import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
037    import org.jvnet.jaxb2_commons.lang.ToString;
038    import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
039    import org.jvnet.jaxb2_commons.locator.ObjectLocator;
040    import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
041    
042    
043    /**
044     * <p>Java class for anonymous complex type.
045     * 
046     * <p>The following schema fragment specifies the expected content contained within this class.
047     * 
048     * <pre>
049     * &lt;complexType>
050     *   &lt;complexContent>
051     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
052     *       &lt;choice maxOccurs="unbounded" minOccurs="0">
053     *         &lt;choice>
054     *           &lt;element name="dataSource" minOccurs="0">
055     *             &lt;complexType>
056     *               &lt;complexContent>
057     *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
058     *                   &lt;sequence minOccurs="0">
059     *                     &lt;any maxOccurs="unbounded" minOccurs="0"/>
060     *                   &lt;/sequence>
061     *                 &lt;/restriction>
062     *               &lt;/complexContent>
063     *             &lt;/complexType>
064     *           &lt;/element>
065     *           &lt;element name="exceptionHandler" minOccurs="0">
066     *             &lt;complexType>
067     *               &lt;complexContent>
068     *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
069     *                   &lt;sequence minOccurs="0">
070     *                     &lt;any maxOccurs="unbounded" minOccurs="0"/>
071     *                   &lt;/sequence>
072     *                 &lt;/restriction>
073     *               &lt;/complexContent>
074     *             &lt;/complexType>
075     *           &lt;/element>
076     *           &lt;element name="lockable" minOccurs="0">
077     *             &lt;complexType>
078     *               &lt;complexContent>
079     *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
080     *                   &lt;choice minOccurs="0">
081     *                     &lt;element ref="{http://activemq.apache.org/schema/core}jdbcPersistenceAdapter"/>
082     *                     &lt;element ref="{http://activemq.apache.org/schema/core}journalPersistenceAdapterFactory"/>
083     *                     &lt;element ref="{http://activemq.apache.org/schema/core}journaledJDBC"/>
084     *                     &lt;element ref="{http://activemq.apache.org/schema/core}kahaDB"/>
085     *                     &lt;element ref="{http://activemq.apache.org/schema/core}levelDB"/>
086     *                     &lt;element ref="{http://activemq.apache.org/schema/core}mKahaDB"/>
087     *                     &lt;element ref="{http://activemq.apache.org/schema/core}replicatedLevelDB"/>
088     *                     &lt;any namespace='##other'/>
089     *                   &lt;/choice>
090     *                 &lt;/restriction>
091     *               &lt;/complexContent>
092     *             &lt;/complexType>
093     *           &lt;/element>
094     *           &lt;element name="statements" minOccurs="0">
095     *             &lt;complexType>
096     *               &lt;complexContent>
097     *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
098     *                   &lt;choice minOccurs="0">
099     *                     &lt;element ref="{http://activemq.apache.org/schema/core}statements"/>
100     *                     &lt;any namespace='##other'/>
101     *                   &lt;/choice>
102     *                 &lt;/restriction>
103     *               &lt;/complexContent>
104     *             &lt;/complexType>
105     *           &lt;/element>
106     *           &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
107     *         &lt;/choice>
108     *       &lt;/choice>
109     *       &lt;attribute name="createTablesOnStartup" type="{http://www.w3.org/2001/XMLSchema}boolean" />
110     *       &lt;attribute name="dataSource" type="{http://www.w3.org/2001/XMLSchema}string" />
111     *       &lt;attribute name="exceptionHandler" type="{http://www.w3.org/2001/XMLSchema}string" />
112     *       &lt;attribute name="failIfLocked" type="{http://www.w3.org/2001/XMLSchema}boolean" />
113     *       &lt;attribute name="lockAcquireSleepInterval" type="{http://www.w3.org/2001/XMLSchema}long" />
114     *       &lt;attribute name="lockable" type="{http://www.w3.org/2001/XMLSchema}string" />
115     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
116     *       &lt;attribute name="queryTimeout" type="{http://www.w3.org/2001/XMLSchema}integer" />
117     *       &lt;attribute name="statements" type="{http://www.w3.org/2001/XMLSchema}string" />
118     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
119     *       &lt;anyAttribute processContents='lax' namespace='##other'/>
120     *     &lt;/restriction>
121     *   &lt;/complexContent>
122     * &lt;/complexType>
123     * </pre>
124     * 
125     * 
126     */
127    @XmlAccessorType(XmlAccessType.FIELD)
128    @XmlType(name = "", propOrder = {
129        "dataSourceOrExceptionHandlerOrLockable"
130    })
131    @XmlRootElement(name = "transact-database-locker")
132    public class DtoTransactDatabaseLocker implements Equals, HashCode, ToString
133    {
134    
135        @XmlElementRefs({
136            @XmlElementRef(name = "exceptionHandler", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class),
137            @XmlElementRef(name = "lockable", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class),
138            @XmlElementRef(name = "dataSource", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class),
139            @XmlElementRef(name = "statements", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class)
140        })
141        @XmlAnyElement(lax = true)
142        protected List<Object> dataSourceOrExceptionHandlerOrLockable;
143        @XmlAttribute(name = "createTablesOnStartup")
144        protected Boolean createTablesOnStartup;
145        @XmlAttribute(name = "dataSource")
146        protected String dataSource;
147        @XmlAttribute(name = "exceptionHandler")
148        protected String exceptionHandler;
149        @XmlAttribute(name = "failIfLocked")
150        protected Boolean failIfLocked;
151        @XmlAttribute(name = "lockAcquireSleepInterval")
152        protected Long lockAcquireSleepInterval;
153        @XmlAttribute(name = "lockable")
154        protected String lockable;
155        @XmlAttribute(name = "name")
156        protected String name;
157        @XmlAttribute(name = "queryTimeout")
158        protected BigInteger queryTimeout;
159        @XmlAttribute(name = "statements")
160        protected String statements;
161        @XmlAttribute(name = "id")
162        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
163        @XmlID
164        @XmlSchemaType(name = "ID")
165        protected String id;
166        @XmlAnyAttribute
167        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
168    
169        /**
170         * Gets the value of the dataSourceOrExceptionHandlerOrLockable property.
171         * 
172         * <p>
173         * This accessor method returns a reference to the live list,
174         * not a snapshot. Therefore any modification you make to the
175         * returned list will be present inside the JAXB object.
176         * This is why there is not a <CODE>set</CODE> method for the dataSourceOrExceptionHandlerOrLockable property.
177         * 
178         * <p>
179         * For example, to add a new item, do as follows:
180         * <pre>
181         *    getDataSourceOrExceptionHandlerOrLockable().add(newItem);
182         * </pre>
183         * 
184         * 
185         * <p>
186         * Objects of the following type(s) are allowed in the list
187         * {@link JAXBElement }{@code <}{@link DtoTransactDatabaseLocker.ExceptionHandler }{@code >}
188         * {@link JAXBElement }{@code <}{@link DtoTransactDatabaseLocker.Lockable }{@code >}
189         * {@link JAXBElement }{@code <}{@link DtoTransactDatabaseLocker.DataSource }{@code >}
190         * {@link JAXBElement }{@code <}{@link DtoTransactDatabaseLocker.Statements }{@code >}
191         * {@link Object }
192         * 
193         * 
194         */
195        public List<Object> getDataSourceOrExceptionHandlerOrLockable() {
196            if (dataSourceOrExceptionHandlerOrLockable == null) {
197                dataSourceOrExceptionHandlerOrLockable = new ArrayList<Object>();
198            }
199            return this.dataSourceOrExceptionHandlerOrLockable;
200        }
201    
202        /**
203         * Gets the value of the createTablesOnStartup property.
204         * 
205         * @return
206         *     possible object is
207         *     {@link Boolean }
208         *     
209         */
210        public Boolean isCreateTablesOnStartup() {
211            return createTablesOnStartup;
212        }
213    
214        /**
215         * Sets the value of the createTablesOnStartup property.
216         * 
217         * @param value
218         *     allowed object is
219         *     {@link Boolean }
220         *     
221         */
222        public void setCreateTablesOnStartup(Boolean value) {
223            this.createTablesOnStartup = value;
224        }
225    
226        /**
227         * Gets the value of the dataSource property.
228         * 
229         * @return
230         *     possible object is
231         *     {@link String }
232         *     
233         */
234        public String getDataSource() {
235            return dataSource;
236        }
237    
238        /**
239         * Sets the value of the dataSource property.
240         * 
241         * @param value
242         *     allowed object is
243         *     {@link String }
244         *     
245         */
246        public void setDataSource(String value) {
247            this.dataSource = value;
248        }
249    
250        /**
251         * Gets the value of the exceptionHandler property.
252         * 
253         * @return
254         *     possible object is
255         *     {@link String }
256         *     
257         */
258        public String getExceptionHandler() {
259            return exceptionHandler;
260        }
261    
262        /**
263         * Sets the value of the exceptionHandler property.
264         * 
265         * @param value
266         *     allowed object is
267         *     {@link String }
268         *     
269         */
270        public void setExceptionHandler(String value) {
271            this.exceptionHandler = value;
272        }
273    
274        /**
275         * Gets the value of the failIfLocked property.
276         * 
277         * @return
278         *     possible object is
279         *     {@link Boolean }
280         *     
281         */
282        public Boolean isFailIfLocked() {
283            return failIfLocked;
284        }
285    
286        /**
287         * Sets the value of the failIfLocked property.
288         * 
289         * @param value
290         *     allowed object is
291         *     {@link Boolean }
292         *     
293         */
294        public void setFailIfLocked(Boolean value) {
295            this.failIfLocked = value;
296        }
297    
298        /**
299         * Gets the value of the lockAcquireSleepInterval property.
300         * 
301         * @return
302         *     possible object is
303         *     {@link Long }
304         *     
305         */
306        public Long getLockAcquireSleepInterval() {
307            return lockAcquireSleepInterval;
308        }
309    
310        /**
311         * Sets the value of the lockAcquireSleepInterval property.
312         * 
313         * @param value
314         *     allowed object is
315         *     {@link Long }
316         *     
317         */
318        public void setLockAcquireSleepInterval(Long value) {
319            this.lockAcquireSleepInterval = value;
320        }
321    
322        /**
323         * Gets the value of the lockable property.
324         * 
325         * @return
326         *     possible object is
327         *     {@link String }
328         *     
329         */
330        public String getLockable() {
331            return lockable;
332        }
333    
334        /**
335         * Sets the value of the lockable property.
336         * 
337         * @param value
338         *     allowed object is
339         *     {@link String }
340         *     
341         */
342        public void setLockable(String value) {
343            this.lockable = value;
344        }
345    
346        /**
347         * Gets the value of the name property.
348         * 
349         * @return
350         *     possible object is
351         *     {@link String }
352         *     
353         */
354        public String getName() {
355            return name;
356        }
357    
358        /**
359         * Sets the value of the name property.
360         * 
361         * @param value
362         *     allowed object is
363         *     {@link String }
364         *     
365         */
366        public void setName(String value) {
367            this.name = value;
368        }
369    
370        /**
371         * Gets the value of the queryTimeout property.
372         * 
373         * @return
374         *     possible object is
375         *     {@link BigInteger }
376         *     
377         */
378        public BigInteger getQueryTimeout() {
379            return queryTimeout;
380        }
381    
382        /**
383         * Sets the value of the queryTimeout property.
384         * 
385         * @param value
386         *     allowed object is
387         *     {@link BigInteger }
388         *     
389         */
390        public void setQueryTimeout(BigInteger value) {
391            this.queryTimeout = value;
392        }
393    
394        /**
395         * Gets the value of the statements property.
396         * 
397         * @return
398         *     possible object is
399         *     {@link String }
400         *     
401         */
402        public String getStatements() {
403            return statements;
404        }
405    
406        /**
407         * Sets the value of the statements property.
408         * 
409         * @param value
410         *     allowed object is
411         *     {@link String }
412         *     
413         */
414        public void setStatements(String value) {
415            this.statements = value;
416        }
417    
418        /**
419         * Gets the value of the id property.
420         * 
421         * @return
422         *     possible object is
423         *     {@link String }
424         *     
425         */
426        public String getId() {
427            return id;
428        }
429    
430        /**
431         * Sets the value of the id property.
432         * 
433         * @param value
434         *     allowed object is
435         *     {@link String }
436         *     
437         */
438        public void setId(String value) {
439            this.id = value;
440        }
441    
442        /**
443         * Gets a map that contains attributes that aren't bound to any typed property on this class.
444         * 
445         * <p>
446         * the map is keyed by the name of the attribute and 
447         * the value is the string value of the attribute.
448         * 
449         * the map returned by this method is live, and you can add new attribute
450         * by updating the map directly. Because of this design, there's no setter.
451         * 
452         * 
453         * @return
454         *     always non-null
455         */
456        public Map<QName, String> getOtherAttributes() {
457            return otherAttributes;
458        }
459    
460        public String toString() {
461            final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
462            final StringBuilder buffer = new StringBuilder();
463            append(null, buffer, strategy);
464            return buffer.toString();
465        }
466    
467        public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
468            strategy.appendStart(locator, this, buffer);
469            appendFields(locator, buffer, strategy);
470            strategy.appendEnd(locator, this, buffer);
471            return buffer;
472        }
473    
474        public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
475            {
476                List<Object> theDataSourceOrExceptionHandlerOrLockable;
477                theDataSourceOrExceptionHandlerOrLockable = (((this.dataSourceOrExceptionHandlerOrLockable!= null)&&(!this.dataSourceOrExceptionHandlerOrLockable.isEmpty()))?this.getDataSourceOrExceptionHandlerOrLockable():null);
478                strategy.appendField(locator, this, "dataSourceOrExceptionHandlerOrLockable", buffer, theDataSourceOrExceptionHandlerOrLockable);
479            }
480            {
481                Boolean theCreateTablesOnStartup;
482                theCreateTablesOnStartup = this.isCreateTablesOnStartup();
483                strategy.appendField(locator, this, "createTablesOnStartup", buffer, theCreateTablesOnStartup);
484            }
485            {
486                String theDataSource;
487                theDataSource = this.getDataSource();
488                strategy.appendField(locator, this, "dataSource", buffer, theDataSource);
489            }
490            {
491                String theExceptionHandler;
492                theExceptionHandler = this.getExceptionHandler();
493                strategy.appendField(locator, this, "exceptionHandler", buffer, theExceptionHandler);
494            }
495            {
496                Boolean theFailIfLocked;
497                theFailIfLocked = this.isFailIfLocked();
498                strategy.appendField(locator, this, "failIfLocked", buffer, theFailIfLocked);
499            }
500            {
501                Long theLockAcquireSleepInterval;
502                theLockAcquireSleepInterval = this.getLockAcquireSleepInterval();
503                strategy.appendField(locator, this, "lockAcquireSleepInterval", buffer, theLockAcquireSleepInterval);
504            }
505            {
506                String theLockable;
507                theLockable = this.getLockable();
508                strategy.appendField(locator, this, "lockable", buffer, theLockable);
509            }
510            {
511                String theName;
512                theName = this.getName();
513                strategy.appendField(locator, this, "name", buffer, theName);
514            }
515            {
516                BigInteger theQueryTimeout;
517                theQueryTimeout = this.getQueryTimeout();
518                strategy.appendField(locator, this, "queryTimeout", buffer, theQueryTimeout);
519            }
520            {
521                String theStatements;
522                theStatements = this.getStatements();
523                strategy.appendField(locator, this, "statements", buffer, theStatements);
524            }
525            {
526                String theId;
527                theId = this.getId();
528                strategy.appendField(locator, this, "id", buffer, theId);
529            }
530            return buffer;
531        }
532    
533        public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
534            int currentHashCode = 1;
535            {
536                List<Object> theDataSourceOrExceptionHandlerOrLockable;
537                theDataSourceOrExceptionHandlerOrLockable = (((this.dataSourceOrExceptionHandlerOrLockable!= null)&&(!this.dataSourceOrExceptionHandlerOrLockable.isEmpty()))?this.getDataSourceOrExceptionHandlerOrLockable():null);
538                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "dataSourceOrExceptionHandlerOrLockable", theDataSourceOrExceptionHandlerOrLockable), currentHashCode, theDataSourceOrExceptionHandlerOrLockable);
539            }
540            {
541                Boolean theCreateTablesOnStartup;
542                theCreateTablesOnStartup = this.isCreateTablesOnStartup();
543                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "createTablesOnStartup", theCreateTablesOnStartup), currentHashCode, theCreateTablesOnStartup);
544            }
545            {
546                String theDataSource;
547                theDataSource = this.getDataSource();
548                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "dataSource", theDataSource), currentHashCode, theDataSource);
549            }
550            {
551                String theExceptionHandler;
552                theExceptionHandler = this.getExceptionHandler();
553                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "exceptionHandler", theExceptionHandler), currentHashCode, theExceptionHandler);
554            }
555            {
556                Boolean theFailIfLocked;
557                theFailIfLocked = this.isFailIfLocked();
558                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "failIfLocked", theFailIfLocked), currentHashCode, theFailIfLocked);
559            }
560            {
561                Long theLockAcquireSleepInterval;
562                theLockAcquireSleepInterval = this.getLockAcquireSleepInterval();
563                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "lockAcquireSleepInterval", theLockAcquireSleepInterval), currentHashCode, theLockAcquireSleepInterval);
564            }
565            {
566                String theLockable;
567                theLockable = this.getLockable();
568                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "lockable", theLockable), currentHashCode, theLockable);
569            }
570            {
571                String theName;
572                theName = this.getName();
573                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "name", theName), currentHashCode, theName);
574            }
575            {
576                BigInteger theQueryTimeout;
577                theQueryTimeout = this.getQueryTimeout();
578                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "queryTimeout", theQueryTimeout), currentHashCode, theQueryTimeout);
579            }
580            {
581                String theStatements;
582                theStatements = this.getStatements();
583                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "statements", theStatements), currentHashCode, theStatements);
584            }
585            {
586                String theId;
587                theId = this.getId();
588                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "id", theId), currentHashCode, theId);
589            }
590            return currentHashCode;
591        }
592    
593        public int hashCode() {
594            final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
595            return this.hashCode(null, strategy);
596        }
597    
598        public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
599            if (!(object instanceof DtoTransactDatabaseLocker)) {
600                return false;
601            }
602            if (this == object) {
603                return true;
604            }
605            final DtoTransactDatabaseLocker that = ((DtoTransactDatabaseLocker) object);
606            {
607                List<Object> lhsDataSourceOrExceptionHandlerOrLockable;
608                lhsDataSourceOrExceptionHandlerOrLockable = (((this.dataSourceOrExceptionHandlerOrLockable!= null)&&(!this.dataSourceOrExceptionHandlerOrLockable.isEmpty()))?this.getDataSourceOrExceptionHandlerOrLockable():null);
609                List<Object> rhsDataSourceOrExceptionHandlerOrLockable;
610                rhsDataSourceOrExceptionHandlerOrLockable = (((that.dataSourceOrExceptionHandlerOrLockable!= null)&&(!that.dataSourceOrExceptionHandlerOrLockable.isEmpty()))?that.getDataSourceOrExceptionHandlerOrLockable():null);
611                if (!strategy.equals(LocatorUtils.property(thisLocator, "dataSourceOrExceptionHandlerOrLockable", lhsDataSourceOrExceptionHandlerOrLockable), LocatorUtils.property(thatLocator, "dataSourceOrExceptionHandlerOrLockable", rhsDataSourceOrExceptionHandlerOrLockable), lhsDataSourceOrExceptionHandlerOrLockable, rhsDataSourceOrExceptionHandlerOrLockable)) {
612                    return false;
613                }
614            }
615            {
616                Boolean lhsCreateTablesOnStartup;
617                lhsCreateTablesOnStartup = this.isCreateTablesOnStartup();
618                Boolean rhsCreateTablesOnStartup;
619                rhsCreateTablesOnStartup = that.isCreateTablesOnStartup();
620                if (!strategy.equals(LocatorUtils.property(thisLocator, "createTablesOnStartup", lhsCreateTablesOnStartup), LocatorUtils.property(thatLocator, "createTablesOnStartup", rhsCreateTablesOnStartup), lhsCreateTablesOnStartup, rhsCreateTablesOnStartup)) {
621                    return false;
622                }
623            }
624            {
625                String lhsDataSource;
626                lhsDataSource = this.getDataSource();
627                String rhsDataSource;
628                rhsDataSource = that.getDataSource();
629                if (!strategy.equals(LocatorUtils.property(thisLocator, "dataSource", lhsDataSource), LocatorUtils.property(thatLocator, "dataSource", rhsDataSource), lhsDataSource, rhsDataSource)) {
630                    return false;
631                }
632            }
633            {
634                String lhsExceptionHandler;
635                lhsExceptionHandler = this.getExceptionHandler();
636                String rhsExceptionHandler;
637                rhsExceptionHandler = that.getExceptionHandler();
638                if (!strategy.equals(LocatorUtils.property(thisLocator, "exceptionHandler", lhsExceptionHandler), LocatorUtils.property(thatLocator, "exceptionHandler", rhsExceptionHandler), lhsExceptionHandler, rhsExceptionHandler)) {
639                    return false;
640                }
641            }
642            {
643                Boolean lhsFailIfLocked;
644                lhsFailIfLocked = this.isFailIfLocked();
645                Boolean rhsFailIfLocked;
646                rhsFailIfLocked = that.isFailIfLocked();
647                if (!strategy.equals(LocatorUtils.property(thisLocator, "failIfLocked", lhsFailIfLocked), LocatorUtils.property(thatLocator, "failIfLocked", rhsFailIfLocked), lhsFailIfLocked, rhsFailIfLocked)) {
648                    return false;
649                }
650            }
651            {
652                Long lhsLockAcquireSleepInterval;
653                lhsLockAcquireSleepInterval = this.getLockAcquireSleepInterval();
654                Long rhsLockAcquireSleepInterval;
655                rhsLockAcquireSleepInterval = that.getLockAcquireSleepInterval();
656                if (!strategy.equals(LocatorUtils.property(thisLocator, "lockAcquireSleepInterval", lhsLockAcquireSleepInterval), LocatorUtils.property(thatLocator, "lockAcquireSleepInterval", rhsLockAcquireSleepInterval), lhsLockAcquireSleepInterval, rhsLockAcquireSleepInterval)) {
657                    return false;
658                }
659            }
660            {
661                String lhsLockable;
662                lhsLockable = this.getLockable();
663                String rhsLockable;
664                rhsLockable = that.getLockable();
665                if (!strategy.equals(LocatorUtils.property(thisLocator, "lockable", lhsLockable), LocatorUtils.property(thatLocator, "lockable", rhsLockable), lhsLockable, rhsLockable)) {
666                    return false;
667                }
668            }
669            {
670                String lhsName;
671                lhsName = this.getName();
672                String rhsName;
673                rhsName = that.getName();
674                if (!strategy.equals(LocatorUtils.property(thisLocator, "name", lhsName), LocatorUtils.property(thatLocator, "name", rhsName), lhsName, rhsName)) {
675                    return false;
676                }
677            }
678            {
679                BigInteger lhsQueryTimeout;
680                lhsQueryTimeout = this.getQueryTimeout();
681                BigInteger rhsQueryTimeout;
682                rhsQueryTimeout = that.getQueryTimeout();
683                if (!strategy.equals(LocatorUtils.property(thisLocator, "queryTimeout", lhsQueryTimeout), LocatorUtils.property(thatLocator, "queryTimeout", rhsQueryTimeout), lhsQueryTimeout, rhsQueryTimeout)) {
684                    return false;
685                }
686            }
687            {
688                String lhsStatements;
689                lhsStatements = this.getStatements();
690                String rhsStatements;
691                rhsStatements = that.getStatements();
692                if (!strategy.equals(LocatorUtils.property(thisLocator, "statements", lhsStatements), LocatorUtils.property(thatLocator, "statements", rhsStatements), lhsStatements, rhsStatements)) {
693                    return false;
694                }
695            }
696            {
697                String lhsId;
698                lhsId = this.getId();
699                String rhsId;
700                rhsId = that.getId();
701                if (!strategy.equals(LocatorUtils.property(thisLocator, "id", lhsId), LocatorUtils.property(thatLocator, "id", rhsId), lhsId, rhsId)) {
702                    return false;
703                }
704            }
705            return true;
706        }
707    
708        public boolean equals(Object object) {
709            final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
710            return equals(null, null, object, strategy);
711        }
712    
713    
714        /**
715         * <p>Java class for anonymous complex type.
716         * 
717         * <p>The following schema fragment specifies the expected content contained within this class.
718         * 
719         * <pre>
720         * &lt;complexType>
721         *   &lt;complexContent>
722         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
723         *       &lt;sequence minOccurs="0">
724         *         &lt;any maxOccurs="unbounded" minOccurs="0"/>
725         *       &lt;/sequence>
726         *     &lt;/restriction>
727         *   &lt;/complexContent>
728         * &lt;/complexType>
729         * </pre>
730         * 
731         * 
732         */
733        @XmlAccessorType(XmlAccessType.FIELD)
734        @XmlType(name = "", propOrder = {
735            "any"
736        })
737        public static class DataSource
738            implements Equals, HashCode, ToString
739        {
740    
741            @XmlAnyElement(lax = true)
742            protected List<Object> any;
743    
744            /**
745             * Gets the value of the any property.
746             * 
747             * <p>
748             * This accessor method returns a reference to the live list,
749             * not a snapshot. Therefore any modification you make to the
750             * returned list will be present inside the JAXB object.
751             * This is why there is not a <CODE>set</CODE> method for the any property.
752             * 
753             * <p>
754             * For example, to add a new item, do as follows:
755             * <pre>
756             *    getAny().add(newItem);
757             * </pre>
758             * 
759             * 
760             * <p>
761             * Objects of the following type(s) are allowed in the list
762             * {@link Object }
763             * 
764             * 
765             */
766            public List<Object> getAny() {
767                if (any == null) {
768                    any = new ArrayList<Object>();
769                }
770                return this.any;
771            }
772    
773            public String toString() {
774                final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
775                final StringBuilder buffer = new StringBuilder();
776                append(null, buffer, strategy);
777                return buffer.toString();
778            }
779    
780            public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
781                strategy.appendStart(locator, this, buffer);
782                appendFields(locator, buffer, strategy);
783                strategy.appendEnd(locator, this, buffer);
784                return buffer;
785            }
786    
787            public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
788                {
789                    List<Object> theAny;
790                    theAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
791                    strategy.appendField(locator, this, "any", buffer, theAny);
792                }
793                return buffer;
794            }
795    
796            public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
797                int currentHashCode = 1;
798                {
799                    List<Object> theAny;
800                    theAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
801                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
802                }
803                return currentHashCode;
804            }
805    
806            public int hashCode() {
807                final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
808                return this.hashCode(null, strategy);
809            }
810    
811            public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
812                if (!(object instanceof DtoTransactDatabaseLocker.DataSource)) {
813                    return false;
814                }
815                if (this == object) {
816                    return true;
817                }
818                final DtoTransactDatabaseLocker.DataSource that = ((DtoTransactDatabaseLocker.DataSource) object);
819                {
820                    List<Object> lhsAny;
821                    lhsAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
822                    List<Object> rhsAny;
823                    rhsAny = (((that.any!= null)&&(!that.any.isEmpty()))?that.getAny():null);
824                    if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
825                        return false;
826                    }
827                }
828                return true;
829            }
830    
831            public boolean equals(Object object) {
832                final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
833                return equals(null, null, object, strategy);
834            }
835    
836        }
837    
838    
839        /**
840         * <p>Java class for anonymous complex type.
841         * 
842         * <p>The following schema fragment specifies the expected content contained within this class.
843         * 
844         * <pre>
845         * &lt;complexType>
846         *   &lt;complexContent>
847         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
848         *       &lt;sequence minOccurs="0">
849         *         &lt;any maxOccurs="unbounded" minOccurs="0"/>
850         *       &lt;/sequence>
851         *     &lt;/restriction>
852         *   &lt;/complexContent>
853         * &lt;/complexType>
854         * </pre>
855         * 
856         * 
857         */
858        @XmlAccessorType(XmlAccessType.FIELD)
859        @XmlType(name = "", propOrder = {
860            "any"
861        })
862        public static class ExceptionHandler
863            implements Equals, HashCode, ToString
864        {
865    
866            @XmlAnyElement(lax = true)
867            protected List<Object> any;
868    
869            /**
870             * Gets the value of the any property.
871             * 
872             * <p>
873             * This accessor method returns a reference to the live list,
874             * not a snapshot. Therefore any modification you make to the
875             * returned list will be present inside the JAXB object.
876             * This is why there is not a <CODE>set</CODE> method for the any property.
877             * 
878             * <p>
879             * For example, to add a new item, do as follows:
880             * <pre>
881             *    getAny().add(newItem);
882             * </pre>
883             * 
884             * 
885             * <p>
886             * Objects of the following type(s) are allowed in the list
887             * {@link Object }
888             * 
889             * 
890             */
891            public List<Object> getAny() {
892                if (any == null) {
893                    any = new ArrayList<Object>();
894                }
895                return this.any;
896            }
897    
898            public String toString() {
899                final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
900                final StringBuilder buffer = new StringBuilder();
901                append(null, buffer, strategy);
902                return buffer.toString();
903            }
904    
905            public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
906                strategy.appendStart(locator, this, buffer);
907                appendFields(locator, buffer, strategy);
908                strategy.appendEnd(locator, this, buffer);
909                return buffer;
910            }
911    
912            public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
913                {
914                    List<Object> theAny;
915                    theAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
916                    strategy.appendField(locator, this, "any", buffer, theAny);
917                }
918                return buffer;
919            }
920    
921            public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
922                int currentHashCode = 1;
923                {
924                    List<Object> theAny;
925                    theAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
926                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
927                }
928                return currentHashCode;
929            }
930    
931            public int hashCode() {
932                final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
933                return this.hashCode(null, strategy);
934            }
935    
936            public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
937                if (!(object instanceof DtoTransactDatabaseLocker.ExceptionHandler)) {
938                    return false;
939                }
940                if (this == object) {
941                    return true;
942                }
943                final DtoTransactDatabaseLocker.ExceptionHandler that = ((DtoTransactDatabaseLocker.ExceptionHandler) object);
944                {
945                    List<Object> lhsAny;
946                    lhsAny = (((this.any!= null)&&(!this.any.isEmpty()))?this.getAny():null);
947                    List<Object> rhsAny;
948                    rhsAny = (((that.any!= null)&&(!that.any.isEmpty()))?that.getAny():null);
949                    if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
950                        return false;
951                    }
952                }
953                return true;
954            }
955    
956            public boolean equals(Object object) {
957                final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
958                return equals(null, null, object, strategy);
959            }
960    
961        }
962    
963    
964        /**
965         * <p>Java class for anonymous complex type.
966         * 
967         * <p>The following schema fragment specifies the expected content contained within this class.
968         * 
969         * <pre>
970         * &lt;complexType>
971         *   &lt;complexContent>
972         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
973         *       &lt;choice minOccurs="0">
974         *         &lt;element ref="{http://activemq.apache.org/schema/core}jdbcPersistenceAdapter"/>
975         *         &lt;element ref="{http://activemq.apache.org/schema/core}journalPersistenceAdapterFactory"/>
976         *         &lt;element ref="{http://activemq.apache.org/schema/core}journaledJDBC"/>
977         *         &lt;element ref="{http://activemq.apache.org/schema/core}kahaDB"/>
978         *         &lt;element ref="{http://activemq.apache.org/schema/core}levelDB"/>
979         *         &lt;element ref="{http://activemq.apache.org/schema/core}mKahaDB"/>
980         *         &lt;element ref="{http://activemq.apache.org/schema/core}replicatedLevelDB"/>
981         *         &lt;any namespace='##other'/>
982         *       &lt;/choice>
983         *     &lt;/restriction>
984         *   &lt;/complexContent>
985         * &lt;/complexType>
986         * </pre>
987         * 
988         * 
989         */
990        @XmlAccessorType(XmlAccessType.FIELD)
991        @XmlType(name = "", propOrder = {
992            "jdbcPersistenceAdapter",
993            "journalPersistenceAdapterFactory",
994            "journaledJDBC",
995            "kahaDB",
996            "levelDB",
997            "mKahaDB",
998            "replicatedLevelDB",
999            "any"
1000        })
1001        public static class Lockable
1002            implements Equals, HashCode, ToString
1003        {
1004    
1005            protected DtoJdbcPersistenceAdapter jdbcPersistenceAdapter;
1006            protected DtoJournalPersistenceAdapterFactory journalPersistenceAdapterFactory;
1007            protected DtoJournaledJDBC journaledJDBC;
1008            protected DtoKahaDB kahaDB;
1009            protected DtoLevelDB levelDB;
1010            protected DtoMKahaDB mKahaDB;
1011            protected DtoReplicatedLevelDB replicatedLevelDB;
1012            @XmlAnyElement(lax = true)
1013            protected Object any;
1014    
1015            /**
1016             * Gets the value of the jdbcPersistenceAdapter property.
1017             * 
1018             * @return
1019             *     possible object is
1020             *     {@link DtoJdbcPersistenceAdapter }
1021             *     
1022             */
1023            public DtoJdbcPersistenceAdapter getJdbcPersistenceAdapter() {
1024                return jdbcPersistenceAdapter;
1025            }
1026    
1027            /**
1028             * Sets the value of the jdbcPersistenceAdapter property.
1029             * 
1030             * @param value
1031             *     allowed object is
1032             *     {@link DtoJdbcPersistenceAdapter }
1033             *     
1034             */
1035            public void setJdbcPersistenceAdapter(DtoJdbcPersistenceAdapter value) {
1036                this.jdbcPersistenceAdapter = value;
1037            }
1038    
1039            /**
1040             * Gets the value of the journalPersistenceAdapterFactory property.
1041             * 
1042             * @return
1043             *     possible object is
1044             *     {@link DtoJournalPersistenceAdapterFactory }
1045             *     
1046             */
1047            public DtoJournalPersistenceAdapterFactory getJournalPersistenceAdapterFactory() {
1048                return journalPersistenceAdapterFactory;
1049            }
1050    
1051            /**
1052             * Sets the value of the journalPersistenceAdapterFactory property.
1053             * 
1054             * @param value
1055             *     allowed object is
1056             *     {@link DtoJournalPersistenceAdapterFactory }
1057             *     
1058             */
1059            public void setJournalPersistenceAdapterFactory(DtoJournalPersistenceAdapterFactory value) {
1060                this.journalPersistenceAdapterFactory = value;
1061            }
1062    
1063            /**
1064             * Gets the value of the journaledJDBC property.
1065             * 
1066             * @return
1067             *     possible object is
1068             *     {@link DtoJournaledJDBC }
1069             *     
1070             */
1071            public DtoJournaledJDBC getJournaledJDBC() {
1072                return journaledJDBC;
1073            }
1074    
1075            /**
1076             * Sets the value of the journaledJDBC property.
1077             * 
1078             * @param value
1079             *     allowed object is
1080             *     {@link DtoJournaledJDBC }
1081             *     
1082             */
1083            public void setJournaledJDBC(DtoJournaledJDBC value) {
1084                this.journaledJDBC = value;
1085            }
1086    
1087            /**
1088             * Gets the value of the kahaDB property.
1089             * 
1090             * @return
1091             *     possible object is
1092             *     {@link DtoKahaDB }
1093             *     
1094             */
1095            public DtoKahaDB getKahaDB() {
1096                return kahaDB;
1097            }
1098    
1099            /**
1100             * Sets the value of the kahaDB property.
1101             * 
1102             * @param value
1103             *     allowed object is
1104             *     {@link DtoKahaDB }
1105             *     
1106             */
1107            public void setKahaDB(DtoKahaDB value) {
1108                this.kahaDB = value;
1109            }
1110    
1111            /**
1112             * Gets the value of the levelDB property.
1113             * 
1114             * @return
1115             *     possible object is
1116             *     {@link DtoLevelDB }
1117             *     
1118             */
1119            public DtoLevelDB getLevelDB() {
1120                return levelDB;
1121            }
1122    
1123            /**
1124             * Sets the value of the levelDB property.
1125             * 
1126             * @param value
1127             *     allowed object is
1128             *     {@link DtoLevelDB }
1129             *     
1130             */
1131            public void setLevelDB(DtoLevelDB value) {
1132                this.levelDB = value;
1133            }
1134    
1135            /**
1136             * Gets the value of the mKahaDB property.
1137             * 
1138             * @return
1139             *     possible object is
1140             *     {@link DtoMKahaDB }
1141             *     
1142             */
1143            public DtoMKahaDB getMKahaDB() {
1144                return mKahaDB;
1145            }
1146    
1147            /**
1148             * Sets the value of the mKahaDB property.
1149             * 
1150             * @param value
1151             *     allowed object is
1152             *     {@link DtoMKahaDB }
1153             *     
1154             */
1155            public void setMKahaDB(DtoMKahaDB value) {
1156                this.mKahaDB = value;
1157            }
1158    
1159            /**
1160             * Gets the value of the replicatedLevelDB property.
1161             * 
1162             * @return
1163             *     possible object is
1164             *     {@link DtoReplicatedLevelDB }
1165             *     
1166             */
1167            public DtoReplicatedLevelDB getReplicatedLevelDB() {
1168                return replicatedLevelDB;
1169            }
1170    
1171            /**
1172             * Sets the value of the replicatedLevelDB property.
1173             * 
1174             * @param value
1175             *     allowed object is
1176             *     {@link DtoReplicatedLevelDB }
1177             *     
1178             */
1179            public void setReplicatedLevelDB(DtoReplicatedLevelDB value) {
1180                this.replicatedLevelDB = value;
1181            }
1182    
1183            /**
1184             * Gets the value of the any property.
1185             * 
1186             * @return
1187             *     possible object is
1188             *     {@link Object }
1189             *     
1190             */
1191            public Object getAny() {
1192                return any;
1193            }
1194    
1195            /**
1196             * Sets the value of the any property.
1197             * 
1198             * @param value
1199             *     allowed object is
1200             *     {@link Object }
1201             *     
1202             */
1203            public void setAny(Object value) {
1204                this.any = value;
1205            }
1206    
1207            public String toString() {
1208                final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
1209                final StringBuilder buffer = new StringBuilder();
1210                append(null, buffer, strategy);
1211                return buffer.toString();
1212            }
1213    
1214            public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
1215                strategy.appendStart(locator, this, buffer);
1216                appendFields(locator, buffer, strategy);
1217                strategy.appendEnd(locator, this, buffer);
1218                return buffer;
1219            }
1220    
1221            public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
1222                {
1223                    DtoJdbcPersistenceAdapter theJdbcPersistenceAdapter;
1224                    theJdbcPersistenceAdapter = this.getJdbcPersistenceAdapter();
1225                    strategy.appendField(locator, this, "jdbcPersistenceAdapter", buffer, theJdbcPersistenceAdapter);
1226                }
1227                {
1228                    DtoJournalPersistenceAdapterFactory theJournalPersistenceAdapterFactory;
1229                    theJournalPersistenceAdapterFactory = this.getJournalPersistenceAdapterFactory();
1230                    strategy.appendField(locator, this, "journalPersistenceAdapterFactory", buffer, theJournalPersistenceAdapterFactory);
1231                }
1232                {
1233                    DtoJournaledJDBC theJournaledJDBC;
1234                    theJournaledJDBC = this.getJournaledJDBC();
1235                    strategy.appendField(locator, this, "journaledJDBC", buffer, theJournaledJDBC);
1236                }
1237                {
1238                    DtoKahaDB theKahaDB;
1239                    theKahaDB = this.getKahaDB();
1240                    strategy.appendField(locator, this, "kahaDB", buffer, theKahaDB);
1241                }
1242                {
1243                    DtoLevelDB theLevelDB;
1244                    theLevelDB = this.getLevelDB();
1245                    strategy.appendField(locator, this, "levelDB", buffer, theLevelDB);
1246                }
1247                {
1248                    DtoMKahaDB theMKahaDB;
1249                    theMKahaDB = this.getMKahaDB();
1250                    strategy.appendField(locator, this, "mKahaDB", buffer, theMKahaDB);
1251                }
1252                {
1253                    DtoReplicatedLevelDB theReplicatedLevelDB;
1254                    theReplicatedLevelDB = this.getReplicatedLevelDB();
1255                    strategy.appendField(locator, this, "replicatedLevelDB", buffer, theReplicatedLevelDB);
1256                }
1257                {
1258                    Object theAny;
1259                    theAny = this.getAny();
1260                    strategy.appendField(locator, this, "any", buffer, theAny);
1261                }
1262                return buffer;
1263            }
1264    
1265            public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
1266                int currentHashCode = 1;
1267                {
1268                    DtoJdbcPersistenceAdapter theJdbcPersistenceAdapter;
1269                    theJdbcPersistenceAdapter = this.getJdbcPersistenceAdapter();
1270                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "jdbcPersistenceAdapter", theJdbcPersistenceAdapter), currentHashCode, theJdbcPersistenceAdapter);
1271                }
1272                {
1273                    DtoJournalPersistenceAdapterFactory theJournalPersistenceAdapterFactory;
1274                    theJournalPersistenceAdapterFactory = this.getJournalPersistenceAdapterFactory();
1275                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "journalPersistenceAdapterFactory", theJournalPersistenceAdapterFactory), currentHashCode, theJournalPersistenceAdapterFactory);
1276                }
1277                {
1278                    DtoJournaledJDBC theJournaledJDBC;
1279                    theJournaledJDBC = this.getJournaledJDBC();
1280                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "journaledJDBC", theJournaledJDBC), currentHashCode, theJournaledJDBC);
1281                }
1282                {
1283                    DtoKahaDB theKahaDB;
1284                    theKahaDB = this.getKahaDB();
1285                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "kahaDB", theKahaDB), currentHashCode, theKahaDB);
1286                }
1287                {
1288                    DtoLevelDB theLevelDB;
1289                    theLevelDB = this.getLevelDB();
1290                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "levelDB", theLevelDB), currentHashCode, theLevelDB);
1291                }
1292                {
1293                    DtoMKahaDB theMKahaDB;
1294                    theMKahaDB = this.getMKahaDB();
1295                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "mKahaDB", theMKahaDB), currentHashCode, theMKahaDB);
1296                }
1297                {
1298                    DtoReplicatedLevelDB theReplicatedLevelDB;
1299                    theReplicatedLevelDB = this.getReplicatedLevelDB();
1300                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "replicatedLevelDB", theReplicatedLevelDB), currentHashCode, theReplicatedLevelDB);
1301                }
1302                {
1303                    Object theAny;
1304                    theAny = this.getAny();
1305                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
1306                }
1307                return currentHashCode;
1308            }
1309    
1310            public int hashCode() {
1311                final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
1312                return this.hashCode(null, strategy);
1313            }
1314    
1315            public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
1316                if (!(object instanceof DtoTransactDatabaseLocker.Lockable)) {
1317                    return false;
1318                }
1319                if (this == object) {
1320                    return true;
1321                }
1322                final DtoTransactDatabaseLocker.Lockable that = ((DtoTransactDatabaseLocker.Lockable) object);
1323                {
1324                    DtoJdbcPersistenceAdapter lhsJdbcPersistenceAdapter;
1325                    lhsJdbcPersistenceAdapter = this.getJdbcPersistenceAdapter();
1326                    DtoJdbcPersistenceAdapter rhsJdbcPersistenceAdapter;
1327                    rhsJdbcPersistenceAdapter = that.getJdbcPersistenceAdapter();
1328                    if (!strategy.equals(LocatorUtils.property(thisLocator, "jdbcPersistenceAdapter", lhsJdbcPersistenceAdapter), LocatorUtils.property(thatLocator, "jdbcPersistenceAdapter", rhsJdbcPersistenceAdapter), lhsJdbcPersistenceAdapter, rhsJdbcPersistenceAdapter)) {
1329                        return false;
1330                    }
1331                }
1332                {
1333                    DtoJournalPersistenceAdapterFactory lhsJournalPersistenceAdapterFactory;
1334                    lhsJournalPersistenceAdapterFactory = this.getJournalPersistenceAdapterFactory();
1335                    DtoJournalPersistenceAdapterFactory rhsJournalPersistenceAdapterFactory;
1336                    rhsJournalPersistenceAdapterFactory = that.getJournalPersistenceAdapterFactory();
1337                    if (!strategy.equals(LocatorUtils.property(thisLocator, "journalPersistenceAdapterFactory", lhsJournalPersistenceAdapterFactory), LocatorUtils.property(thatLocator, "journalPersistenceAdapterFactory", rhsJournalPersistenceAdapterFactory), lhsJournalPersistenceAdapterFactory, rhsJournalPersistenceAdapterFactory)) {
1338                        return false;
1339                    }
1340                }
1341                {
1342                    DtoJournaledJDBC lhsJournaledJDBC;
1343                    lhsJournaledJDBC = this.getJournaledJDBC();
1344                    DtoJournaledJDBC rhsJournaledJDBC;
1345                    rhsJournaledJDBC = that.getJournaledJDBC();
1346                    if (!strategy.equals(LocatorUtils.property(thisLocator, "journaledJDBC", lhsJournaledJDBC), LocatorUtils.property(thatLocator, "journaledJDBC", rhsJournaledJDBC), lhsJournaledJDBC, rhsJournaledJDBC)) {
1347                        return false;
1348                    }
1349                }
1350                {
1351                    DtoKahaDB lhsKahaDB;
1352                    lhsKahaDB = this.getKahaDB();
1353                    DtoKahaDB rhsKahaDB;
1354                    rhsKahaDB = that.getKahaDB();
1355                    if (!strategy.equals(LocatorUtils.property(thisLocator, "kahaDB", lhsKahaDB), LocatorUtils.property(thatLocator, "kahaDB", rhsKahaDB), lhsKahaDB, rhsKahaDB)) {
1356                        return false;
1357                    }
1358                }
1359                {
1360                    DtoLevelDB lhsLevelDB;
1361                    lhsLevelDB = this.getLevelDB();
1362                    DtoLevelDB rhsLevelDB;
1363                    rhsLevelDB = that.getLevelDB();
1364                    if (!strategy.equals(LocatorUtils.property(thisLocator, "levelDB", lhsLevelDB), LocatorUtils.property(thatLocator, "levelDB", rhsLevelDB), lhsLevelDB, rhsLevelDB)) {
1365                        return false;
1366                    }
1367                }
1368                {
1369                    DtoMKahaDB lhsMKahaDB;
1370                    lhsMKahaDB = this.getMKahaDB();
1371                    DtoMKahaDB rhsMKahaDB;
1372                    rhsMKahaDB = that.getMKahaDB();
1373                    if (!strategy.equals(LocatorUtils.property(thisLocator, "mKahaDB", lhsMKahaDB), LocatorUtils.property(thatLocator, "mKahaDB", rhsMKahaDB), lhsMKahaDB, rhsMKahaDB)) {
1374                        return false;
1375                    }
1376                }
1377                {
1378                    DtoReplicatedLevelDB lhsReplicatedLevelDB;
1379                    lhsReplicatedLevelDB = this.getReplicatedLevelDB();
1380                    DtoReplicatedLevelDB rhsReplicatedLevelDB;
1381                    rhsReplicatedLevelDB = that.getReplicatedLevelDB();
1382                    if (!strategy.equals(LocatorUtils.property(thisLocator, "replicatedLevelDB", lhsReplicatedLevelDB), LocatorUtils.property(thatLocator, "replicatedLevelDB", rhsReplicatedLevelDB), lhsReplicatedLevelDB, rhsReplicatedLevelDB)) {
1383                        return false;
1384                    }
1385                }
1386                {
1387                    Object lhsAny;
1388                    lhsAny = this.getAny();
1389                    Object rhsAny;
1390                    rhsAny = that.getAny();
1391                    if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
1392                        return false;
1393                    }
1394                }
1395                return true;
1396            }
1397    
1398            public boolean equals(Object object) {
1399                final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
1400                return equals(null, null, object, strategy);
1401            }
1402    
1403        }
1404    
1405    
1406        /**
1407         * <p>Java class for anonymous complex type.
1408         * 
1409         * <p>The following schema fragment specifies the expected content contained within this class.
1410         * 
1411         * <pre>
1412         * &lt;complexType>
1413         *   &lt;complexContent>
1414         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
1415         *       &lt;choice minOccurs="0">
1416         *         &lt;element ref="{http://activemq.apache.org/schema/core}statements"/>
1417         *         &lt;any namespace='##other'/>
1418         *       &lt;/choice>
1419         *     &lt;/restriction>
1420         *   &lt;/complexContent>
1421         * &lt;/complexType>
1422         * </pre>
1423         * 
1424         * 
1425         */
1426        @XmlAccessorType(XmlAccessType.FIELD)
1427        @XmlType(name = "", propOrder = {
1428            "statements",
1429            "any"
1430        })
1431        public static class Statements
1432            implements Equals, HashCode, ToString
1433        {
1434    
1435            protected DtoStatements statements;
1436            @XmlAnyElement(lax = true)
1437            protected Object any;
1438    
1439            /**
1440             * Gets the value of the statements property.
1441             * 
1442             * @return
1443             *     possible object is
1444             *     {@link DtoStatements }
1445             *     
1446             */
1447            public DtoStatements getStatements() {
1448                return statements;
1449            }
1450    
1451            /**
1452             * Sets the value of the statements property.
1453             * 
1454             * @param value
1455             *     allowed object is
1456             *     {@link DtoStatements }
1457             *     
1458             */
1459            public void setStatements(DtoStatements value) {
1460                this.statements = value;
1461            }
1462    
1463            /**
1464             * Gets the value of the any property.
1465             * 
1466             * @return
1467             *     possible object is
1468             *     {@link Object }
1469             *     
1470             */
1471            public Object getAny() {
1472                return any;
1473            }
1474    
1475            /**
1476             * Sets the value of the any property.
1477             * 
1478             * @param value
1479             *     allowed object is
1480             *     {@link Object }
1481             *     
1482             */
1483            public void setAny(Object value) {
1484                this.any = value;
1485            }
1486    
1487            public String toString() {
1488                final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
1489                final StringBuilder buffer = new StringBuilder();
1490                append(null, buffer, strategy);
1491                return buffer.toString();
1492            }
1493    
1494            public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
1495                strategy.appendStart(locator, this, buffer);
1496                appendFields(locator, buffer, strategy);
1497                strategy.appendEnd(locator, this, buffer);
1498                return buffer;
1499            }
1500    
1501            public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
1502                {
1503                    DtoStatements theStatements;
1504                    theStatements = this.getStatements();
1505                    strategy.appendField(locator, this, "statements", buffer, theStatements);
1506                }
1507                {
1508                    Object theAny;
1509                    theAny = this.getAny();
1510                    strategy.appendField(locator, this, "any", buffer, theAny);
1511                }
1512                return buffer;
1513            }
1514    
1515            public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
1516                int currentHashCode = 1;
1517                {
1518                    DtoStatements theStatements;
1519                    theStatements = this.getStatements();
1520                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "statements", theStatements), currentHashCode, theStatements);
1521                }
1522                {
1523                    Object theAny;
1524                    theAny = this.getAny();
1525                    currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
1526                }
1527                return currentHashCode;
1528            }
1529    
1530            public int hashCode() {
1531                final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
1532                return this.hashCode(null, strategy);
1533            }
1534    
1535            public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
1536                if (!(object instanceof DtoTransactDatabaseLocker.Statements)) {
1537                    return false;
1538                }
1539                if (this == object) {
1540                    return true;
1541                }
1542                final DtoTransactDatabaseLocker.Statements that = ((DtoTransactDatabaseLocker.Statements) object);
1543                {
1544                    DtoStatements lhsStatements;
1545                    lhsStatements = this.getStatements();
1546                    DtoStatements rhsStatements;
1547                    rhsStatements = that.getStatements();
1548                    if (!strategy.equals(LocatorUtils.property(thisLocator, "statements", lhsStatements), LocatorUtils.property(thatLocator, "statements", rhsStatements), lhsStatements, rhsStatements)) {
1549                        return false;
1550                    }
1551                }
1552                {
1553                    Object lhsAny;
1554                    lhsAny = this.getAny();
1555                    Object rhsAny;
1556                    rhsAny = that.getAny();
1557                    if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
1558                        return false;
1559                    }
1560                }
1561                return true;
1562            }
1563    
1564            public boolean equals(Object object) {
1565                final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
1566                return equals(null, null, object, strategy);
1567            }
1568    
1569        }
1570    
1571    }