/**
 * Shipment.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 Shipment  implements java.io.Serializable {
    private java.lang.String ID;

    private com.adsionline.ADSIShippingWS.Address recipient;

    private com.adsionline.ADSIShippingWS.Service service;

    private java.lang.String serviceName;

    private com.adsionline.ADSIShippingWS.EnumTerms terms;

    private boolean residentialFlag;

    private boolean proofOfDeliveryFlag;

    private boolean signatureReleaseFlag;

    private boolean signatureRequiredFlag;

    private boolean saturdayDeliveryFlag;

    private java.util.Calendar shipDate;

    private java.lang.String consigneeAccount;

    private boolean thirdPartyBillingFlag;

    private java.lang.String thirdPartyBillingAccount;

    private com.adsionline.ADSIShippingWS.Address thirdPartyBillingAddress;

    private boolean HALFlag;

    private com.adsionline.ADSIShippingWS.Address HALAddress;

    private com.adsionline.ADSIShippingWS.EnumManifestAction manifestAction;

    private java.lang.String shipperName;

    private boolean consigneeBillingFlag;

    private java.lang.String shipperReference;

    private java.lang.String consigneeReference;

    private java.lang.String carrierInstructions;

    private java.lang.String ultimateDestinationCountry;

    private com.adsionline.ADSIShippingWS.ShipmentCustomFields customFields;

    private com.adsionline.ADSIShippingWS.EnumTimeInTransit timeInTransit;

    private com.adsionline.ADSIShippingWS._package[] packages;

    public Shipment() {
    }

    public Shipment(
           java.lang.String ID,
           com.adsionline.ADSIShippingWS.Address recipient,
           com.adsionline.ADSIShippingWS.Service service,
           java.lang.String serviceName,
           com.adsionline.ADSIShippingWS.EnumTerms terms,
           boolean residentialFlag,
           boolean proofOfDeliveryFlag,
           boolean signatureReleaseFlag,
           boolean signatureRequiredFlag,
           boolean saturdayDeliveryFlag,
           java.util.Calendar shipDate,
           java.lang.String consigneeAccount,
           boolean thirdPartyBillingFlag,
           java.lang.String thirdPartyBillingAccount,
           com.adsionline.ADSIShippingWS.Address thirdPartyBillingAddress,
           boolean HALFlag,
           com.adsionline.ADSIShippingWS.Address HALAddress,
           com.adsionline.ADSIShippingWS.EnumManifestAction manifestAction,
           java.lang.String shipperName,
           boolean consigneeBillingFlag,
           java.lang.String shipperReference,
           java.lang.String consigneeReference,
           java.lang.String carrierInstructions,
           java.lang.String ultimateDestinationCountry,
           com.adsionline.ADSIShippingWS.ShipmentCustomFields customFields,
           com.adsionline.ADSIShippingWS.EnumTimeInTransit timeInTransit,
           com.adsionline.ADSIShippingWS._package[] packages) {
           this.ID = ID;
           this.recipient = recipient;
           this.service = service;
           this.serviceName = serviceName;
           this.terms = terms;
           this.residentialFlag = residentialFlag;
           this.proofOfDeliveryFlag = proofOfDeliveryFlag;
           this.signatureReleaseFlag = signatureReleaseFlag;
           this.signatureRequiredFlag = signatureRequiredFlag;
           this.saturdayDeliveryFlag = saturdayDeliveryFlag;
           this.shipDate = shipDate;
           this.consigneeAccount = consigneeAccount;
           this.thirdPartyBillingFlag = thirdPartyBillingFlag;
           this.thirdPartyBillingAccount = thirdPartyBillingAccount;
           this.thirdPartyBillingAddress = thirdPartyBillingAddress;
           this.HALFlag = HALFlag;
           this.HALAddress = HALAddress;
           this.manifestAction = manifestAction;
           this.shipperName = shipperName;
           this.consigneeBillingFlag = consigneeBillingFlag;
           this.shipperReference = shipperReference;
           this.consigneeReference = consigneeReference;
           this.carrierInstructions = carrierInstructions;
           this.ultimateDestinationCountry = ultimateDestinationCountry;
           this.customFields = customFields;
           this.timeInTransit = timeInTransit;
           this.packages = packages;
    }


    /**
     * Gets the ID value for this Shipment.
     * 
     * @return ID
     */
    public java.lang.String getID() {
        return ID;
    }


    /**
     * Sets the ID value for this Shipment.
     * 
     * @param ID
     */
    public void setID(java.lang.String ID) {
        this.ID = ID;
    }


    /**
     * Gets the recipient value for this Shipment.
     * 
     * @return recipient
     */
    public com.adsionline.ADSIShippingWS.Address getRecipient() {
        return recipient;
    }


    /**
     * Sets the recipient value for this Shipment.
     * 
     * @param recipient
     */
    public void setRecipient(com.adsionline.ADSIShippingWS.Address recipient) {
        this.recipient = recipient;
    }


    /**
     * Gets the service value for this Shipment.
     * 
     * @return service
     */
    public com.adsionline.ADSIShippingWS.Service getService() {
        return service;
    }


    /**
     * Sets the service value for this Shipment.
     * 
     * @param service
     */
    public void setService(com.adsionline.ADSIShippingWS.Service service) {
        this.service = service;
    }


    /**
     * Gets the serviceName value for this Shipment.
     * 
     * @return serviceName
     */
    public java.lang.String getServiceName() {
        return serviceName;
    }


    /**
     * Sets the serviceName value for this Shipment.
     * 
     * @param serviceName
     */
    public void setServiceName(java.lang.String serviceName) {
        this.serviceName = serviceName;
    }


    /**
     * Gets the terms value for this Shipment.
     * 
     * @return terms
     */
    public com.adsionline.ADSIShippingWS.EnumTerms getTerms() {
        return terms;
    }


    /**
     * Sets the terms value for this Shipment.
     * 
     * @param terms
     */
    public void setTerms(com.adsionline.ADSIShippingWS.EnumTerms terms) {
        this.terms = terms;
    }


    /**
     * Gets the residentialFlag value for this Shipment.
     * 
     * @return residentialFlag
     */
    public boolean isResidentialFlag() {
        return residentialFlag;
    }


    /**
     * Sets the residentialFlag value for this Shipment.
     * 
     * @param residentialFlag
     */
    public void setResidentialFlag(boolean residentialFlag) {
        this.residentialFlag = residentialFlag;
    }


    /**
     * Gets the proofOfDeliveryFlag value for this Shipment.
     * 
     * @return proofOfDeliveryFlag
     */
    public boolean isProofOfDeliveryFlag() {
        return proofOfDeliveryFlag;
    }


    /**
     * Sets the proofOfDeliveryFlag value for this Shipment.
     * 
     * @param proofOfDeliveryFlag
     */
    public void setProofOfDeliveryFlag(boolean proofOfDeliveryFlag) {
        this.proofOfDeliveryFlag = proofOfDeliveryFlag;
    }


    /**
     * Gets the signatureReleaseFlag value for this Shipment.
     * 
     * @return signatureReleaseFlag
     */
    public boolean isSignatureReleaseFlag() {
        return signatureReleaseFlag;
    }


    /**
     * Sets the signatureReleaseFlag value for this Shipment.
     * 
     * @param signatureReleaseFlag
     */
    public void setSignatureReleaseFlag(boolean signatureReleaseFlag) {
        this.signatureReleaseFlag = signatureReleaseFlag;
    }


    /**
     * Gets the signatureRequiredFlag value for this Shipment.
     * 
     * @return signatureRequiredFlag
     */
    public boolean isSignatureRequiredFlag() {
        return signatureRequiredFlag;
    }


    /**
     * Sets the signatureRequiredFlag value for this Shipment.
     * 
     * @param signatureRequiredFlag
     */
    public void setSignatureRequiredFlag(boolean signatureRequiredFlag) {
        this.signatureRequiredFlag = signatureRequiredFlag;
    }


    /**
     * Gets the saturdayDeliveryFlag value for this Shipment.
     * 
     * @return saturdayDeliveryFlag
     */
    public boolean isSaturdayDeliveryFlag() {
        return saturdayDeliveryFlag;
    }


    /**
     * Sets the saturdayDeliveryFlag value for this Shipment.
     * 
     * @param saturdayDeliveryFlag
     */
    public void setSaturdayDeliveryFlag(boolean saturdayDeliveryFlag) {
        this.saturdayDeliveryFlag = saturdayDeliveryFlag;
    }


    /**
     * Gets the shipDate value for this Shipment.
     * 
     * @return shipDate
     */
    public java.util.Calendar getShipDate() {
        return shipDate;
    }


    /**
     * Sets the shipDate value for this Shipment.
     * 
     * @param shipDate
     */
    public void setShipDate(java.util.Calendar shipDate) {
        this.shipDate = shipDate;
    }


    /**
     * Gets the consigneeAccount value for this Shipment.
     * 
     * @return consigneeAccount
     */
    public java.lang.String getConsigneeAccount() {
        return consigneeAccount;
    }


    /**
     * Sets the consigneeAccount value for this Shipment.
     * 
     * @param consigneeAccount
     */
    public void setConsigneeAccount(java.lang.String consigneeAccount) {
        this.consigneeAccount = consigneeAccount;
    }


    /**
     * Gets the thirdPartyBillingFlag value for this Shipment.
     * 
     * @return thirdPartyBillingFlag
     */
    public boolean isThirdPartyBillingFlag() {
        return thirdPartyBillingFlag;
    }


    /**
     * Sets the thirdPartyBillingFlag value for this Shipment.
     * 
     * @param thirdPartyBillingFlag
     */
    public void setThirdPartyBillingFlag(boolean thirdPartyBillingFlag) {
        this.thirdPartyBillingFlag = thirdPartyBillingFlag;
    }


    /**
     * Gets the thirdPartyBillingAccount value for this Shipment.
     * 
     * @return thirdPartyBillingAccount
     */
    public java.lang.String getThirdPartyBillingAccount() {
        return thirdPartyBillingAccount;
    }


    /**
     * Sets the thirdPartyBillingAccount value for this Shipment.
     * 
     * @param thirdPartyBillingAccount
     */
    public void setThirdPartyBillingAccount(java.lang.String thirdPartyBillingAccount) {
        this.thirdPartyBillingAccount = thirdPartyBillingAccount;
    }


    /**
     * Gets the thirdPartyBillingAddress value for this Shipment.
     * 
     * @return thirdPartyBillingAddress
     */
    public com.adsionline.ADSIShippingWS.Address getThirdPartyBillingAddress() {
        return thirdPartyBillingAddress;
    }


    /**
     * Sets the thirdPartyBillingAddress value for this Shipment.
     * 
     * @param thirdPartyBillingAddress
     */
    public void setThirdPartyBillingAddress(com.adsionline.ADSIShippingWS.Address thirdPartyBillingAddress) {
        this.thirdPartyBillingAddress = thirdPartyBillingAddress;
    }


    /**
     * Gets the HALFlag value for this Shipment.
     * 
     * @return HALFlag
     */
    public boolean isHALFlag() {
        return HALFlag;
    }


    /**
     * Sets the HALFlag value for this Shipment.
     * 
     * @param HALFlag
     */
    public void setHALFlag(boolean HALFlag) {
        this.HALFlag = HALFlag;
    }


    /**
     * Gets the HALAddress value for this Shipment.
     * 
     * @return HALAddress
     */
    public com.adsionline.ADSIShippingWS.Address getHALAddress() {
        return HALAddress;
    }


    /**
     * Sets the HALAddress value for this Shipment.
     * 
     * @param HALAddress
     */
    public void setHALAddress(com.adsionline.ADSIShippingWS.Address HALAddress) {
        this.HALAddress = HALAddress;
    }


    /**
     * Gets the manifestAction value for this Shipment.
     * 
     * @return manifestAction
     */
    public com.adsionline.ADSIShippingWS.EnumManifestAction getManifestAction() {
        return manifestAction;
    }


    /**
     * Sets the manifestAction value for this Shipment.
     * 
     * @param manifestAction
     */
    public void setManifestAction(com.adsionline.ADSIShippingWS.EnumManifestAction manifestAction) {
        this.manifestAction = manifestAction;
    }


    /**
     * Gets the shipperName value for this Shipment.
     * 
     * @return shipperName
     */
    public java.lang.String getShipperName() {
        return shipperName;
    }


    /**
     * Sets the shipperName value for this Shipment.
     * 
     * @param shipperName
     */
    public void setShipperName(java.lang.String shipperName) {
        this.shipperName = shipperName;
    }


    /**
     * Gets the consigneeBillingFlag value for this Shipment.
     * 
     * @return consigneeBillingFlag
     */
    public boolean isConsigneeBillingFlag() {
        return consigneeBillingFlag;
    }


    /**
     * Sets the consigneeBillingFlag value for this Shipment.
     * 
     * @param consigneeBillingFlag
     */
    public void setConsigneeBillingFlag(boolean consigneeBillingFlag) {
        this.consigneeBillingFlag = consigneeBillingFlag;
    }


    /**
     * Gets the shipperReference value for this Shipment.
     * 
     * @return shipperReference
     */
    public java.lang.String getShipperReference() {
        return shipperReference;
    }


    /**
     * Sets the shipperReference value for this Shipment.
     * 
     * @param shipperReference
     */
    public void setShipperReference(java.lang.String shipperReference) {
        this.shipperReference = shipperReference;
    }


    /**
     * Gets the consigneeReference value for this Shipment.
     * 
     * @return consigneeReference
     */
    public java.lang.String getConsigneeReference() {
        return consigneeReference;
    }


    /**
     * Sets the consigneeReference value for this Shipment.
     * 
     * @param consigneeReference
     */
    public void setConsigneeReference(java.lang.String consigneeReference) {
        this.consigneeReference = consigneeReference;
    }


    /**
     * Gets the carrierInstructions value for this Shipment.
     * 
     * @return carrierInstructions
     */
    public java.lang.String getCarrierInstructions() {
        return carrierInstructions;
    }


    /**
     * Sets the carrierInstructions value for this Shipment.
     * 
     * @param carrierInstructions
     */
    public void setCarrierInstructions(java.lang.String carrierInstructions) {
        this.carrierInstructions = carrierInstructions;
    }


    /**
     * Gets the ultimateDestinationCountry value for this Shipment.
     * 
     * @return ultimateDestinationCountry
     */
    public java.lang.String getUltimateDestinationCountry() {
        return ultimateDestinationCountry;
    }


    /**
     * Sets the ultimateDestinationCountry value for this Shipment.
     * 
     * @param ultimateDestinationCountry
     */
    public void setUltimateDestinationCountry(java.lang.String ultimateDestinationCountry) {
        this.ultimateDestinationCountry = ultimateDestinationCountry;
    }


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


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


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


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


    /**
     * Gets the packages value for this Shipment.
     * 
     * @return packages
     */
    public com.adsionline.ADSIShippingWS._package[] getPackages() {
        return packages;
    }


    /**
     * Sets the packages value for this Shipment.
     * 
     * @param packages
     */
    public void setPackages(com.adsionline.ADSIShippingWS._package[] packages) {
        this.packages = packages;
    }

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof Shipment)) return false;
        Shipment other = (Shipment) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true && 
            ((this.ID==null && other.getID()==null) || 
             (this.ID!=null &&
              this.ID.equals(other.getID()))) &&
            ((this.recipient==null && other.getRecipient()==null) || 
             (this.recipient!=null &&
              this.recipient.equals(other.getRecipient()))) &&
            ((this.service==null && other.getService()==null) || 
             (this.service!=null &&
              this.service.equals(other.getService()))) &&
            ((this.serviceName==null && other.getServiceName()==null) || 
             (this.serviceName!=null &&
              this.serviceName.equals(other.getServiceName()))) &&
            ((this.terms==null && other.getTerms()==null) || 
             (this.terms!=null &&
              this.terms.equals(other.getTerms()))) &&
            this.residentialFlag == other.isResidentialFlag() &&
            this.proofOfDeliveryFlag == other.isProofOfDeliveryFlag() &&
            this.signatureReleaseFlag == other.isSignatureReleaseFlag() &&
            this.signatureRequiredFlag == other.isSignatureRequiredFlag() &&
            this.saturdayDeliveryFlag == other.isSaturdayDeliveryFlag() &&
            ((this.shipDate==null && other.getShipDate()==null) || 
             (this.shipDate!=null &&
              this.shipDate.equals(other.getShipDate()))) &&
            ((this.consigneeAccount==null && other.getConsigneeAccount()==null) || 
             (this.consigneeAccount!=null &&
              this.consigneeAccount.equals(other.getConsigneeAccount()))) &&
            this.thirdPartyBillingFlag == other.isThirdPartyBillingFlag() &&
            ((this.thirdPartyBillingAccount==null && other.getThirdPartyBillingAccount()==null) || 
             (this.thirdPartyBillingAccount!=null &&
              this.thirdPartyBillingAccount.equals(other.getThirdPartyBillingAccount()))) &&
            ((this.thirdPartyBillingAddress==null && other.getThirdPartyBillingAddress()==null) || 
             (this.thirdPartyBillingAddress!=null &&
              this.thirdPartyBillingAddress.equals(other.getThirdPartyBillingAddress()))) &&
            this.HALFlag == other.isHALFlag() &&
            ((this.HALAddress==null && other.getHALAddress()==null) || 
             (this.HALAddress!=null &&
              this.HALAddress.equals(other.getHALAddress()))) &&
            ((this.manifestAction==null && other.getManifestAction()==null) || 
             (this.manifestAction!=null &&
              this.manifestAction.equals(other.getManifestAction()))) &&
            ((this.shipperName==null && other.getShipperName()==null) || 
             (this.shipperName!=null &&
              this.shipperName.equals(other.getShipperName()))) &&
            this.consigneeBillingFlag == other.isConsigneeBillingFlag() &&
            ((this.shipperReference==null && other.getShipperReference()==null) || 
             (this.shipperReference!=null &&
              this.shipperReference.equals(other.getShipperReference()))) &&
            ((this.consigneeReference==null && other.getConsigneeReference()==null) || 
             (this.consigneeReference!=null &&
              this.consigneeReference.equals(other.getConsigneeReference()))) &&
            ((this.carrierInstructions==null && other.getCarrierInstructions()==null) || 
             (this.carrierInstructions!=null &&
              this.carrierInstructions.equals(other.getCarrierInstructions()))) &&
            ((this.ultimateDestinationCountry==null && other.getUltimateDestinationCountry()==null) || 
             (this.ultimateDestinationCountry!=null &&
              this.ultimateDestinationCountry.equals(other.getUltimateDestinationCountry()))) &&
            ((this.customFields==null && other.getCustomFields()==null) || 
             (this.customFields!=null &&
              this.customFields.equals(other.getCustomFields()))) &&
            ((this.timeInTransit==null && other.getTimeInTransit()==null) || 
             (this.timeInTransit!=null &&
              this.timeInTransit.equals(other.getTimeInTransit()))) &&
            ((this.packages==null && other.getPackages()==null) || 
             (this.packages!=null &&
              java.util.Arrays.equals(this.packages, other.getPackages())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getID() != null) {
            _hashCode += getID().hashCode();
        }
        if (getRecipient() != null) {
            _hashCode += getRecipient().hashCode();
        }
        if (getService() != null) {
            _hashCode += getService().hashCode();
        }
        if (getServiceName() != null) {
            _hashCode += getServiceName().hashCode();
        }
        if (getTerms() != null) {
            _hashCode += getTerms().hashCode();
        }
        _hashCode += (isResidentialFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += (isProofOfDeliveryFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += (isSignatureReleaseFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += (isSignatureRequiredFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += (isSaturdayDeliveryFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        if (getShipDate() != null) {
            _hashCode += getShipDate().hashCode();
        }
        if (getConsigneeAccount() != null) {
            _hashCode += getConsigneeAccount().hashCode();
        }
        _hashCode += (isThirdPartyBillingFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        if (getThirdPartyBillingAccount() != null) {
            _hashCode += getThirdPartyBillingAccount().hashCode();
        }
        if (getThirdPartyBillingAddress() != null) {
            _hashCode += getThirdPartyBillingAddress().hashCode();
        }
        _hashCode += (isHALFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        if (getHALAddress() != null) {
            _hashCode += getHALAddress().hashCode();
        }
        if (getManifestAction() != null) {
            _hashCode += getManifestAction().hashCode();
        }
        if (getShipperName() != null) {
            _hashCode += getShipperName().hashCode();
        }
        _hashCode += (isConsigneeBillingFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        if (getShipperReference() != null) {
            _hashCode += getShipperReference().hashCode();
        }
        if (getConsigneeReference() != null) {
            _hashCode += getConsigneeReference().hashCode();
        }
        if (getCarrierInstructions() != null) {
            _hashCode += getCarrierInstructions().hashCode();
        }
        if (getUltimateDestinationCountry() != null) {
            _hashCode += getUltimateDestinationCountry().hashCode();
        }
        if (getCustomFields() != null) {
            _hashCode += getCustomFields().hashCode();
        }
        if (getTimeInTransit() != null) {
            _hashCode += getTimeInTransit().hashCode();
        }
        if (getPackages() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getPackages());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getPackages(), 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(Shipment.class, true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Shipment"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("ID");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ID"));
        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("recipient");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Recipient"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Address"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("service");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Service"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Service"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("serviceName");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ServiceName"));
        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("terms");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Terms"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "enumTerms"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("residentialFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ResidentialFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("proofOfDeliveryFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ProofOfDeliveryFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("signatureReleaseFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "SignatureReleaseFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("signatureRequiredFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "SignatureRequiredFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("saturdayDeliveryFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "SaturdayDeliveryFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("shipDate");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ShipDate"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("consigneeAccount");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ConsigneeAccount"));
        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("thirdPartyBillingFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ThirdPartyBillingFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("thirdPartyBillingAccount");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ThirdPartyBillingAccount"));
        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("thirdPartyBillingAddress");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ThirdPartyBillingAddress"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Address"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("HALFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "HALFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("HALAddress");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "HALAddress"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Address"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("manifestAction");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ManifestAction"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "enumManifestAction"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("shipperName");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ShipperName"));
        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("consigneeBillingFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ConsigneeBillingFlag"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("shipperReference");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ShipperReference"));
        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("consigneeReference");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "ConsigneeReference"));
        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("carrierInstructions");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CarrierInstructions"));
        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("ultimateDestinationCountry");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "UltimateDestinationCountry"));
        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/", ">Shipment>CustomFields"));
        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("packages");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Packages"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Package"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        elemField.setItemQName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Package"));
        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);
    }

}
