FinalDestination.java
package com.tradecloud.domain.place;
import com.tradecloud.domain.common.IntegratedStaticDataEntityBase;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.party.base.Address;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Final destination locations.
*/
@Entity
@Table(name = "FinalDestination")
@XmlRootElement(name = "FinalDestination")
@NamedQueries({@NamedQuery(name = "findByOrgUnit", query = "from FinalDestination fd left join fetch fd.organisationalUnits where fd.id=:id")})
public class FinalDestination extends IntegratedStaticDataEntityBase {
private static final long serialVersionUID = 1L;
private boolean exportPlace;
private boolean importPlace;
@OneToMany(fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
private Set<OrganisationalUnit> organisationalUnits = new HashSet<OrganisationalUnit>();
@OneToOne(fetch = FetchType.LAZY)
@XmlElement(name = "ClearingDepot")
private Depot clearingDepot;
@OneToOne(fetch = FetchType.LAZY)
@ForeignKey(name = "fk_clearingagent")
private ServiceProvider clearingAgent;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@ForeignKey(name = "fk_deliveryaddress")
private Address deliveryAddress;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private PlaceOfDischarge placeOfDischarge;
@Enumerated(EnumType.STRING)
private WarehouseType warehouseType = WarehouseType.GENERAL;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
private List<Store> stores;
@ManyToOne
private Region region;
private boolean regionMaster;
public FinalDestination() {
}
public FinalDestination(String code, String name) {
setCode(code);
setName(name);
setActive(true);
}
public FinalDestination(String code, String name, Set<OrganisationalUnit> organisationalUnits) {
setCode(code);
setName(name);
setOrganisationalUnits(organisationalUnits);
}
public FinalDestination(String code, String name, Set<OrganisationalUnit> organisationalUnits, Address deliveryAddress) {
setCode(code);
setName(name);
setOrganisationalUnits(organisationalUnits);
setDeliveryAddress(deliveryAddress);
}
public boolean isExportPlace() {
return exportPlace;
}
public void setExportPlace(boolean exportPlace) {
this.exportPlace = exportPlace;
}
public boolean isImportPlace() {
return importPlace;
}
public void setImportPlace(boolean importPlace) {
this.importPlace = importPlace;
}
public Set<OrganisationalUnit> getOrganisationalUnits() {
return organisationalUnits;
}
public List<OrganisationalUnit> getOrganisationalUnitList() {
return new ArrayList<OrganisationalUnit>(organisationalUnits);
}
public Depot getClearingDepot() {
return clearingDepot;
}
public void setClearingDepot(Depot clearingDepot) {
this.clearingDepot = clearingDepot;
}
public ServiceProvider getClearingAgent() {
return clearingAgent;
}
public void setClearingAgent(ServiceProvider clearingAgent) {
this.clearingAgent = clearingAgent;
}
public void setOrganisationalUnits(Set<OrganisationalUnit> organisationalUnits) {
this.organisationalUnits = organisationalUnits;
}
public void setOrganisationalUnitList(List<OrganisationalUnit> organisationalUnits) {
this.organisationalUnits = new HashSet<OrganisationalUnit>(organisationalUnits);
}
public Address getDeliveryAddress() {
return deliveryAddress;
}
public void setDeliveryAddress(Address deliveryAddress) {
this.deliveryAddress = deliveryAddress;
}
public PlaceOfDischarge getPlaceOfDischarge() {
return placeOfDischarge;
}
public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
this.placeOfDischarge = placeOfDischarge;
}
public WarehouseType getWarehouseType() {
return warehouseType;
}
public void setWarehouseType(WarehouseType warehouseType) {
this.warehouseType = warehouseType;
}
public String getOrganisationalUnitSummary() {
StringBuilder builder = new StringBuilder();
for (OrganisationalUnit orgUnit : getOrganisationalUnitList()) {
if (builder.length() > 0) {
builder.append(",");
}
builder.append(orgUnit.getCode());
}
return builder.toString();
}
public List<Store> getStores() {
return stores;
}
public void setStores(List<Store> stores) {
this.stores = stores;
}
public Region getRegion() {
return region;
}
public void setRegion(Region region) {
this.region = region;
}
public boolean isRegionMaster() {
return regionMaster;
}
public void setRegionMaster(boolean regionMaster) {
this.regionMaster = regionMaster;
}
}