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 }