package com.usky.rule.vo;

import com.fasterxml.jackson.annotation.JsonProperty;

public class Expression {
    @JsonProperty("X")
    private String x;
    @JsonProperty("M")
    private String m;
    @JsonProperty("Y")
    private String y;

    public Expression() {
    }

    public String getX() {
        return this.x;
    }

    public String getM() {
        return this.m;
    }

    public String getY() {
        return this.y;
    }

    @JsonProperty("X")
    public void setX(final String x) {
        this.x = x;
    }

    @JsonProperty("M")
    public void setM(final String m) {
        this.m = m;
    }

    @JsonProperty("Y")
    public void setY(final String y) {
        this.y = y;
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof Expression)) {
            return false;
        } else {
            Expression other = (Expression)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$x = this.getX();
                Object other$x = other.getX();
                if (this$x == null) {
                    if (other$x != null) {
                        return false;
                    }
                } else if (!this$x.equals(other$x)) {
                    return false;
                }

                Object this$m = this.getM();
                Object other$m = other.getM();
                if (this$m == null) {
                    if (other$m != null) {
                        return false;
                    }
                } else if (!this$m.equals(other$m)) {
                    return false;
                }

                Object this$y = this.getY();
                Object other$y = other.getY();
                if (this$y == null) {
                    if (other$y != null) {
                        return false;
                    }
                } else if (!this$y.equals(other$y)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof Expression;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        Object $x = this.getX();
        result = result * 59 + ($x == null ? 43 : $x.hashCode());
        Object $m = this.getM();
        result = result * 59 + ($m == null ? 43 : $m.hashCode());
        Object $y = this.getY();
        result = result * 59 + ($y == null ? 43 : $y.hashCode());
        return result;
    }

    public String toString() {
        return "Expression(x=" + this.getX() + ", m=" + this.getM() + ", y=" + this.getY() + ")";
    }
}
