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

package com.kingdee.eas.custom.notify.notifyTodo;

import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.eas.custom.notify.UpdateContentInfo;
import com.kingdee.eas.custom.notify.bziEnum.LevelEnum;
import com.kingdee.eas.custom.notify.bziEnum.SendTypeEnum;
import com.kingdee.eas.custom.notify.bziEnum.TypeEnum;

public class NotifyTodoUpdateContext implements java.io.Serializable {
    private String appName;

    private String createTime;

    private String docCreator;

    private String extendContent;

    private String key;

    private Integer level;

    private String link;

    private String modelId;

    private String modelName;

    private String others;

    private String param1;

    private String param2;

    private String subject;

    private int type;

    public NotifyTodoUpdateContext() {
    }

    public NotifyTodoUpdateContext(
            String appName,
            String createTime,
            String docCreator,
            String extendContent,
            String key,
            Integer level,
            String link,
            String modelId,
            String modelName,
            String others,
            String param1,
            String param2,
            String subject,
            int type) {
        this.appName = appName;
        this.createTime = createTime;
        this.docCreator = docCreator;
        this.extendContent = extendContent;
        this.key = key;
        this.level = level;
        this.link = link;
        this.modelId = modelId;
        this.modelName = modelName;
        this.others = others;
        this.param1 = param1;
        this.param2 = param2;
        this.subject = subject;
        this.type = type;
    }

    public NotifyTodoUpdateContext(UpdateContentInfo content) {
        this.appName = content.getAppName();
        this.createTime = String.valueOf(content.getCreateTime());
        //this.docCreator = docCreator;
        this.extendContent = content.getExtendContent();
        this.key = content.getKey();
        LevelEnum level = content.getLevel();
        this.level = level == null ? null : level.getValue();
        this.link = content.getLink();
        this.modelId = content.getModelId();
        this.modelName = content.getModelName();
        //this.others = others;
        this.param1 = content.getParam1();
        this.param2 = content.getParam2();
        this.subject = content.getSubject();
        TypeEnum type = content.getType();
        this.type = type == null ? null : type.getValue();
    }


    /**
     * Gets the appName value for this NotifyTodoUpdateContext.
     *
     * @return appName
     */
    public String getAppName() {
        return appName;
    }


    /**
     * Sets the appName value for this NotifyTodoUpdateContext.
     *
     * @param appName
     */
    public void setAppName(String appName) {
        this.appName = appName;
    }


    /**
     * Gets the createTime value for this NotifyTodoUpdateContext.
     *
     * @return createTime
     */
    public String getCreateTime() {
        return createTime;
    }


    /**
     * Sets the createTime value for this NotifyTodoUpdateContext.
     *
     * @param createTime
     */
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }


    /**
     * Gets the docCreator value for this NotifyTodoUpdateContext.
     *
     * @return docCreator
     */
    public String getDocCreator() {
        return docCreator;
    }


    /**
     * Sets the docCreator value for this NotifyTodoUpdateContext.
     *
     * @param docCreator
     */
    public void setDocCreator(String docCreator) {
        this.docCreator = docCreator;
    }


    /**
     * Gets the extendContent value for this NotifyTodoUpdateContext.
     *
     * @return extendContent
     */
    public String getExtendContent() {
        return extendContent;
    }


    /**
     * Sets the extendContent value for this NotifyTodoUpdateContext.
     *
     * @param extendContent
     */
    public void setExtendContent(String extendContent) {
        this.extendContent = extendContent;
    }


    /**
     * Gets the key value for this NotifyTodoUpdateContext.
     *
     * @return key
     */
    public String getKey() {
        return key;
    }


    /**
     * Sets the key value for this NotifyTodoUpdateContext.
     *
     * @param key
     */
    public void setKey(String key) {
        this.key = key;
    }


    /**
     * Gets the level value for this NotifyTodoUpdateContext.
     *
     * @return level
     */
    public Integer getLevel() {
        return level;
    }


    /**
     * Sets the level value for this NotifyTodoUpdateContext.
     *
     * @param level
     */
    public void setLevel(Integer level) {
        this.level = level;
    }


    /**
     * Gets the link value for this NotifyTodoUpdateContext.
     *
     * @return link
     */
    public String getLink() {
        return link;
    }


    /**
     * Sets the link value for this NotifyTodoUpdateContext.
     *
     * @param link
     */
    public void setLink(String link) {
        this.link = link;
    }


    /**
     * Gets the modelId value for this NotifyTodoUpdateContext.
     *
     * @return modelId
     */
    public String getModelId() {
        return modelId;
    }


    /**
     * Sets the modelId value for this NotifyTodoUpdateContext.
     *
     * @param modelId
     */
    public void setModelId(String modelId) {
        this.modelId = modelId;
    }


    /**
     * Gets the modelName value for this NotifyTodoUpdateContext.
     *
     * @return modelName
     */
    public String getModelName() {
        return modelName;
    }


    /**
     * Sets the modelName value for this NotifyTodoUpdateContext.
     *
     * @param modelName
     */
    public void setModelName(String modelName) {
        this.modelName = modelName;
    }


    /**
     * Gets the others value for this NotifyTodoUpdateContext.
     *
     * @return others
     */
    public String getOthers() {
        return others;
    }


    /**
     * Sets the others value for this NotifyTodoUpdateContext.
     *
     * @param others
     */
    public void setOthers(String others) {
        this.others = others;
    }


    /**
     * Gets the param1 value for this NotifyTodoUpdateContext.
     *
     * @return param1
     */
    public String getParam1() {
        return param1;
    }


    /**
     * Sets the param1 value for this NotifyTodoUpdateContext.
     *
     * @param param1
     */
    public void setParam1(String param1) {
        this.param1 = param1;
    }


    /**
     * Gets the param2 value for this NotifyTodoUpdateContext.
     *
     * @return param2
     */
    public String getParam2() {
        return param2;
    }


    /**
     * Sets the param2 value for this NotifyTodoUpdateContext.
     *
     * @param param2
     */
    public void setParam2(String param2) {
        this.param2 = param2;
    }


    /**
     * Gets the subject value for this NotifyTodoUpdateContext.
     *
     * @return subject
     */
    public String getSubject() {
        return subject;
    }


    /**
     * Sets the subject value for this NotifyTodoUpdateContext.
     *
     * @param subject
     */
    public void setSubject(String subject) {
        this.subject = subject;
    }


    /**
     * Gets the type value for this NotifyTodoUpdateContext.
     *
     * @return type
     */
    public int getType() {
        return type;
    }


    /**
     * Sets the type value for this NotifyTodoUpdateContext.
     *
     * @param type
     */
    public void setType(int type) {
        this.type = type;
    }

    private Object __equalsCalc = null;

    public synchronized boolean equals(Object obj) {
        if (!(obj instanceof NotifyTodoUpdateContext)) return false;
        NotifyTodoUpdateContext other = (NotifyTodoUpdateContext) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true &&
                ((this.appName == null && other.getAppName() == null) ||
                        (this.appName != null &&
                                this.appName.equals(other.getAppName()))) &&
                ((this.createTime == null && other.getCreateTime() == null) ||
                        (this.createTime != null &&
                                this.createTime.equals(other.getCreateTime()))) &&
                ((this.docCreator == null && other.getDocCreator() == null) ||
                        (this.docCreator != null &&
                                this.docCreator.equals(other.getDocCreator()))) &&
                ((this.extendContent == null && other.getExtendContent() == null) ||
                        (this.extendContent != null &&
                                this.extendContent.equals(other.getExtendContent()))) &&
                ((this.key == null && other.getKey() == null) ||
                        (this.key != null &&
                                this.key.equals(other.getKey()))) &&
                ((this.level == null && other.getLevel() == null) ||
                        (this.level != null &&
                                this.level.equals(other.getLevel()))) &&
                ((this.link == null && other.getLink() == null) ||
                        (this.link != null &&
                                this.link.equals(other.getLink()))) &&
                ((this.modelId == null && other.getModelId() == null) ||
                        (this.modelId != null &&
                                this.modelId.equals(other.getModelId()))) &&
                ((this.modelName == null && other.getModelName() == null) ||
                        (this.modelName != null &&
                                this.modelName.equals(other.getModelName()))) &&
                ((this.others == null && other.getOthers() == null) ||
                        (this.others != null &&
                                this.others.equals(other.getOthers()))) &&
                ((this.param1 == null && other.getParam1() == null) ||
                        (this.param1 != null &&
                                this.param1.equals(other.getParam1()))) &&
                ((this.param2 == null && other.getParam2() == null) ||
                        (this.param2 != null &&
                                this.param2.equals(other.getParam2()))) &&
                ((this.subject == null && other.getSubject() == null) ||
                        (this.subject != null &&
                                this.subject.equals(other.getSubject()))) &&
                this.type == other.getType();
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;

    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getAppName() != null) {
            _hashCode += getAppName().hashCode();
        }
        if (getCreateTime() != null) {
            _hashCode += getCreateTime().hashCode();
        }
        if (getDocCreator() != null) {
            _hashCode += getDocCreator().hashCode();
        }
        if (getExtendContent() != null) {
            _hashCode += getExtendContent().hashCode();
        }
        if (getKey() != null) {
            _hashCode += getKey().hashCode();
        }
        if (getLevel() != null) {
            _hashCode += getLevel().hashCode();
        }
        if (getLink() != null) {
            _hashCode += getLink().hashCode();
        }
        if (getModelId() != null) {
            _hashCode += getModelId().hashCode();
        }
        if (getModelName() != null) {
            _hashCode += getModelName().hashCode();
        }
        if (getOthers() != null) {
            _hashCode += getOthers().hashCode();
        }
        if (getParam1() != null) {
            _hashCode += getParam1().hashCode();
        }
        if (getParam2() != null) {
            _hashCode += getParam2().hashCode();
        }
        if (getSubject() != null) {
            _hashCode += getSubject().hashCode();
        }
        _hashCode += getType();
        __hashCodeCalc = false;
        return _hashCode;
    }

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

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://webservice.notify.sys.kmss.landray.com/", "notifyTodoUpdateContext"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("appName");
        elemField.setXmlName(new javax.xml.namespace.QName("", "appName"));
        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("createTime");
        elemField.setXmlName(new javax.xml.namespace.QName("", "createTime"));
        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("docCreator");
        elemField.setXmlName(new javax.xml.namespace.QName("", "docCreator"));
        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("extendContent");
        elemField.setXmlName(new javax.xml.namespace.QName("", "extendContent"));
        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("key");
        elemField.setXmlName(new javax.xml.namespace.QName("", "key"));
        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("level");
        elemField.setXmlName(new javax.xml.namespace.QName("", "level"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        elemField.setMinOccurs(0);
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("link");
        elemField.setXmlName(new javax.xml.namespace.QName("", "link"));
        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("modelId");
        elemField.setXmlName(new javax.xml.namespace.QName("", "modelId"));
        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("modelName");
        elemField.setXmlName(new javax.xml.namespace.QName("", "modelName"));
        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("others");
        elemField.setXmlName(new javax.xml.namespace.QName("", "others"));
        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("param1");
        elemField.setXmlName(new javax.xml.namespace.QName("", "param1"));
        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("param2");
        elemField.setXmlName(new javax.xml.namespace.QName("", "param2"));
        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("subject");
        elemField.setXmlName(new javax.xml.namespace.QName("", "subject"));
        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("type");
        elemField.setXmlName(new javax.xml.namespace.QName("", "type"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        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);
    }

}
