ShipmentBasedActionDTO.java

package com.tradecloud.dto.api.shipment;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.Objects;

public class ShipmentBasedActionDTO {

    @ApiModelProperty(required = true,notes = "reference of main entity being transition")
    @JsonProperty(required = true)
    private String reference;
    @JsonProperty(required = true)
    private String stateAction;
    @ApiModelProperty(notes = "required for container and sub shipments")
    @JsonProperty(required = true)
    private  String shipmentReference;
    private String reason;
    private String instruction;
    private Date stateDate;

    public String getReference() {
        return reference;
    }

    public ShipmentBasedActionDTO() {
    }

    public ShipmentBasedActionDTO(String reference, String stateAction) {
        this.reference = reference;
        this.stateAction = stateAction;
    }

    public void setReference(String reference) {
        this.reference = reference;
    }

    public String getStateAction() {
        return stateAction;
    }

    public void setStateAction(String stateAction) {
        this.stateAction = stateAction;
    }

    public String getShipmentReference() {
        return shipmentReference;
    }

    public void setShipmentReference(String shipmentReference) {
        this.shipmentReference = shipmentReference;
    }

    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;
        ShipmentBasedActionDTO that = (ShipmentBasedActionDTO) o;
        return Objects.equals(reference, that.reference) &&
                Objects.equals(stateAction, that.stateAction) &&
                Objects.equals(shipmentReference, that.shipmentReference);
    }

    @Override
    public int hashCode() {
        return Objects.hash(reference, stateAction, shipmentReference);
    }
}