EMMA Coverage Report (generated Sat Jan 08 08:46:59 EST 2011)
[all classes][net.sourceforge.finmodel.asset]

COVERAGE SUMMARY FOR SOURCE FILE [Stock.java]

nameclass, %method, %block, %line, %
Stock.java0%   (0/1)0%   (0/14)0%   (0/139)0%   (0/39)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Stock0%   (0/1)0%   (0/14)0%   (0/139)0%   (0/39)
<static initializer> 0%   (0/1)0%   (0/5)0%   (0/2)
Stock (): void 0%   (0/1)0%   (0/6)0%   (0/2)
Stock (String): void 0%   (0/1)0%   (0/9)0%   (0/3)
getDivYield (): BigDecimal 0%   (0/1)0%   (0/3)0%   (0/1)
getDividendYield (): BigDecimal 0%   (0/1)0%   (0/3)0%   (0/1)
getEstimatedValue (Calendar): BigDecimal 0%   (0/1)0%   (0/3)0%   (0/1)
getExchange (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getStock (String): Stock 0%   (0/1)0%   (0/41)0%   (0/8)
getTicker (): String 0%   (0/1)0%   (0/3)0%   (0/1)
init (String): void 0%   (0/1)0%   (0/47)0%   (0/11)
setDivYield (BigDecimal): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDividendYield (BigDecimal): void 0%   (0/1)0%   (0/4)0%   (0/2)
setExchange (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
setTicker (String): void 0%   (0/1)0%   (0/4)0%   (0/2)

1package net.sourceforge.finmodel.asset;
2 
3import java.math.BigDecimal;
4import java.util.Calendar;
5import java.util.HashMap;
6import java.util.Map;
7 
8import net.sourceforge.finmodel.asset.stock.StockLookup;
9 
10public class Stock extends AssetImpl implements Asset {
11        public static final long serialVersionUID = 1L;
12        
13        private String ticker;
14        private String exchange;
15        private BigDecimal cost;
16        private BigDecimal divYield;
17        private BigDecimal growth;
18        
19        private static Map<String, Stock> allStocks = new HashMap<String, Stock>();
20        
21        private void init(String ticker) {
22                StockLookup lookup = new StockLookup( ticker );
23                this.ticker = ticker;
24                this.name = lookup.getName();
25                this.cost = lookup.getPrice();
26                exchange = lookup.getExchange();
27                divYield = lookup.getDividendYield();
28                growth = new BigDecimal("0.05");                
29                this.apr = growth.add(divYield);
30                if (!allStocks.containsKey(ticker)) {
31                        allStocks.put(ticker, this);
32                }
33        }
34        
35        public Stock() {
36                super("Unknown", BigDecimal.ONE, BigDecimal.ZERO);
37        }
38        /** 
39         * Creates a stock with a zero balance.
40         * @param ticker
41         */
42        public Stock(String ticker) {
43                super(ticker, BigDecimal.ONE, BigDecimal.ZERO);
44                init(ticker);
45        }
46        
47        protected void setDividendYield(BigDecimal divYield) {
48                this.divYield = divYield;
49        }
50        
51        public BigDecimal getDividendYield() {
52                return divYield;
53        }
54        
55        @Override
56        public BigDecimal getEstimatedValue( Calendar cal )
57        {
58                return cost;
59        }
60        
61        protected void setTicker(String ticker) {
62                this.ticker = ticker;
63        }
64        
65        public String getTicker() {
66                return ticker;
67        }
68 
69        protected void setExchange(String exchange) {
70                this.exchange = exchange;
71        }
72        
73        public String getExchange() {
74                return exchange;
75        }
76 
77        /**
78         * @param divYield the divYield to set
79         */
80        protected void setDivYield(BigDecimal divYield) {
81                this.divYield = divYield;
82        }
83 
84        /**
85         * @return the divYield
86         */
87        protected BigDecimal getDivYield() {
88                return divYield;
89        }
90        
91        public static Stock getStock(String ticker) {
92                if (allStocks.containsKey(ticker)) {
93                        return allStocks.get(ticker);
94                } else {
95                        synchronized (allStocks) {
96                                if (allStocks.containsKey(ticker)) {
97                                        return allStocks.get(ticker);
98                                } else {
99                                        Stock rc = new Stock(ticker);
100                                        allStocks.put(ticker, rc);
101                                        return rc;
102                                }
103                        }
104                }
105        }
106}

[all classes][net.sourceforge.finmodel.asset]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov