package devopsdistilled.operp.server.data.entity.business; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.MappedSuperclass; import javax.persistence.OneToOne; import javax.persistence.Temporal; import javax.persistence.TemporalType; import devopsdistilled.operp.server.data.entity.Entiti; import devopsdistilled.operp.server.data.entity.party.Party; @MappedSuperclass public abstract class Business<P extends Party<?>, D extends BusinessDesc<?, ?>> extends Entiti<Long> { private static final long serialVersionUID = -7075903053081563240L; @Id @GeneratedValue(strategy = GenerationType.AUTO) protected Long businessId; @OneToOne(cascade = CascadeType.ALL) protected D businessDesc; @Temporal(TemporalType.TIMESTAMP) private Date date; private Double amount = 0.0; @ManyToOne protected P party; public Long getBusinessId() { return businessId; } public void setBusinessId(Long businessId) { this.businessId = businessId; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Double getAmount() { return amount; } public void setAmount(Double amount) { this.amount = amount; } public P getParty() { return party; } public void setParty(P party) { this.party = party; } public D getBusinessDesc() { return businessDesc; } public void setBusinessDesc(D businessDesc) { this.businessDesc = businessDesc; } @Override public Long id() { return getBusinessId(); } @Override public String toString() { return new String(id() + ": " + getDate() + ": " + getParty() + ": " + getAmount().toString()); } }