RFQOrganisationalUnitSupplier.java
package com.tradecloud.domain.model.requestforquote;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.supplier.OrganisationalUnitSupplier;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlIDREF;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Entity
@Table(name = "rfqorganisationalunitsupplier")
public class RFQOrganisationalUnitSupplier extends PersistenceBase {
@XmlElementWrapper(name = "RequestForQuotes")
@XmlElement(name = "RequestForQuote")
@ManyToOne
protected RequestForQuote requestForQuote;
@ManyToOne
@XmlIDREF
@JsonIgnore
private OrganisationalUnitSupplier organisationalUnitSupplier;
@NotNull(message = "State is required")
@Enumerated(EnumType.STRING)
private RFQOrgsanisationalUnitSupplierState state = RFQOrgsanisationalUnitSupplierState.NOT_OPENED;
@XmlElementWrapper(name = "supplierStyles")
@XmlElement(name = "SupplierStyle")
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinTable(name = "rfqorganisationalunitsupplier_supplierStyles", joinColumns = {@JoinColumn(name = "rfqorganisationalunitsupplier_id")},
inverseJoinColumns = {@JoinColumn(name = "supplierStyles_id")})
private List<SupplierStyle> supplierStyles;
private int position;
private Long orderId;
public RFQOrganisationalUnitSupplier() {
}
public RFQOrganisationalUnitSupplier(RequestForQuote requestForQuote, OrganisationalUnitSupplier organisationalUnitSupplier) {
this.requestForQuote = requestForQuote;
this.organisationalUnitSupplier = organisationalUnitSupplier;
this.supplierStyles = new ArrayList<>();
}
public OrganisationalUnitSupplier getOrganisationalUnitSupplier() {
return organisationalUnitSupplier;
}
public void setOrganisationalUnitSupplier(OrganisationalUnitSupplier organisationalUnitSupplier) {
this.organisationalUnitSupplier = organisationalUnitSupplier;
}
public RFQOrgsanisationalUnitSupplierState getState() {
return state;
}
public void setState(RFQOrgsanisationalUnitSupplierState state) {
this.state = state;
}
public RequestForQuote getRequestForQuote() {
return requestForQuote;
}
public void setRequestForQuote(RequestForQuote requestForQuote) {
this.requestForQuote = requestForQuote;
}
public List<SupplierStyle> getSupplierStyles() {
if (supplierStyles == null) {
supplierStyles = new ArrayList<>();
}
return supplierStyles;
}
public void setSupplierStyles(List<SupplierStyle> supplierStyles) {
this.supplierStyles = supplierStyles;
}
public String getNameAndOrgNameAndExternalReference() {
if (organisationalUnitSupplier != null) {
String supplierName = organisationalUnitSupplier.getSupplier().getName();
String orgUnitName = organisationalUnitSupplier.getName();
String externalReference = organisationalUnitSupplier.getSupplier().getExternalReference();
return supplierName + " - " + orgUnitName + " - " + externalReference;
}
return null;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
RFQOrganisationalUnitSupplier that = (RFQOrganisationalUnitSupplier) o;
return Objects.equals(requestForQuote, that.requestForQuote) && Objects.equals(organisationalUnitSupplier, that.organisationalUnitSupplier);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), requestForQuote, organisationalUnitSupplier);
}
public void addSupplierStyle(SupplierStyle supplierStyle) {
supplierStyle.setRfqOrganisationalUnitSupplier(this);
this.getSupplierStyles().add(supplierStyle);
}
}