LeadTimeSearch.java
package com.tradecloud.dto.rate;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.place.City;
import com.tradecloud.domain.place.Country;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.place.PlaceOfLoading;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
@Scope("view")
public class LeadTimeSearch extends SearchBase {
private ShippingMode shippingMode;
private PlaceOfLoading placeOfLoading;
private PlaceOfDischarge placeOfDischarge;
private City city;
private Country country;
public LeadTimeSearch() {
}
public LeadTimeSearch(ShippingMode shippingMode, PlaceOfLoading placeOfLoading, PlaceOfDischarge placeOfDischarge) {
this.shippingMode = shippingMode;
this.placeOfDischarge = placeOfDischarge;
this.placeOfLoading = placeOfLoading;
}
public ShippingMode getShippingMode() {
return shippingMode;
}
public void setShippingMode(ShippingMode shippingMode) {
this.shippingMode = shippingMode;
}
public PlaceOfLoading getPlaceOfLoading() {
return placeOfLoading;
}
public void setPlaceOfLoading(PlaceOfLoading placeOfLoading) {
this.placeOfLoading = placeOfLoading;
}
public PlaceOfDischarge getPlaceOfDischarge() {
return placeOfDischarge;
}
public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
this.placeOfDischarge = placeOfDischarge;
}
public void reset() {
shippingMode = null;
placeOfLoading = null;
placeOfDischarge = null;
city=null;
}
public int generate(Object... objects) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
for (Object object : objects) {
if (object != null) {
if (object.getClass().isEnum()) {
hashCodeBuilder.append(object.toString()); // enum.hashCode can differ
} else if (object instanceof Date) {
String format = simpleDateFormat.format((Date) object);
hashCodeBuilder.append(format);
} else {
hashCodeBuilder.append(object.hashCode());
}
}
}
return hashCodeBuilder.toHashCode();
}
@Override
public int hashCode() {
return generate(getPlaceOfDischarge(), getPlaceOfLoading(), getShippingMode(),getCity());
}
@Override
public String getTableName() {
return "LeadTime";
}
public City getCity() {
return city;
}
public void setCity(City city) {
this.city = city;
}
public Country getCountry() {
return country;
}
public void setCountry(Country country) {
this.country = country;
}
}