/**
 * ShipmentResult.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.adsionline.ADSIShippingWS;

public class ShipmentResult  implements java.io.Serializable {
    private long bundleID;

    private java.lang.String AMSN;

    private double discount;

    private double base;

    private double total;

    private double special;

    private java.lang.String zone;

    private com.adsionline.ADSIShippingWS.EnumTimeInTransit timeInTransit;

    private java.lang.String shipmentID;

    private java.lang.String message;

    private com.adsionline.ADSIShippingWS.ShipmentResultCustomFields customFields;

    private java.lang.String serviceSymbol;

    private java.lang.String servicePlaintext;

    private com.adsionline.ADSIShippingWS.PackageResult[] packageResults;

    public ShipmentResult() {
    }

    public ShipmentResult(
           long bundleID,
           java.lang.String AMSN,
           double discount,
           double base,
           double total,
           double special,
           java.lang.String zone,
           com.adsionline.ADSIShippingWS.EnumTimeInTransit timeInTransit,
           java.lang.String shipmentID,
           java.lang.String message,
           com.adsionline.ADSIShippingWS.ShipmentResultCustomFields customFields,
           java.lang.String serviceSymbol,
           java.lang.String servicePlaintext,
           com.adsionline.ADSIShippingWS.PackageResult[] packageResults) {
           this.bundleID = bundleID;
           this.AMSN = AMSN;
           this.discount = discount;
           this.base = base;
           this.total = total;
           this.special = special;
           this.zone = zone;
           this.timeInTransit = timeInTransit;
           this.shipmentID = shipmentID;
           this.message = message;
           this.customFields = customFields;
           this.serviceSymbol = serviceSymbol;
           this.servicePlaintext = servicePlaintext;
           this.packageResults = packageResults;
    }


    /**
     * Gets the bundleID value for this ShipmentResult.
     * 
     * @return bundleID
     */
    public long getBundleID() {
        return bundleID;
    }


    /**
     * Sets the bundleID value for this ShipmentResult.
     * 
     * @param bundleID
     */
    public void setBundleID(long bundleID) {
        this.bundleID = bundleID;
    }


    /**
     * Gets the AMSN value for this ShipmentResult.
     * 
     * @return AMSN
     */
    public java.lang.String getAMSN() {
        return AMSN;
    }


    /**
     * Sets the AMSN value for this ShipmentResult.
     * 
     * @param AMSN
     */
    public void setAMSN(java.lang.String AMSN) {
        this.AMSN = AMSN;
    }


    /**
     * Gets the discount value for this ShipmentResult.
     * 
     * @return discount
     */
    public double getDiscount() {
        return discount;
    }


    /**
     * Sets the discount value for this ShipmentResult.
     * 
     * @param discount
     */
    public void setDiscount(double discount) {
        this.discount = discount;
    }


    /**
     * Gets the base value for this ShipmentResult.
     * 
     * @return base
     */
    public double getBase() {
        return base;
    }


    /**
     * Sets the base value for this ShipmentResult.
     * 
     * @param base
     */
    public void setBase(double base) {
        this.base = base;
    }


    /**
     * Gets the total value for this ShipmentResult.
     * 
     * @return total
     */
    public double getTotal() {
        return total;
    }


    /**
     * Sets the total value for this ShipmentResult.
     * 
     * @param total
     */
    public void setTotal(double total) {
        this.total = total;
    }


    /**
     * Gets the special value for this ShipmentResult.
     * 
     * @return special
     */
    public double getSpecial() {
        return special;
    }


    /**
     * Sets the special value for this ShipmentResult.
     * 
     * @param special
     */
    public void setSpecial(double special) {
        this.special = special;
    }


    /**
     * Gets the zone value for this ShipmentResult.
     * 
     * @return zone
     */
    public java.lang.String getZone() {
        return zone;
    }


    /**
     * Sets the zone value for this ShipmentResult.
     * 
     * @param zone
     */
    public void setZone(java.lang.String zone) {
        this.zone = zone;
    }


    /**
     * Gets the timeInTransit value for this ShipmentResult.
     * 
     * @return timeInTransit
     */
    public com.adsionline.ADSIShippingWS.EnumTimeInTransit getTimeInTransit() {
        return timeInTransit;
    }


    /**
     * Sets the timeInTransit value for this ShipmentResult.
     * 
     * @param timeInTransit
     */
    public void setTimeInTransit(com.adsionline.ADSIShippingWS.EnumTimeInTransit timeInTransit) {
        this.timeInTransit = timeInTransit;
    }


    /**
     * Gets the shipmentID value for this ShipmentResult.
     * 
     * @return shipmentID
     */
    public java.lang.String getShipmentID() {
        return shipmentID;
    }


    /**
     * Sets the shipmentID value for this ShipmentResult.
     * 
     * @param shipmentID
     */
    public void setShipmentID(java.lang.String shipmentID) {
        this.shipmentID = shipmentID;
    }


    /**
     * Gets the message value for this ShipmentResult.
     * 
     * @return message
     */
    public java.lang.String getMessage() {
        return message;
    }


    /**
     * Sets the message value for this ShipmentResult.
     * 
     * @param message
     */
    public void setMessage(java.lang.String message) {
        this.message = message;
    }


    /**
     * Gets the customFields value for this ShipmentResult.
     * 
     * @return customFields
     */
    public com.adsionline.ADSIShippingWS.ShipmentResultCustomFields getCustomFields() {
        return customFields;
    }


    /**
     * Sets the customFields value for this ShipmentResult.
     * 
     * @param customFields
     */
    public void setCustomFields(com.adsionline.ADSIShippingWS.ShipmentResultCustomFields customFields) {
        this.customFields = customFields;
    }


    /**
     * Gets the serviceSymbol value for this ShipmentResult.
     * 
     * @return serviceSymbol
     */
    public java.lang.String getServiceSymbol() {
        return serviceSymbol;
    }


    /**
     * Sets the serviceSymbol value for this ShipmentResult.
     * 
     * @param serviceSymbol
     */
    public void setServiceSymbol(java.lang.String serviceSymbol) {
        this.serviceSymbol = serviceSymbol;
    }


    /**
     * Gets the servicePlaintext value for this ShipmentResult.
     * 
     * @return servicePlaintext
     */
    public java.lang.String getServicePlaintext() {
        return servicePlaintext;
    }


    /**
     * Sets the servicePlaintext value for this ShipmentResult.
     * 
     * @param servicePlaintext
     */
    public void setServicePlaintext(java.lang.String servicePlaintext) {
        this.servicePlaintext = servicePlaintext;
    }


    /**
     * Gets the packageResults value for this ShipmentResult.
     * 
     * @return packageResults
     */
    public com.adsionline.ADSIShippingWS.PackageResult[] getPackageResults() {
        return packageResults;
    }


    /**
     * Sets the packageResults value for this ShipmentResult.
     * 
     * @param packageResults
     */
    public void setPackageResults(com.adsionline.ADSIShippingWS.PackageResult[] packageResults) {
        this.packageResults = packageResults;
    }

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof ShipmentResult)) return false;
        ShipmentResult other = (ShipmentResult) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true && 
            this.bundleID == other.getBundleID() &&
            ((this.AMSN==null && other.getAMSN()==null) || 
             (this.AMSN!=null &&
              this.AMSN.equals(other.getAMSN()))) &&
            this.discount == other.getDiscount() &&
            this.base == other.getBase() &&
            this.total == other.getTotal() &&
            this.special == other.getSpecial() &&
            ((this.zone==null && other.getZone()==null) || 
             (this.zone!=null &&
              this.zone.equals(other.getZone()))) &&
            ((this.timeInTransit==null && other.getTimeInTransit()==null) || 
             (this.timeInTransit!=null &&
              this.timeInTransit.equals(other.getTimeInTransit()))) &&
            ((this.shipmentID==null && other.getShipmentID()==null) || 
             (this.shipmentID!=null &&
              this.shipmentID.equals(other.getShipmentID()))) &&
            ((this.message==null && other.getMessage()==null) || 
             (this.message!=null &&
              this.message.equals(other.getMessage()))) &&
            ((this.customFields==null && other.getCustomFields()==null) || 
             (this.customFields!=null &&
              this.customFields.equals(other.getCustomFields()))) &&
            ((this.serviceSymbol==null && other.getServiceSymbol()==null) || 
             (this.serviceSymbol!=null &&
              this.serviceSymbol.equals(other.getServiceSymbol()))) &&
            ((this.servicePlaintext==null && other.getServicePlaintext()==null) || 
             (this.servicePlaintext!=null &&
              this.servicePlaintext.equals(other.getServicePlaintext()))) &&
            ((this.packageResults==null && other.getPackageResults()==null) || 
             (this.packageResults!=null &&
              java.util.Arrays.equals(this.packageResults, other.getPackageResults())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        _hashCode += new Long(getBundleID()).hashCode();
        if (getAMSN() != null) {
            _hashCode += getAMSN().hashCode();
        }
        _hashCode += new Double(getDiscount()).hashCode();
        _hashCode += new Double(getBase()).hashCode();
        _hashCode += new Double(getTotal()).hashCode();
        _hashCode += new Double(getSpecial()).hashCode();
        if (getZone() != null) {
            _hashCode += getZone().hashCode();
        }
        if (getTimeInTransit() != null) {
            _hashCode += getTimeInTransit().hashCode();
        }
        if (getShipmentID() != null) {
            _hashCode += getShipmentID().hashCode();
        }
        if (getMessage() != null) {
            _hashCode += getMessage().hashCode();
        }
        if (getCustomFields() != null) {
            _hashCode += getCustomFields().hashCode();
        }
        if (getServiceSymbol() != null) {
            _hashCode += getServiceSymbol().hashCode();
        }
        if (getServicePlaintext() != null) {
            _hashCode += getServicePlaintext().hashCode();
        }
        if (getPackageResults() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getPackageResults());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getPackageResults(), 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(ShipmentResult.class, true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ShipmentResult"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("bundleID");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "BundleID"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("AMSN");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "AMSN"));
        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("discount");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Discount"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("base");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Base"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("total");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Total"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("special");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Special"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("zone");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Zone"));
        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("timeInTransit");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "TimeInTransit"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "enumTimeInTransit"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("shipmentID");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ShipmentID"));
        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("message");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Message"));
        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("customFields");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CustomFields"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", ">ShipmentResult>CustomFields"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("serviceSymbol");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ServiceSymbol"));
        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("servicePlaintext");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ServicePlaintext"));
        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("packageResults");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "PackageResults"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "PackageResult"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        elemField.setItemQName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "PackageResult"));
        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(
           java.lang.String mechType, 
           java.lang.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(
           java.lang.String mechType, 
           java.lang.Class _javaType,  
           javax.xml.namespace.QName _xmlType) {
        return 
          new  org.apache.axis.encoding.ser.BeanDeserializer(
            _javaType, _xmlType, typeDesc);
    }

}
