ForwardingRateSearch.java
package com.tradecloud.dto.rate;
import com.tradecloud.domain.container.ContainerType;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.NamedPlace;
import com.tradecloud.domain.place.PlaceOfLoading;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component
@Scope("view")
@Getter
@Setter
@SuperBuilder
@NoArgsConstructor
public class ForwardingRateSearch extends RateSearch {
private ShippingMode shippingMode;
private ShippingMode multiModalShippingMode;
private ContainerType containerType;
private PlaceOfLoading placeOfLoading;
private ServiceProvider freightForwarder;
private ServiceProvider carrier;
private NamedPlace namedPlace;
private OrganisationalUnit company;
public ForwardingRateSearch(ForwardingRateSearch search) {
super(search);
this.shippingMode = search.shippingMode;
this.multiModalShippingMode = search.multiModalShippingMode;
this.containerType = search.containerType;
this.placeOfLoading = search.placeOfLoading;
this.freightForwarder = search.freightForwarder;
this.carrier = search.carrier;
this.namedPlace = search.namedPlace;
this.organisationalUnit = search.organisationalUnit;
this.company = search.company;
}
public ShippingMode getShippingMode() {
return shippingMode;
}
public void setShippingMode(ShippingMode shippingMode) {
this.shippingMode = shippingMode;
}
public ContainerType getContainerType() {
return containerType;
}
public void setContainerType(ContainerType containerType) {
this.containerType = containerType;
}
public PlaceOfLoading getPlaceOfLoading() {
return placeOfLoading;
}
public void setPlaceOfLoading(PlaceOfLoading placeOfLoading) {
this.placeOfLoading = placeOfLoading;
}
public ServiceProvider getFreightForwarder() {
return freightForwarder;
}
public void setFreightForwarder(ServiceProvider freightForwarder) {
this.freightForwarder = freightForwarder;
}
public NamedPlace getNamedPlace() {
return namedPlace;
}
public void setNamedPlace(NamedPlace namedPlace) {
this.namedPlace = namedPlace;
}
@Override
public String toString() {
return "Cost line '" + costLine + "'. "
+ "Shipping mode '" + shippingMode + "'. " + "Container type '" + "'. " + "Rate Type '" + costingType + "'. "
+ (containerType != null ? containerType.getName() : null) + "'. " + "Port of loading '"
+ (placeOfLoading != null ? placeOfLoading.getName() : null) + "'." + "LSP '"
+ (company != null ? company.getName() : null) + "'."
+ (freightForwarder != null ? freightForwarder.getName() : null) + "'."
+ (getCarrier() != null ? getCarrier().getName() : null) + "'." + "Carrier '"
+ (getNamedPlace() != null ? getNamedPlace().getName() : null) + "'." + "Named Place"
+ "org unit '" + (organisationalUnit != null ? organisationalUnit.getName() : null) +
" .costCompareOnly:" + costCompareOnly;
}
@Override
public void reset() {
super.reset();
shippingMode = null;
multiModalShippingMode = null;
containerType = null;
placeOfLoading = null;
freightForwarder = null;
carrier = null;
namedPlace = null;
organisationalUnit = null;
company = null;
}
/**
* @return the carrier
*/
public ServiceProvider getCarrier() {
return carrier;
}
/**
* @param carrier the carrier to set
*/
public void setCarrier(ServiceProvider carrier) {
this.carrier = carrier;
}
@Override
public int hashCode() {
return generate(getContainerType(), getCurrency(), getCostLine(),
getCostingType(), getCarrier(), getShippingMode(), getPlaceOfLoading(), getFreightForwarder(), getEffectiveDateLower(),
getEffectiveDateUpper(), getNamedPlace(), getOrganisationalUnit(), getSearchMetaParams(), getRateUnit(), isCostCompareOnly(),
getMultiModalShippingMode(), company);
}
}