package org.cryptocoinpartners.schema; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import javax.persistence.Basic; import javax.persistence.Entity; import javax.persistence.OneToMany; /** * An Owner is a person or corporate entity who holds Stakes in Portfolios. Every Owner has a 100% stake in their deposit * portfolio, which is how * @author Tim Olson */ @Entity public class Owner extends PortfolioManager { public Owner(String name) { super(name + "'s deposit account"); this.name = name; stakes.add(new Stake(this, BigDecimal.ONE, getPortfolio())); // 100% Stake in the deposit portfolio } @Basic(optional = false) public String getName() { return name; } @OneToMany public List<Stake> getStakes() { return stakes; } // JPA only protected Owner() { } protected void setName(String name) { this.name = name; } protected void setStakes(List<Stake> stakes) { this.stakes = stakes; } private List<Stake> stakes = new ArrayList<>(); private String name; }