/**
 * BaseResponseType.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 BaseResponseType  implements java.io.Serializable {
    private String requestID;

    private String responseType;

    private Long responseTime;

    private com.style24.core.biz.checkout.base.ErrorType error;

    private com.style24.core.biz.checkout.base.WarningType[] warningList;

    private com.style24.core.biz.checkout.base.QuotaStatusType quotaStatus;

    public BaseResponseType() {
    }

    public BaseResponseType(
           String requestID,
           String responseType,
           Long responseTime,
           com.style24.core.biz.checkout.base.ErrorType error,
           com.style24.core.biz.checkout.base.WarningType[] warningList,
           com.style24.core.biz.checkout.base.QuotaStatusType quotaStatus) {
           this.requestID = requestID;
           this.responseType = responseType;
           this.responseTime = responseTime;
           this.error = error;
           this.warningList = warningList;
           this.quotaStatus = quotaStatus;
    }


    /**
     * Gets the requestID value for this BaseResponseType.
     *
     * @return requestID
     */
    public String getRequestID() {
        return requestID;
    }


    /**
     * Sets the requestID value for this BaseResponseType.
     *
     * @param requestID
     */
    public void setRequestID(String requestID) {
        this.requestID = requestID;
    }


    /**
     * Gets the responseType value for this BaseResponseType.
     *
     * @return responseType
     */
    public String getResponseType() {
        return responseType;
    }


    /**
     * Sets the responseType value for this BaseResponseType.
     *
     * @param responseType
     */
    public void setResponseType(String responseType) {
        this.responseType = responseType;
    }


    /**
     * Gets the responseTime value for this BaseResponseType.
     *
     * @return responseTime
     */
    public Long getResponseTime() {
        return responseTime;
    }


    /**
     * Sets the responseTime value for this BaseResponseType.
     *
     * @param responseTime
     */
    public void setResponseTime(Long responseTime) {
        this.responseTime = responseTime;
    }


    /**
     * Gets the error value for this BaseResponseType.
     *
     * @return error
     */
    public com.style24.core.biz.checkout.base.ErrorType getError() {
        return error;
    }


    /**
     * Sets the error value for this BaseResponseType.
     *
     * @param error
     */
    public void setError(com.style24.core.biz.checkout.base.ErrorType error) {
        this.error = error;
    }


    /**
     * Gets the warningList value for this BaseResponseType.
     *
     * @return warningList
     */
    public com.style24.core.biz.checkout.base.WarningType[] getWarningList() {
        return warningList;
    }


    /**
     * Sets the warningList value for this BaseResponseType.
     *
     * @param warningList
     */
    public void setWarningList(com.style24.core.biz.checkout.base.WarningType[] warningList) {
        this.warningList = warningList;
    }


    /**
     * Gets the quotaStatus value for this BaseResponseType.
     *
     * @return quotaStatus
     */
    public com.style24.core.biz.checkout.base.QuotaStatusType getQuotaStatus() {
        return quotaStatus;
    }


    /**
     * Sets the quotaStatus value for this BaseResponseType.
     *
     * @param quotaStatus
     */
    public void setQuotaStatus(com.style24.core.biz.checkout.base.QuotaStatusType quotaStatus) {
        this.quotaStatus = quotaStatus;
    }

    private Object __equalsCalc = null;
    public synchronized boolean equals(Object obj) {
        if (!(obj instanceof BaseResponseType)) return false;
        BaseResponseType other = (BaseResponseType) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true &&
            ((this.requestID==null && other.getRequestID()==null) ||
             (this.requestID!=null &&
              this.requestID.equals(other.getRequestID()))) &&
            ((this.responseType==null && other.getResponseType()==null) ||
             (this.responseType!=null &&
              this.responseType.equals(other.getResponseType()))) &&
            ((this.responseTime==null && other.getResponseTime()==null) ||
             (this.responseTime!=null &&
              this.responseTime.equals(other.getResponseTime()))) &&
            ((this.error==null && other.getError()==null) ||
             (this.error!=null &&
              this.error.equals(other.getError()))) &&
            ((this.warningList==null && other.getWarningList()==null) ||
             (this.warningList!=null &&
              java.util.Arrays.equals(this.warningList, other.getWarningList()))) &&
            ((this.quotaStatus==null && other.getQuotaStatus()==null) ||
             (this.quotaStatus!=null &&
              this.quotaStatus.equals(other.getQuotaStatus())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getRequestID() != null) {
            _hashCode += getRequestID().hashCode();
        }
        if (getResponseType() != null) {
            _hashCode += getResponseType().hashCode();
        }
        if (getResponseTime() != null) {
            _hashCode += getResponseTime().hashCode();
        }
        if (getError() != null) {
            _hashCode += getError().hashCode();
        }
        if (getWarningList() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getWarningList());
                 i++) {
                Object obj = java.lang.reflect.Array.get(getWarningList(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getQuotaStatus() != null) {
            _hashCode += getQuotaStatus().hashCode();
        }
        __hashCodeCalc = false;
        return _hashCode;
    }

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

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "BaseResponseType"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("requestID");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "RequestID"));
        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("responseType");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "ResponseType"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("responseTime");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "ResponseTime"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("error");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "Error"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "ErrorType"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("warningList");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "WarningList"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "WarningType"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        elemField.setItemQName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "Warning"));
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("quotaStatus");
        elemField.setXmlName(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "QuotaStatus"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://base.checkout.platform.nhncorp.com/", "QuotaStatusType"));
        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);
    }

}
