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

    private double weight;

    private java.lang.String dimension;

    private java.lang.String trackingNumber;

    private java.lang.String description;

    private java.lang.String commodityClass;

    private boolean oversizeFlag;

    private double oversizeFee;

    private boolean declaredValueFlag;

    private double declaredValueAmount;

    private double declaredValueCustoms;

    private java.lang.String billOfLadingComment;

    private boolean hazmatFlag;

    private boolean additionalHandlingFlag;

    private double additionalHandlingFee;

    private com.adsionline.ADSIShippingWS.EnumPackageType packaging;

    private boolean CODFlag;

    private double CODAmount;

    private int CODPaymentType;

    private com.adsionline.ADSIShippingWS.Address CODReturnAddress;

    private com.adsionline.ADSIShippingWS.PackageCustomFields customFields;

    private com.adsionline.ADSIShippingWS.IDangerousGoods[] dangerousGoods;

    private com.adsionline.ADSIShippingWS.CommodityInfo[] commodityInfos;

    public _package() {
    }

    public _package(
           java.lang.String ID,
           double weight,
           java.lang.String dimension,
           java.lang.String trackingNumber,
           java.lang.String description,
           java.lang.String commodityClass,
           boolean oversizeFlag,
           double oversizeFee,
           boolean declaredValueFlag,
           double declaredValueAmount,
           double declaredValueCustoms,
           java.lang.String billOfLadingComment,
           boolean hazmatFlag,
           boolean additionalHandlingFlag,
           double additionalHandlingFee,
           com.adsionline.ADSIShippingWS.EnumPackageType packaging,
           boolean CODFlag,
           double CODAmount,
           int CODPaymentType,
           com.adsionline.ADSIShippingWS.Address CODReturnAddress,
           com.adsionline.ADSIShippingWS.PackageCustomFields customFields,
           com.adsionline.ADSIShippingWS.IDangerousGoods[] dangerousGoods,
           com.adsionline.ADSIShippingWS.CommodityInfo[] commodityInfos) {
           this.ID = ID;
           this.weight = weight;
           this.dimension = dimension;
           this.trackingNumber = trackingNumber;
           this.description = description;
           this.commodityClass = commodityClass;
           this.oversizeFlag = oversizeFlag;
           this.oversizeFee = oversizeFee;
           this.declaredValueFlag = declaredValueFlag;
           this.declaredValueAmount = declaredValueAmount;
           this.declaredValueCustoms = declaredValueCustoms;
           this.billOfLadingComment = billOfLadingComment;
           this.hazmatFlag = hazmatFlag;
           this.additionalHandlingFlag = additionalHandlingFlag;
           this.additionalHandlingFee = additionalHandlingFee;
           this.packaging = packaging;
           this.CODFlag = CODFlag;
           this.CODAmount = CODAmount;
           this.CODPaymentType = CODPaymentType;
           this.CODReturnAddress = CODReturnAddress;
           this.customFields = customFields;
           this.dangerousGoods = dangerousGoods;
           this.commodityInfos = commodityInfos;
    }


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


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


    /**
     * Gets the weight value for this _package.
     * 
     * @return weight
     */
    public double getWeight() {
        return weight;
    }


    /**
     * Sets the weight value for this _package.
     * 
     * @param weight
     */
    public void setWeight(double weight) {
        this.weight = weight;
    }


    /**
     * Gets the dimension value for this _package.
     * 
     * @return dimension
     */
    public java.lang.String getDimension() {
        return dimension;
    }


    /**
     * Sets the dimension value for this _package.
     * 
     * @param dimension
     */
    public void setDimension(java.lang.String dimension) {
        this.dimension = dimension;
    }


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


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


    /**
     * Gets the description value for this _package.
     * 
     * @return description
     */
    public java.lang.String getDescription() {
        return description;
    }


    /**
     * Sets the description value for this _package.
     * 
     * @param description
     */
    public void setDescription(java.lang.String description) {
        this.description = description;
    }


    /**
     * Gets the commodityClass value for this _package.
     * 
     * @return commodityClass
     */
    public java.lang.String getCommodityClass() {
        return commodityClass;
    }


    /**
     * Sets the commodityClass value for this _package.
     * 
     * @param commodityClass
     */
    public void setCommodityClass(java.lang.String commodityClass) {
        this.commodityClass = commodityClass;
    }


    /**
     * Gets the oversizeFlag value for this _package.
     * 
     * @return oversizeFlag
     */
    public boolean isOversizeFlag() {
        return oversizeFlag;
    }


    /**
     * Sets the oversizeFlag value for this _package.
     * 
     * @param oversizeFlag
     */
    public void setOversizeFlag(boolean oversizeFlag) {
        this.oversizeFlag = oversizeFlag;
    }


    /**
     * Gets the oversizeFee value for this _package.
     * 
     * @return oversizeFee
     */
    public double getOversizeFee() {
        return oversizeFee;
    }


    /**
     * Sets the oversizeFee value for this _package.
     * 
     * @param oversizeFee
     */
    public void setOversizeFee(double oversizeFee) {
        this.oversizeFee = oversizeFee;
    }


    /**
     * Gets the declaredValueFlag value for this _package.
     * 
     * @return declaredValueFlag
     */
    public boolean isDeclaredValueFlag() {
        return declaredValueFlag;
    }


    /**
     * Sets the declaredValueFlag value for this _package.
     * 
     * @param declaredValueFlag
     */
    public void setDeclaredValueFlag(boolean declaredValueFlag) {
        this.declaredValueFlag = declaredValueFlag;
    }


    /**
     * Gets the declaredValueAmount value for this _package.
     * 
     * @return declaredValueAmount
     */
    public double getDeclaredValueAmount() {
        return declaredValueAmount;
    }


    /**
     * Sets the declaredValueAmount value for this _package.
     * 
     * @param declaredValueAmount
     */
    public void setDeclaredValueAmount(double declaredValueAmount) {
        this.declaredValueAmount = declaredValueAmount;
    }


    /**
     * Gets the declaredValueCustoms value for this _package.
     * 
     * @return declaredValueCustoms
     */
    public double getDeclaredValueCustoms() {
        return declaredValueCustoms;
    }


    /**
     * Sets the declaredValueCustoms value for this _package.
     * 
     * @param declaredValueCustoms
     */
    public void setDeclaredValueCustoms(double declaredValueCustoms) {
        this.declaredValueCustoms = declaredValueCustoms;
    }


    /**
     * Gets the billOfLadingComment value for this _package.
     * 
     * @return billOfLadingComment
     */
    public java.lang.String getBillOfLadingComment() {
        return billOfLadingComment;
    }


    /**
     * Sets the billOfLadingComment value for this _package.
     * 
     * @param billOfLadingComment
     */
    public void setBillOfLadingComment(java.lang.String billOfLadingComment) {
        this.billOfLadingComment = billOfLadingComment;
    }


    /**
     * Gets the hazmatFlag value for this _package.
     * 
     * @return hazmatFlag
     */
    public boolean isHazmatFlag() {
        return hazmatFlag;
    }


    /**
     * Sets the hazmatFlag value for this _package.
     * 
     * @param hazmatFlag
     */
    public void setHazmatFlag(boolean hazmatFlag) {
        this.hazmatFlag = hazmatFlag;
    }


    /**
     * Gets the additionalHandlingFlag value for this _package.
     * 
     * @return additionalHandlingFlag
     */
    public boolean isAdditionalHandlingFlag() {
        return additionalHandlingFlag;
    }


    /**
     * Sets the additionalHandlingFlag value for this _package.
     * 
     * @param additionalHandlingFlag
     */
    public void setAdditionalHandlingFlag(boolean additionalHandlingFlag) {
        this.additionalHandlingFlag = additionalHandlingFlag;
    }


    /**
     * Gets the additionalHandlingFee value for this _package.
     * 
     * @return additionalHandlingFee
     */
    public double getAdditionalHandlingFee() {
        return additionalHandlingFee;
    }


    /**
     * Sets the additionalHandlingFee value for this _package.
     * 
     * @param additionalHandlingFee
     */
    public void setAdditionalHandlingFee(double additionalHandlingFee) {
        this.additionalHandlingFee = additionalHandlingFee;
    }


    /**
     * Gets the packaging value for this _package.
     * 
     * @return packaging
     */
    public com.adsionline.ADSIShippingWS.EnumPackageType getPackaging() {
        return packaging;
    }


    /**
     * Sets the packaging value for this _package.
     * 
     * @param packaging
     */
    public void setPackaging(com.adsionline.ADSIShippingWS.EnumPackageType packaging) {
        this.packaging = packaging;
    }


    /**
     * Gets the CODFlag value for this _package.
     * 
     * @return CODFlag
     */
    public boolean isCODFlag() {
        return CODFlag;
    }


    /**
     * Sets the CODFlag value for this _package.
     * 
     * @param CODFlag
     */
    public void setCODFlag(boolean CODFlag) {
        this.CODFlag = CODFlag;
    }


    /**
     * Gets the CODAmount value for this _package.
     * 
     * @return CODAmount
     */
    public double getCODAmount() {
        return CODAmount;
    }


    /**
     * Sets the CODAmount value for this _package.
     * 
     * @param CODAmount
     */
    public void setCODAmount(double CODAmount) {
        this.CODAmount = CODAmount;
    }


    /**
     * Gets the CODPaymentType value for this _package.
     * 
     * @return CODPaymentType
     */
    public int getCODPaymentType() {
        return CODPaymentType;
    }


    /**
     * Sets the CODPaymentType value for this _package.
     * 
     * @param CODPaymentType
     */
    public void setCODPaymentType(int CODPaymentType) {
        this.CODPaymentType = CODPaymentType;
    }


    /**
     * Gets the CODReturnAddress value for this _package.
     * 
     * @return CODReturnAddress
     */
    public com.adsionline.ADSIShippingWS.Address getCODReturnAddress() {
        return CODReturnAddress;
    }


    /**
     * Sets the CODReturnAddress value for this _package.
     * 
     * @param CODReturnAddress
     */
    public void setCODReturnAddress(com.adsionline.ADSIShippingWS.Address CODReturnAddress) {
        this.CODReturnAddress = CODReturnAddress;
    }


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


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


    /**
     * Gets the dangerousGoods value for this _package.
     * 
     * @return dangerousGoods
     */
    public com.adsionline.ADSIShippingWS.IDangerousGoods[] getDangerousGoods() {
        return dangerousGoods;
    }


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


    /**
     * Gets the commodityInfos value for this _package.
     * 
     * @return commodityInfos
     */
    public com.adsionline.ADSIShippingWS.CommodityInfo[] getCommodityInfos() {
        return commodityInfos;
    }


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

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof _package)) return false;
        _package other = (_package) 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.weight == other.getWeight() &&
            ((this.dimension==null && other.getDimension()==null) || 
             (this.dimension!=null &&
              this.dimension.equals(other.getDimension()))) &&
            ((this.trackingNumber==null && other.getTrackingNumber()==null) || 
             (this.trackingNumber!=null &&
              this.trackingNumber.equals(other.getTrackingNumber()))) &&
            ((this.description==null && other.getDescription()==null) || 
             (this.description!=null &&
              this.description.equals(other.getDescription()))) &&
            ((this.commodityClass==null && other.getCommodityClass()==null) || 
             (this.commodityClass!=null &&
              this.commodityClass.equals(other.getCommodityClass()))) &&
            this.oversizeFlag == other.isOversizeFlag() &&
            this.oversizeFee == other.getOversizeFee() &&
            this.declaredValueFlag == other.isDeclaredValueFlag() &&
            this.declaredValueAmount == other.getDeclaredValueAmount() &&
            this.declaredValueCustoms == other.getDeclaredValueCustoms() &&
            ((this.billOfLadingComment==null && other.getBillOfLadingComment()==null) || 
             (this.billOfLadingComment!=null &&
              this.billOfLadingComment.equals(other.getBillOfLadingComment()))) &&
            this.hazmatFlag == other.isHazmatFlag() &&
            this.additionalHandlingFlag == other.isAdditionalHandlingFlag() &&
            this.additionalHandlingFee == other.getAdditionalHandlingFee() &&
            ((this.packaging==null && other.getPackaging()==null) || 
             (this.packaging!=null &&
              this.packaging.equals(other.getPackaging()))) &&
            this.CODFlag == other.isCODFlag() &&
            this.CODAmount == other.getCODAmount() &&
            this.CODPaymentType == other.getCODPaymentType() &&
            ((this.CODReturnAddress==null && other.getCODReturnAddress()==null) || 
             (this.CODReturnAddress!=null &&
              this.CODReturnAddress.equals(other.getCODReturnAddress()))) &&
            ((this.customFields==null && other.getCustomFields()==null) || 
             (this.customFields!=null &&
              this.customFields.equals(other.getCustomFields()))) &&
            ((this.dangerousGoods==null && other.getDangerousGoods()==null) || 
             (this.dangerousGoods!=null &&
              java.util.Arrays.equals(this.dangerousGoods, other.getDangerousGoods()))) &&
            ((this.commodityInfos==null && other.getCommodityInfos()==null) || 
             (this.commodityInfos!=null &&
              java.util.Arrays.equals(this.commodityInfos, other.getCommodityInfos())));
        __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();
        }
        _hashCode += new Double(getWeight()).hashCode();
        if (getDimension() != null) {
            _hashCode += getDimension().hashCode();
        }
        if (getTrackingNumber() != null) {
            _hashCode += getTrackingNumber().hashCode();
        }
        if (getDescription() != null) {
            _hashCode += getDescription().hashCode();
        }
        if (getCommodityClass() != null) {
            _hashCode += getCommodityClass().hashCode();
        }
        _hashCode += (isOversizeFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += new Double(getOversizeFee()).hashCode();
        _hashCode += (isDeclaredValueFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += new Double(getDeclaredValueAmount()).hashCode();
        _hashCode += new Double(getDeclaredValueCustoms()).hashCode();
        if (getBillOfLadingComment() != null) {
            _hashCode += getBillOfLadingComment().hashCode();
        }
        _hashCode += (isHazmatFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += (isAdditionalHandlingFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += new Double(getAdditionalHandlingFee()).hashCode();
        if (getPackaging() != null) {
            _hashCode += getPackaging().hashCode();
        }
        _hashCode += (isCODFlag() ? Boolean.TRUE : Boolean.FALSE).hashCode();
        _hashCode += new Double(getCODAmount()).hashCode();
        _hashCode += getCODPaymentType();
        if (getCODReturnAddress() != null) {
            _hashCode += getCODReturnAddress().hashCode();
        }
        if (getCustomFields() != null) {
            _hashCode += getCustomFields().hashCode();
        }
        if (getDangerousGoods() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getDangerousGoods());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getDangerousGoods(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getCommodityInfos() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getCommodityInfos());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getCommodityInfos(), 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(_package.class, true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Package"));
        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("weight");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Weight"));
        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("dimension");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Dimension"));
        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("trackingNumber");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "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("description");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Description"));
        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("commodityClass");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CommodityClass"));
        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("oversizeFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "OversizeFlag"));
        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("oversizeFee");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "OversizeFee"));
        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("declaredValueFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "DeclaredValueFlag"));
        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("declaredValueAmount");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "DeclaredValueAmount"));
        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("declaredValueCustoms");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "DeclaredValueCustoms"));
        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("billOfLadingComment");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "BillOfLadingComment"));
        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("hazmatFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "HazmatFlag"));
        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("additionalHandlingFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "AdditionalHandlingFlag"));
        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("additionalHandlingFee");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "AdditionalHandlingFee"));
        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("packaging");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "Packaging"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "enumPackageType"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("CODFlag");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CODFlag"));
        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("CODAmount");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CODAmount"));
        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("CODPaymentType");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CODPaymentType"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("CODReturnAddress");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CODReturnAddress"));
        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("customFields");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CustomFields"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", ">Package>CustomFields"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("dangerousGoods");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "DangerousGoods"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "IDangerousGoods"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        elemField.setItemQName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "IDangerousGoods"));
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("commodityInfos");
        elemField.setXmlName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CommodityInfos"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CommodityInfo"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        elemField.setItemQName(new javax.xml.namespace.QName("http://adsionline.com/ADSIShippingWS/", "CommodityInfo"));
        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);
    }

}
