package org.cryptocoinpartners.schema; import java.math.BigDecimal; import javax.persistence.Cacheable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.ManyToOne; import javax.persistence.Transient; import org.cryptocoinpartners.schema.dao.Dao; /** * Connects an Owner to a Portfolio * * @author Tim Olson */ @Entity @Cacheable public class Stake extends EntityBase { public Stake(Owner owner, BigDecimal stake, Portfolio portfolio) { this.owner = owner; this.stake = stake; this.portfolio = portfolio; } @ManyToOne public Owner getOwner() { return owner; } @Column(precision = 30, scale = 15) public BigDecimal getStake() { return stake; } @ManyToOne(optional = false) public Portfolio getPortfolio() { return portfolio; } // JPA protected Stake() { } protected void setOwner(Owner owner) { this.owner = owner; } protected void setStake(BigDecimal stake) { if (stake.compareTo(BigDecimal.ZERO) < 0 || stake.compareTo(BigDecimal.ONE) > 0) throw new IllegalArgumentException("stake must be in range [0,1]: " + stake); this.stake = stake; } protected void setPortfolio(Portfolio portfolio) { this.portfolio = portfolio; } private Owner owner; private BigDecimal stake; private Portfolio portfolio; @Override public void persit() { // TODO Auto-generated method stub } @Override public void detach() { // TODO Auto-generated method stub } @Override public void merge() { // TODO Auto-generated method stub } @Override @Transient public Dao getDao() { // TODO Auto-generated method stub return null; } @Override public void delete() { // TODO Auto-generated method stub } @Override public EntityBase refresh() { // TODO Auto-generated method stub return null; } }