/**
 * Delivery.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
 */

package com.style24.core.biz.checkout.base;

public class Delivery  implements java.io.Serializable, org.apache.axis.encoding.AnyContentType {
    private java.util.Calendar deliveredDate;

    private String deliveryCompany;

    private com.style24.core.biz.checkout.base.DeliveryMethodType deliveryMethod;

    private String deliveryStatus;

    private Boolean isWrongTrackingNumber;

    private java.util.Calendar pickupDate;

    private java.util.Calendar sendDate;

    private String trackingNumber;

    private java.util.Calendar wrongTrackingNumberRegisteredDate;

    private String wrongTrackingNumberType;

    private org.apache.axis.message.MessageElement [] _any;

    public Delivery() {
    }

    public Delivery(
           java.util.Calendar deliveredDate,
           String deliveryCompany,
           com.style24.core.biz.checkout.base.DeliveryMethodType deliveryMethod,
           String deliveryStatus,
           Boolean isWrongTrackingNumber,
           java.util.Calendar pickupDate,
           java.util.Calendar sendDate,
           String trackingNumber,
           java.util.Calendar wrongTrackingNumberRegisteredDate,
           String wrongTrackingNumberType,
           org.apache.axis.message.MessageElement [] _any) {
           this.deliveredDate = deliveredDate;
           this.deliveryCompany = deliveryCompany;
           this.deliveryMethod = deliveryMethod;
           this.deliveryStatus = deliveryStatus;
           this.isWrongTrackingNumber = isWrongTrackingNumber;
           this.pickupDate = pickupDate;
           this.sendDate = sendDate;
           this.trackingNumber = trackingNumber;
           this.wrongTrackingNumberRegisteredDate = wrongTrackingNumberRegisteredDate;
           this.wrongTrackingNumberType = wrongTrackingNumberType;
           this._any = _any;
    }


    /**
     * Gets the deliveredDate value for this Delivery.
     *
     * @return deliveredDate
     */
    public java.util.Calendar getDeliveredDate() {
        return deliveredDate;
    }


    /**
     * Sets the deliveredDate value for this Delivery.
     *
     * @param deliveredDate
     */
    public void setDeliveredDate(java.util.Calendar deliveredDate) {
        this.deliveredDate = deliveredDate;
    }


    /**
     * Gets the deliveryCompany value for this Delivery.
     *
     * @return deliveryCompany
     */
    public String getDeliveryCompany() {
        return deliveryCompany;
    }


    /**
     * Sets the deliveryCompany value for this Delivery.
     *
     * @param deliveryCompany
     */
    public void setDeliveryCompany(String deliveryCompany) {
        this.deliveryCompany = deliveryCompany;
    }


    /**
     * Gets the deliveryMethod value for this Delivery.
     *
     * @return deliveryMethod
     */
    public com.style24.core.biz.checkout.base.DeliveryMethodType getDeliveryMethod() {
        return deliveryMethod;
    }


    /**
     * Sets the deliveryMethod value for this Delivery.
     *
     * @param deliveryMethod
     */
    public void setDeliveryMethod(com.style24.core.biz.checkout.base.DeliveryMethodType deliveryMethod) {
        this.deliveryMethod = deliveryMethod;
    }


    /**
     * Gets the deliveryStatus value for this Delivery.
     *
     * @return deliveryStatus
     */
    public String getDeliveryStatus() {
        return deliveryStatus;
    }


    /**
     * Sets the deliveryStatus value for this Delivery.
     *
     * @param deliveryStatus
     */
    public void setDeliveryStatus(String deliveryStatus) {
        this.deliveryStatus = deliveryStatus;
    }


    /**
     * Gets the isWrongTrackingNumber value for this Delivery.
     *
     * @return isWrongTrackingNumber
     */
    public Boolean getIsWrongTrackingNumber() {
        return isWrongTrackingNumber;
    }


    /**
     * Sets the isWrongTrackingNumber value for this Delivery.
     *
     * @param isWrongTrackingNumber
     */
    public void setIsWrongTrackingNumber(Boolean isWrongTrackingNumber) {
        this.isWrongTrackingNumber = isWrongTrackingNumber;
    }


    /**
     * Gets the pickupDate value for this Delivery.
     *
     * @return pickupDate
     */
    public java.util.Calendar getPickupDate() {
        return pickupDate;
    }


    /**
     * Sets the pickupDate value for this Delivery.
     *
     * @param pickupDate
     */
    public void setPickupDate(java.util.Calendar pickupDate) {
        this.pickupDate = pickupDate;
    }


    /**
     * Gets the sendDate value for this Delivery.
     *
     * @return sendDate
     */
    public java.util.Calendar getSendDate() {
        return sendDate;
    }


    /**
     * Sets the sendDate value for this Delivery.
     *
     * @param sendDate
     */
    public void setSendDate(java.util.Calendar sendDate) {
        this.sendDate = sendDate;
    }


    /**
     * Gets the trackingNumber value for this Delivery.
     *
     * @return trackingNumber
     */
    public String getTrackingNumber() {
        return trackingNumber;
    }


    /**
     * Sets the trackingNumber value for this Delivery.
     *
     * @param trackingNumber
     */
    public void setTrackingNumber(String trackingNumber) {
        this.trackingNumber = trackingNumber;
    }


    /**
     * Gets the wrongTrackingNumberRegisteredDate value for this Delivery.
     *
     * @return wrongTrackingNumberRegisteredDate
     */
    public java.util.Calendar getWrongTrackingNumberRegisteredDate() {
        return wrongTrackingNumberRegisteredDate;
    }


    /**
     * Sets the wrongTrackingNumberRegisteredDate value for this Delivery.
     *
     * @param wrongTrackingNumberRegisteredDate
     */
    public void setWrongTrackingNumberRegisteredDate(java.util.Calendar wrongTrackingNumberRegisteredDate) {
        this.wrongTrackingNumberRegisteredDate = wrongTrackingNumberRegisteredDate;
    }


    /**
     * Gets the wrongTrackingNumberType value for this Delivery.
     *
     * @return wrongTrackingNumberType
     */
    public String getWrongTrackingNumberType() {
        return wrongTrackingNumberType;
    }


    /**
     * Sets the wrongTrackingNumberType value for this Delivery.
     *
     * @param wrongTrackingNumberType
     */
    public void setWrongTrackingNumberType(String wrongTrackingNumberType) {
        this.wrongTrackingNumberType = wrongTrackingNumberType;
    }


    /**
     * Gets the _any value for this Delivery.
     *
     * @return _any
     */
    public org.apache.axis.message.MessageElement [] get_any() {
        return _any;
    }


    /**
     * Sets the _any value for this Delivery.
     *
     * @param _any
     */
    public void set_any(org.apache.axis.message.MessageElement [] _any) {
        this._any = _any;
    }

    private Object __equalsCalc = null;
    public synchronized boolean equals(Object obj) {
        if (!(obj instanceof Delivery)) return false;
        Delivery other = (Delivery) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true &&
            ((this.deliveredDate==null && other.getDeliveredDate()==null) ||
             (this.deliveredDate!=null &&
              this.deliveredDate.equals(other.getDeliveredDate()))) &&
            ((this.deliveryCompany==null && other.getDeliveryCompany()==null) ||
             (this.deliveryCompany!=null &&
              this.deliveryCompany.equals(other.getDeliveryCompany()))) &&
            ((this.deliveryMethod==null && other.getDeliveryMethod()==null) ||
             (this.deliveryMethod!=null &&
              this.deliveryMethod.equals(other.getDeliveryMethod()))) &&
            ((this.deliveryStatus==null && other.getDeliveryStatus()==null) ||
             (this.deliveryStatus!=null &&
              this.deliveryStatus.equals(other.getDeliveryStatus()))) &&
            ((this.isWrongTrackingNumber==null && other.getIsWrongTrackingNumber()==null) ||
             (this.isWrongTrackingNumber!=null &&
              this.isWrongTrackingNumber.equals(other.getIsWrongTrackingNumber()))) &&
            ((this.pickupDate==null && other.getPickupDate()==null) ||
             (this.pickupDate!=null &&
              this.pickupDate.equals(other.getPickupDate()))) &&
            ((this.sendDate==null && other.getSendDate()==null) ||
             (this.sendDate!=null &&
              this.sendDate.equals(other.getSendDate()))) &&
            ((this.trackingNumber==null && other.getTrackingNumber()==null) ||
             (this.trackingNumber!=null &&
              this.trackingNumber.equals(other.getTrackingNumber()))) &&
            ((this.wrongTrackingNumberRegisteredDate==null && other.getWrongTrackingNumberRegisteredDate()==null) ||
             (this.wrongTrackingNumberRegisteredDate!=null &&
              this.wrongTrackingNumberRegisteredDate.equals(other.getWrongTrackingNumberRegisteredDate()))) &&
            ((this.wrongTrackingNumberType==null && other.getWrongTrackingNumberType()==null) ||
             (this.wrongTrackingNumberType!=null &&
              this.wrongTrackingNumberType.equals(other.getWrongTrackingNumberType()))) &&
            ((this._any==null && other.get_any()==null) ||
             (this._any!=null &&
              java.util.Arrays.equals(this._any, other.get_any())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getDeliveredDate() != null) {
            _hashCode += getDeliveredDate().hashCode();
        }
        if (getDeliveryCompany() != null) {
            _hashCode += getDeliveryCompany().hashCode();
        }
        if (getDeliveryMethod() != null) {
            _hashCode += getDeliveryMethod().hashCode();
        }
        if (getDeliveryStatus() != null) {
            _hashCode += getDeliveryStatus().hashCode();
        }
        if (getIsWrongTrackingNumber() != null) {
            _hashCode += getIsWrongTrackingNumber().hashCode();
        }
        if (getPickupDate() != null) {
            _hashCode += getPickupDate().hashCode();
        }
        if (getSendDate() != null) {
            _hashCode += getSendDate().hashCode();
        }
        if (getTrackingNumber() != null) {
            _hashCode += getTrackingNumber().hashCode();
        }
        if (getWrongTrackingNumberRegisteredDate() != null) {
            _hashCode += getWrongTrackingNumberRegisteredDate().hashCode();
        }
        if (getWrongTrackingNumberType() != null) {
            _hashCode += getWrongTrackingNumberType().hashCode();
        }
        if (get_any() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(get_any());
                 i++) {
                Object obj = java.lang.reflect.Array.get(get_any(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        __hashCodeCalc = false;
        return _hashCode;
    }

    // Type metadata
    private static org.apache.axis.description.TypeDesc typeDesc =
        new org.apache.axis.description.TypeDesc(Delivery.class, true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "delivery"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("deliveredDate");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "DeliveredDate"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("deliveryCompany");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "DeliveryCompany"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("deliveryMethod");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "DeliveryMethod"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "deliveryMethodType"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("deliveryStatus");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "DeliveryStatus"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("isWrongTrackingNumber");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "IsWrongTrackingNumber"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("pickupDate");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "PickupDate"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("sendDate");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "SendDate"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("trackingNumber");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "TrackingNumber"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("wrongTrackingNumberRegisteredDate");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "WrongTrackingNumberRegisteredDate"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("wrongTrackingNumberType");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "WrongTrackingNumberType"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
    }

    /**
     * Return type metadata object
     */
    public static org.apache.axis.description.TypeDesc getTypeDesc() {
        return typeDesc;
    }

    /**
     * Get Custom Serializer
     */
    public static org.apache.axis.encoding.Serializer getSerializer(
           String mechType,
           Class _javaType,
           javax.xml.namespace.QName _xmlType) {
        return
          new  org.apache.axis.encoding.ser.BeanSerializer(
            _javaType, _xmlType, typeDesc);
    }

    /**
     * Get Custom Deserializer
     */
    public static org.apache.axis.encoding.Deserializer getDeserializer(
           String mechType,
           Class _javaType,
           javax.xml.namespace.QName _xmlType) {
        return 
          new  org.apache.axis.encoding.ser.BeanDeserializer(
            _javaType, _xmlType, typeDesc);
    }

}
