ForexGroupDealStateConfig.java

package com.tradecloud.domain.configuration;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.ForexGroup;
import com.tradecloud.domain.model.deal.DealStatus;

import javax.persistence.*;
import javax.validation.constraints.NotNull;

@Entity
@Table(name = "forex_group_deal_state_config", uniqueConstraints = {@UniqueConstraint(columnNames = {"forexgroup_id", "status"})})
@Access(AccessType.FIELD)
public class ForexGroupDealStateConfig extends PersistenceBase {

    @ManyToOne(fetch = FetchType.EAGER)
    @NotNull
    private ForexGroup forexGroup;

    @Enumerated(value = EnumType.STRING)
    @NotNull
    private DealStatus dealStatus;

    private boolean autoLink;

    public ForexGroupDealStateConfig() {

    }

    public ForexGroupDealStateConfig(boolean autoLink, DealStatus dealStatus, ForexGroup forexGroup) {
        this.autoLink = autoLink;
        this.dealStatus = dealStatus;
        this.forexGroup = forexGroup;
    }

    public DealStatus getDealStatus() {
        return dealStatus;
    }

    public void setDealStatus(DealStatus dealStatus) {
        this.dealStatus = dealStatus;
    }

    public ForexGroup getForexGroup() {
        return forexGroup;
    }

    public void setForexGroup(ForexGroup forexGroup) {
        this.forexGroup = forexGroup;
    }

    public boolean isAutoLink() {
        return autoLink;
    }

    public void setAutoLink(boolean autoLink) {
        this.autoLink = autoLink;
    }

    @Override
    public String toString() {
        return "ForexGroupDealStateConfig{" +
                "autoLink=" + autoLink +
                ", forexGroup=" + forexGroup +
                ", dealStatus=" + dealStatus +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;

        ForexGroupDealStateConfig that = (ForexGroupDealStateConfig) o;

        if (dealStatus != null ? !dealStatus.equals(that.dealStatus) : that.dealStatus != null) return false;
        if (forexGroup != null ? !forexGroup.equals(that.forexGroup) : that.forexGroup != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = super.hashCode();
        result = 31 * result + (forexGroup != null ? forexGroup.hashCode() : 0);
        result = 31 * result + (dealStatus != null ? dealStatus.hashCode() : 0);
        result = 31 * result + (autoLink ? 1 : 0);
        return result;
    }
}