@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o instanceof Hurricane) {
            return true;
        }

        Hurricane hurricane = (Hurricane) o;

        if (getYear() != hurricane.getYear()) {
            return false;
        }
        if (getAtcfNumber() != null ? !getAtcfNumber().equals(hurricane.getAtcfNumber()) : hurricane.getAtcfNumber() != null) {
            return false;
        }
        if (getBasin() != hurricane.getBasin()) {
            return false;
        }
        if (getName() != null ? !getName().equals(hurricane.getName()) : hurricane.getName() != null) {
            return false;
        }

        return true;
    }