StateAdditionalInfo.java

package com.tradecloud.domain.state;

import com.tradecloud.authentication.User;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;

public class StateAdditionalInfo {
    private String reason;
    private String instruction;
    private Date stateDate;
    private List<String> containersImpacted;
    private Integer numberOfBulkInvoices = 1;
    private String user;

    private boolean publishEvent = true;

    private User userObject;


    public StateAdditionalInfo(String reason, String instruction, Date stateDate) {
        this.reason = reason;
        this.instruction = instruction;
        this.stateDate = stateDate;
    }

    public StateAdditionalInfo(String reason, String instruction) {
        this.reason = reason;
        this.instruction = instruction;
    }

    public StateAdditionalInfo(String reason) {
        this.reason = reason;
    }

    public StateAdditionalInfo() {
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getInstruction() {
        return instruction;
    }

    public void setInstruction(String instruction) {
        this.instruction = instruction;
    }

    public Date getStateDate() {
        return stateDate;
    }

    public void setStateDate(Date stateDate) {
        this.stateDate = stateDate;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        StateAdditionalInfo that = (StateAdditionalInfo) o;
        return Objects.equals(reason, that.reason) &&
                Objects.equals(instruction, that.instruction) &&
                Objects.equals(stateDate, that.stateDate);
    }

    @Override
    public int hashCode() {
        return Objects.hash(reason, instruction, stateDate);
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("numberOfBulkInvoices", numberOfBulkInvoices)
                .toString();
    }

    public List<String> getContainersImpacted() {
        if (containersImpacted == null) {
            containersImpacted = new ArrayList<>();
        }
        return containersImpacted;
    }

    public void setContainersImpacted(List<String> containersImpacted) {
        this.containersImpacted = containersImpacted;
    }

    public Integer getNumberOfBulkInvoices() {
        return numberOfBulkInvoices;
    }

    public void setNumberOfBulkInvoices(Integer numberOfBulkInvoices) {
        this.numberOfBulkInvoices = numberOfBulkInvoices;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public boolean isPublishEvent() {
        return publishEvent;
    }

    public void setPublishEvent(boolean publishEvent) {
        this.publishEvent = publishEvent;
    }

    public void setUserObject(User userObject) {
        this.userObject = userObject;
    }

    public User getUserObject() {
        return userObject;
    }

}