DemurrageTransactionSearch.java

package com.tradecloud.dto.demurrage;

import com.tradecloud.domain.base.utils.DateRange;
import com.tradecloud.domain.demurrage.DemurrageTransactionState;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.Depot;
import com.tradecloud.domain.place.PlaceOfDischarge;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 * Re-using this class for both Overstay and Storage, and Turn In. Could
 * probably do a class hierarchy, but it is just a DTO.
 */
@Component
@Scope("view")
public class DemurrageTransactionSearch {

    private String containerReference;

    private String shipmentReference;

    private String shipmentNumber;

    private DateRange createdDateRange = new DateRange();

    private DateRange freePeriodEndDateRange = new DateRange();

    private DateRange signedOffDateRange = new DateRange();

    private ServiceProvider carrier;

    private DemurrageTransactionState state;

    // Overstay and Storage only.
    private PlaceOfDischarge placeOfDischarge;

    private DateRange overstayDateRange = new DateRange();

    private DateRange portStorageDateRange = new DateRange();

    // Turn in only.
    private Depot turnInDepot;

    public String getContainerReference() {
        return containerReference;
    }

    public void setContainerReference(String containerReference) {
        this.containerReference = containerReference;
    }

    public String getShipmentReference() {
        return shipmentReference;
    }

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

    public String getShipmentNumber() {
        return shipmentNumber;
    }

    public void setShipmentNumber(String shipmentNumber) {
        this.shipmentNumber = shipmentNumber;
    }

    public DateRange getCreatedDateRange() {
        return createdDateRange;
    }

    public void setCreatedDateRange(DateRange createdDateRange) {
        this.createdDateRange = createdDateRange;
    }

    public DateRange getFreePeriodEndDateRange() {
        return freePeriodEndDateRange;
    }

    public void setFreePeriodEndDateRange(DateRange freePeriodEndDateRange) {
        this.freePeriodEndDateRange = freePeriodEndDateRange;
    }

    public DateRange getSignedOffDateRange() {
        return signedOffDateRange;
    }

    public void setSignedOffDateRange(DateRange signedOffDateRange) {
        this.signedOffDateRange = signedOffDateRange;
    }

    public ServiceProvider getCarrier() {
        return carrier;
    }

    public void setCarrier(ServiceProvider carrier) {
        this.carrier = carrier;
    }

    public PlaceOfDischarge getPlaceOfDischarge() {
        return placeOfDischarge;
    }

    public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
        this.placeOfDischarge = placeOfDischarge;
    }

    public DateRange getOverstayDateRange() {
        return overstayDateRange;
    }

    public void setOverstayDateRange(DateRange overstayDateRange) {
        this.overstayDateRange = overstayDateRange;
    }

    public DateRange getPortStorageDateRange() {
        return portStorageDateRange;
    }

    public void setPortStorageDateRange(DateRange portStorageDateRange) {
        this.portStorageDateRange = portStorageDateRange;
    }

    public Depot getTurnInDepot() {
        return turnInDepot;
    }

    public void setTurnInDepot(Depot turnInDepot) {
        this.turnInDepot = turnInDepot;
    }

    public DemurrageTransactionState getState() {
        return state;
    }

    public void setState(DemurrageTransactionState state) {
        this.state = state;
    }

    // TODO. Add more.
    @Override
    public String toString() {
        return (carrier != null ? "Carrier=" + carrier.getName() + ". " : "") +
               (shipmentReference != null ? "Shipment reference=" + shipmentReference + ". " : "") +
               (containerReference != null ? "Container reference=" + containerReference + ". " : "");
    }
}