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

COVERAGE SUMMARY FOR SOURCE FILE [StockLookup.java]

nameclass, %method, %block, %line, %
StockLookup.java0%   (0/1)0%   (0/8)0%   (0/148)0%   (0/31)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class StockLookup0%   (0/1)0%   (0/8)0%   (0/148)0%   (0/31)
<static initializer> 0%   (0/1)0%   (0/4)0%   (0/2)
StockLookup (String): void 0%   (0/1)0%   (0/11)0%   (0/5)
getDividendYield (): BigDecimal 0%   (0/1)0%   (0/3)0%   (0/1)
getExchange (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getName (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getPrice (): BigDecimal 0%   (0/1)0%   (0/3)0%   (0/1)
main (String []): void 0%   (0/1)0%   (0/31)0%   (0/5)
update (): void 0%   (0/1)0%   (0/90)0%   (0/15)

1package net.sourceforge.finmodel.asset.stock;
2 
3import java.io.BufferedReader;
4import java.io.InputStreamReader;
5import java.math.BigDecimal;
6import java.net.URL;
7import java.net.URLConnection;
8 
9import org.apache.commons.logging.Log;
10import org.apache.commons.logging.LogFactory;
11 
12public class StockLookup {
13        private static Log log = LogFactory.getLog(StockLookup.class);
14        
15        private String ticker;
16        private String name;
17        private String exchange;
18        private BigDecimal price;
19        private BigDecimal dividend;
20        
21        private String providerUrl = "http://finance.yahoo.com/d/quotes.csv";
22        
23        public StockLookup(String ticker) {
24                this.ticker = ticker;
25                update();
26        }
27        
28        public void update() 
29        {
30                String stockURL = providerUrl + "?s=" + ticker + "&f=npyx";
31                try {
32                        URLConnection feed = new URL(stockURL).openConnection();
33                        
34                        BufferedReader input = new BufferedReader( new InputStreamReader( feed.getInputStream()));
35                        String rawData = input.readLine();
36                        // System.err.println(rawData);
37                        if (!rawData.equals("")) {
38                                String data[] = rawData.split(",");
39                                name = data[0];
40                                price = new BigDecimal(data[1]);
41                                if (!data[2].equals("N/A")) {
42                                        dividend = new BigDecimal(data[2]);
43                                } else {
44                                        dividend = BigDecimal.ZERO;
45                                }
46                                exchange = data[3];
47                        }
48                        
49                } catch (Exception e) {
50                        log.error("Error getting data: " + stockURL, e);
51                }
52        }
53 
54        public String getExchange() {
55                return exchange;
56        }
57        
58        public String getName() {
59                return name;
60        }
61        
62        public BigDecimal getPrice() {
63                return price;
64        }
65        
66        public BigDecimal getDividendYield() {
67                return dividend;
68        }
69        
70        public static void main(String args[]) {
71                StockLookup lmt = new StockLookup("LMT");
72                System.err.println("LMT: " + lmt.getName());
73                StockLookup vwinx = new StockLookup("VWINX");
74                System.err.println("VWINX: " + vwinx.getPrice());
75        }
76}

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