package com.mortals.xhx.common.pdu.error;
import java.util.Date;
import java.util.List;
import com.mortals.framework.model.BaseEntityLong;

/**
* 异常日志Pdu对象
*
* @author zxfei
* @date 2022-08-17
*/

public class ErrorLogPdu extends BaseEntityLong {
    private static final long serialVersionUID = 1L;

    /**
    * 追踪Id
    */
    private String traceID;
    /**
    * 服务类型，webOS,android,IOS，服务后端
    */
    private String serverType;
    /**
    * 应用名称
    */
    private String appName;
    /**
    * 实例IP
    */
    private String hostName;
    /**
    * 日志等级
    */
    private String logLevel;
    /**
    * 线程号
    */
    private String threadNo;
    /**
    * 异常堆栈信息
    */
    private String error;
    /**
    * 响应结果
    */
    private String response;
    /**
    * 日志产生时间
    */
    private Date logTime;

    /** 开始 主键ID，主键，自增长 */
    private Long idStart;

    /** 结束 主键ID，主键，自增长 */
    private Long idEnd;

    /** 增加 主键ID，主键，自增长 */
    private Long idIncrement;

    /** 主键ID，主键，自增长列表 */
    private List <Long> idList;

    /** 追踪Id */
    private List<String> traceIDList;

    /** 服务类型，webOS,android,IOS，服务后端 */
    private List<String> serverTypeList;

    /** 应用名称 */
    private List<String> appNameList;

    /** 实例IP */
    private List<String> hostNameList;

    /** 日志等级 */
    private List<String> logLevelList;

    /** 线程号 */
    private List<String> threadNoList;

    /** 异常堆栈信息 */
    private List<String> errorList;

    /** 响应结果 */
    private List<String> responseList;

    /** 开始 日志产生时间 */
    private String logTimeStart;

    /** 结束 日志产生时间 */
    private String logTimeEnd;

    /** 开始 创建用户 */
    private Long createUserIdStart;

    /** 结束 创建用户 */
    private Long createUserIdEnd;

    /** 增加 创建用户 */
    private Long createUserIdIncrement;

    /** 创建用户列表 */
    private List <Long> createUserIdList;

    /** 开始 创建时间 */
    private String createTimeStart;

    /** 结束 创建时间 */
    private String createTimeEnd;


    /** OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
    private List<ErrorLogPdu> orConditionList;

    /** AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
    private List<ErrorLogPdu> andConditionList;

    public ErrorLogPdu(){}
    /**
    * 获取 追踪Id
    * @return String
    */
    public String getTraceID(){
        return traceID;
    }
    /**
    * 设置 追踪Id
    * @param traceID
    */
    public void setTraceID(String traceID){
        this.traceID = traceID;
    }
    /**
    * 获取 服务类型，webOS,android,IOS，服务后端
    * @return String
    */
    public String getServerType(){
        return serverType;
    }
    /**
    * 设置 服务类型，webOS,android,IOS，服务后端
    * @param serverType
    */
    public void setServerType(String serverType){
        this.serverType = serverType;
    }
    /**
    * 获取 应用名称
    * @return String
    */
    public String getAppName(){
        return appName;
    }
    /**
    * 设置 应用名称
    * @param appName
    */
    public void setAppName(String appName){
        this.appName = appName;
    }
    /**
    * 获取 实例IP
    * @return String
    */
    public String getHostName(){
        return hostName;
    }
    /**
    * 设置 实例IP
    * @param hostName
    */
    public void setHostName(String hostName){
        this.hostName = hostName;
    }
    /**
    * 获取 日志等级
    * @return String
    */
    public String getLogLevel(){
        return logLevel;
    }
    /**
    * 设置 日志等级
    * @param logLevel
    */
    public void setLogLevel(String logLevel){
        this.logLevel = logLevel;
    }
    /**
    * 获取 线程号
    * @return String
    */
    public String getThreadNo(){
        return threadNo;
    }
    /**
    * 设置 线程号
    * @param threadNo
    */
    public void setThreadNo(String threadNo){
        this.threadNo = threadNo;
    }
    /**
    * 获取 异常堆栈信息
    * @return String
    */
    public String getError(){
        return error;
    }
    /**
    * 设置 异常堆栈信息
    * @param error
    */
    public void setError(String error){
        this.error = error;
    }
    /**
    * 获取 响应结果
    * @return String
    */
    public String getResponse(){
        return response;
    }
    /**
    * 设置 响应结果
    * @param response
    */
    public void setResponse(String response){
        this.response = response;
    }
    /**
    * 获取 日志产生时间
    * @return Date
    */
    public Date getLogTime(){
        return logTime;
    }
    /**
    * 设置 日志产生时间
    * @param logTime
    */
    public void setLogTime(Date logTime){
        this.logTime = logTime;
    }

    /**
    * 获取 开始 主键ID，主键，自增长
    * @return idStart
    */
    public Long getIdStart(){
        return this.idStart;
    }

    /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public void setIdStart(Long idStart){
        this.idStart = idStart;
    }

    /**
    * 获取 结束 主键ID，主键，自增长
    * @return $idEnd
    */
    public Long getIdEnd(){
        return this.idEnd;
    }

    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public void setIdEnd(Long idEnd){
        this.idEnd = idEnd;
    }

    /**
    * 获取 增加 主键ID，主键，自增长
    * @return idIncrement
    */
    public Long getIdIncrement(){
        return this.idIncrement;
    }

    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public void setIdIncrement(Long idIncrement){
        this.idIncrement = idIncrement;
    }

    /**
    * 获取 主键ID，主键，自增长
    * @return idList
    */
    public List<Long> getIdList(){
        return this.idList;
    }

    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public void setIdList(List<Long> idList){
        this.idList = idList;
    }

    /**
    * 获取 追踪Id
    * @return traceIDList
    */
    public List<String> getTraceIDList(){
        return this.traceIDList;
    }

    /**
    * 设置 追踪Id
    * @param traceIDList
    */
    public void setTraceIDList(List<String> traceIDList){
        this.traceIDList = traceIDList;
    }
    /**
    * 获取 服务类型，webOS,android,IOS，服务后端
    * @return serverTypeList
    */
    public List<String> getServerTypeList(){
        return this.serverTypeList;
    }

    /**
    * 设置 服务类型，webOS,android,IOS，服务后端
    * @param serverTypeList
    */
    public void setServerTypeList(List<String> serverTypeList){
        this.serverTypeList = serverTypeList;
    }
    /**
    * 获取 应用名称
    * @return appNameList
    */
    public List<String> getAppNameList(){
        return this.appNameList;
    }

    /**
    * 设置 应用名称
    * @param appNameList
    */
    public void setAppNameList(List<String> appNameList){
        this.appNameList = appNameList;
    }
    /**
    * 获取 实例IP
    * @return hostNameList
    */
    public List<String> getHostNameList(){
        return this.hostNameList;
    }

    /**
    * 设置 实例IP
    * @param hostNameList
    */
    public void setHostNameList(List<String> hostNameList){
        this.hostNameList = hostNameList;
    }
    /**
    * 获取 日志等级
    * @return logLevelList
    */
    public List<String> getLogLevelList(){
        return this.logLevelList;
    }

    /**
    * 设置 日志等级
    * @param logLevelList
    */
    public void setLogLevelList(List<String> logLevelList){
        this.logLevelList = logLevelList;
    }
    /**
    * 获取 线程号
    * @return threadNoList
    */
    public List<String> getThreadNoList(){
        return this.threadNoList;
    }

    /**
    * 设置 线程号
    * @param threadNoList
    */
    public void setThreadNoList(List<String> threadNoList){
        this.threadNoList = threadNoList;
    }
    /**
    * 获取 异常堆栈信息
    * @return errorList
    */
    public List<String> getErrorList(){
        return this.errorList;
    }

    /**
    * 设置 异常堆栈信息
    * @param errorList
    */
    public void setErrorList(List<String> errorList){
        this.errorList = errorList;
    }
    /**
    * 获取 响应结果
    * @return responseList
    */
    public List<String> getResponseList(){
        return this.responseList;
    }

    /**
    * 设置 响应结果
    * @param responseList
    */
    public void setResponseList(List<String> responseList){
        this.responseList = responseList;
    }
    /**
    * 获取 开始 日志产生时间
    * @return logTimeStart
    */
    public String getLogTimeStart(){
        return this.logTimeStart;
    }

    /**
    * 设置 开始 日志产生时间
    * @param logTimeStart
    */
    public void setLogTimeStart(String logTimeStart){
        this.logTimeStart = logTimeStart;
    }

    /**
    * 获取 结束 日志产生时间
    * @return logTimeEnd
    */
    public String getLogTimeEnd(){
        return this.logTimeEnd;
    }

    /**
    * 设置 结束 日志产生时间
    * @param logTimeEnd
    */
    public void setLogTimeEnd(String logTimeEnd){
        this.logTimeEnd = logTimeEnd;
    }

    /**
    * 获取 开始 创建用户
    * @return createUserIdStart
    */
    public Long getCreateUserIdStart(){
        return this.createUserIdStart;
    }

    /**
    * 设置 开始 创建用户
    * @param createUserIdStart
    */
    public void setCreateUserIdStart(Long createUserIdStart){
        this.createUserIdStart = createUserIdStart;
    }

    /**
    * 获取 结束 创建用户
    * @return $createUserIdEnd
    */
    public Long getCreateUserIdEnd(){
        return this.createUserIdEnd;
    }

    /**
    * 设置 结束 创建用户
    * @param createUserIdEnd
    */
    public void setCreateUserIdEnd(Long createUserIdEnd){
        this.createUserIdEnd = createUserIdEnd;
    }

    /**
    * 获取 增加 创建用户
    * @return createUserIdIncrement
    */
    public Long getCreateUserIdIncrement(){
        return this.createUserIdIncrement;
    }

    /**
    * 设置 增加 创建用户
    * @param createUserIdIncrement
    */
    public void setCreateUserIdIncrement(Long createUserIdIncrement){
        this.createUserIdIncrement = createUserIdIncrement;
    }

    /**
    * 获取 创建用户
    * @return createUserIdList
    */
    public List<Long> getCreateUserIdList(){
        return this.createUserIdList;
    }

    /**
    * 设置 创建用户
    * @param createUserIdList
    */
    public void setCreateUserIdList(List<Long> createUserIdList){
        this.createUserIdList = createUserIdList;
    }

    /**
    * 获取 开始 创建时间
    * @return createTimeStart
    */
    public String getCreateTimeStart(){
        return this.createTimeStart;
    }

    /**
    * 设置 开始 创建时间
    * @param createTimeStart
    */
    public void setCreateTimeStart(String createTimeStart){
        this.createTimeStart = createTimeStart;
    }

    /**
    * 获取 结束 创建时间
    * @return createTimeEnd
    */
    public String getCreateTimeEnd(){
        return this.createTimeEnd;
    }

    /**
    * 设置 结束 创建时间
    * @param createTimeEnd
    */
    public void setCreateTimeEnd(String createTimeEnd){
        this.createTimeEnd = createTimeEnd;
    }

    /**
    * 设置  主键ID，主键，自增长
    * @param id
    */
    public ErrorLogPdu id(Long id){
	    setId(id);
		return this;
    }

	 /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public ErrorLogPdu idStart(Long idStart){
		this.idStart = idStart;
		return this;
    }

    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public ErrorLogPdu idEnd(Long idEnd){
		this.idEnd = idEnd;
		return this;
    }

    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public ErrorLogPdu idIncrement(Long idIncrement){
		this.idIncrement = idIncrement;
		return this;
    }

    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public ErrorLogPdu idList(List<Long> idList){
        this.idList = idList;
		return this;
        }


	/**
    * 设置 追踪Id
    * @param traceID
    */
    public ErrorLogPdu traceID(String traceID){
        setTraceID(traceID);
		return this;
    }

    /**
    * 设置 追踪Id
    * @param traceIDList
    */
    public ErrorLogPdu traceIDList(List<String> traceIDList){
        this.traceIDList = traceIDList;
		return this;
    }


	/**
    * 设置 服务类型，webOS,android,IOS，服务后端
    * @param serverType
    */
    public ErrorLogPdu serverType(String serverType){
        setServerType(serverType);
		return this;
    }

    /**
    * 设置 服务类型，webOS,android,IOS，服务后端
    * @param serverTypeList
    */
    public ErrorLogPdu serverTypeList(List<String> serverTypeList){
        this.serverTypeList = serverTypeList;
		return this;
    }


	/**
    * 设置 应用名称
    * @param appName
    */
    public ErrorLogPdu appName(String appName){
        setAppName(appName);
		return this;
    }

    /**
    * 设置 应用名称
    * @param appNameList
    */
    public ErrorLogPdu appNameList(List<String> appNameList){
        this.appNameList = appNameList;
		return this;
    }


	/**
    * 设置 实例IP
    * @param hostName
    */
    public ErrorLogPdu hostName(String hostName){
        setHostName(hostName);
		return this;
    }

    /**
    * 设置 实例IP
    * @param hostNameList
    */
    public ErrorLogPdu hostNameList(List<String> hostNameList){
        this.hostNameList = hostNameList;
		return this;
    }


	/**
    * 设置 日志等级
    * @param logLevel
    */
    public ErrorLogPdu logLevel(String logLevel){
        setLogLevel(logLevel);
		return this;
    }

    /**
    * 设置 日志等级
    * @param logLevelList
    */
    public ErrorLogPdu logLevelList(List<String> logLevelList){
        this.logLevelList = logLevelList;
		return this;
    }


	/**
    * 设置 线程号
    * @param threadNo
    */
    public ErrorLogPdu threadNo(String threadNo){
        setThreadNo(threadNo);
		return this;
    }

    /**
    * 设置 线程号
    * @param threadNoList
    */
    public ErrorLogPdu threadNoList(List<String> threadNoList){
        this.threadNoList = threadNoList;
		return this;
    }


	/**
    * 设置 异常堆栈信息
    * @param error
    */
    public ErrorLogPdu error(String error){
        setError(error);
		return this;
    }

    /**
    * 设置 异常堆栈信息
    * @param errorList
    */
    public ErrorLogPdu errorList(List<String> errorList){
        this.errorList = errorList;
		return this;
    }


	/**
    * 设置 响应结果
    * @param response
    */
    public ErrorLogPdu response(String response){
        setResponse(response);
		return this;
    }

    /**
    * 设置 响应结果
    * @param responseList
    */
    public ErrorLogPdu responseList(List<String> responseList){
        this.responseList = responseList;
		return this;
    }


    /**
    * 设置  创建用户
    * @param createUserId
    */
    public ErrorLogPdu createUserId(Long createUserId){
	    setCreateUserId(createUserId);
		return this;
    }

	 /**
    * 设置 开始 创建用户
    * @param createUserIdStart
    */
    public ErrorLogPdu createUserIdStart(Long createUserIdStart){
		this.createUserIdStart = createUserIdStart;
		return this;
    }

    /**
    * 设置 结束 创建用户
    * @param createUserIdEnd
    */
    public ErrorLogPdu createUserIdEnd(Long createUserIdEnd){
		this.createUserIdEnd = createUserIdEnd;
		return this;
    }

    /**
    * 设置 增加 创建用户
    * @param createUserIdIncrement
    */
    public ErrorLogPdu createUserIdIncrement(Long createUserIdIncrement){
		this.createUserIdIncrement = createUserIdIncrement;
		return this;
    }

    /**
    * 设置 创建用户
    * @param createUserIdList
    */
    public ErrorLogPdu createUserIdList(List<Long> createUserIdList){
        this.createUserIdList = createUserIdList;
		return this;
        }



/**
    * 获取 OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @return orConditionList
    */
    public List<ErrorLogPdu> getOrConditionList(){
    return this.orConditionList;
    }

    /**
    * 设置 OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @param orConditionList
    */
    public void setOrConditionList(List<ErrorLogPdu> orConditionList){
        this.orConditionList = orConditionList;
    }

    /**
    * 获取 AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @return andConditionList
    */
    public List<ErrorLogPdu> getAndConditionList(){
        return this.andConditionList;
    }

    /**
    * 设置 AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @param andConditionList
    */
    public void setAndConditionList(List<ErrorLogPdu> andConditionList){
        this.andConditionList = andConditionList;
    }

    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof ErrorLogPdu) {
            ErrorLogPdu tmp = (ErrorLogPdu) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public void initAttrValue(){

            this.traceID = "";

            this.serverType = "";

            this.appName = "";

            this.hostName = "";

            this.logLevel = "";

            this.threadNo = "";

            this.error = "";

            this.response = "";

            this.logTime = null;
    }
}