View Javadoc

1   package net.sourceforge.finmodel.account;
2   
3   import java.math.BigDecimal;
4   import java.util.ArrayList;
5   import java.util.List;
6   
7   import net.sourceforge.finmodel.asset.Stock;
8   import net.sourceforge.finmodel.rules.APRRule;
9   import net.sourceforge.finmodel.rules.Rule;
10  
11  public class StockAccount extends AccountImpl {
12  	private CashAccount dividendSource;
13  	private APRRule dividendRule;
14  	
15  	static final long serialVersionUID = 1L;
16  	
17  	public StockAccount() {
18  		
19  	}
20  	
21  	public StockAccount(Stock stock, BigDecimal rate) {
22  		super( stock.getName(), stock);
23  		init(stock);
24  	}
25  
26  
27  	private void init(Stock stock) {
28  		dividendSource = new CashAccount("DIV: " + stock.getName());
29  		dividendRule = new APRRule();
30  		dividendRule.setSource(dividendSource);
31  		dividendRule.setDestination(this);
32  		dividendRule.setExamine(this);
33  		dividendRule.setAPR(stock.getDividendYield());
34  	}
35  
36  
37  	public List<Rule> getInherentRules() {
38  		List<Rule> rc = new ArrayList<Rule>();
39  		rc.add(dividendRule);
40  		return rc;
41  	}
42  
43  }