package jtznyj.engineer.service.dataDiagnosticService.data;

import java.util.Date;

/**
 * 报警点描述类
 */
public class AlarmPoint {
    /**
     * 名称
     */
    public String name;


    /**
     * 起始日期
     */
    public Date alarmDate;

    /**
     * 真实字段
     */
    public String field;

    /**
     * 值
     */
    public double value;

    /**
     * 深度
     */
    public double depth;

    /**
     * 钻头
     */
    public double ztDepth;

    /**
     * 报警类型
     */
    public String alarmType;

    /**
     * 描述
     */
    public String des;

    /**
     * 异常原因 需要传出去
     */
    public String WarningCause;

    public AlarmPoint(){

    }

    @Override
    public boolean equals(Object obj) {
        //Object的equals()默认实现是：采用“this==obj”来比较 “当前对象与给定对象指向的内存地址是否一致”。
        //如果List中的元素不是String,Integr这些系统提供的类的话(这些系统类都重写了equals()),需要重写equals()方法。
        //为什么要重写??如果不重写,当调用List的提供的系统方法时(例如indexOf()),这些方法可能会调用给定对象的equals()
        //来做相应判断，如果给定的对象的内容相同但是对象在内存的存储地址不同时，则会出现判断错误情况。

        if(obj == null){
            return false;
        }

        if(this == obj){
            return true;
        }

        if(obj instanceof AlarmPoint){
            AlarmPoint point = (AlarmPoint) obj;
            if(point.name == null || this.name == null || point.alarmDate == null || this.alarmDate == null){
                return false;
            }
            if(point.name == this.name && this.alarmDate.getTime() == point.alarmDate.getTime()){
                return true;
            }

            if(point.name.equals(this.name)  && this.alarmDate.getTime() == point.alarmDate.getTime()){
                return true;
            }
        }

        return false;
    }
}
