home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 July / Chip_1998-07_cd.bin / zkuste / JBuilder / BDK / Win / bdk_sep97.exe / _SETUP.1 / YahooQuote.java < prev    next >
Encoding:
Java Source  |  1997-09-10  |  2.1 KB  |  84 lines

  1.  
  2. package sunw.demo.quote;
  3.  
  4.  
  5. import java.util.Vector;
  6. import java.util.Date;
  7. import java.util.Hashtable;
  8. import java.util.StringTokenizer;
  9. import java.io.InputStreamReader;
  10. import java.io.BufferedReader;
  11. import java.io.IOException;
  12. import java.io.Serializable;
  13. import java.net.URL;
  14. import java.text.SimpleDateFormat;
  15.  
  16.  
  17. public class YahooQuote implements Serializable
  18. {
  19.   static Hashtable getQuotes(QuoteServer x, Vector symbols)
  20.   {
  21.     String symbolsString = "";
  22.     for(int i = 0; i < symbols.size(); i++) {
  23.       String symbol = (String)symbols.elementAt(i);
  24.       symbolsString += ((i != 0) ? "," : "") + symbol.toUpperCase();
  25.     }
  26.  
  27.     String quoteURLString =
  28.       "http://quote.yahoo.com/download/javasoft.beans?SYMBOLS=" + 
  29.       symbolsString + 
  30.       "&format=sl";
  31.  
  32.     Hashtable rv = new Hashtable();
  33.     BufferedReader in = null;
  34.  
  35.     // SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yy");
  36.     // SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mma");
  37.  
  38.     try {
  39.       URL quoteURL = new URL(quoteURLString);
  40.       in = new BufferedReader(new InputStreamReader(quoteURL.openStream()));
  41.  
  42.       String line;
  43.  
  44.       while(null != (line = in.readLine())) {
  45.     StringTokenizer t = new StringTokenizer(line, ",\"");
  46.  
  47.     String symbol = t.nextToken();
  48.     double price = Double.valueOf(t.nextToken()).doubleValue();
  49.     
  50.     // Date date = dateFormat.parse(t.nextToken());
  51.     t.nextToken();
  52.     Date date = new Date();
  53.  
  54.     // Date lastTrade = timeFormat.parse(t.nextToken()); 
  55.     t.nextToken();
  56.     Date lastTrade = date;
  57.  
  58.     double change = Double.valueOf(t.nextToken()).doubleValue();
  59.     double open = Double.valueOf(t.nextToken()).doubleValue();
  60.     double bid = Double.valueOf(t.nextToken()).doubleValue();
  61.     double ask = Double.valueOf(t.nextToken()).doubleValue();
  62.     int volume = Integer.valueOf(t.nextToken()).intValue();
  63.     
  64.     QuoteEvent qe = new QuoteEvent(x, symbol, date, price, bid, ask, open, volume);
  65.     rv.put(symbol.toUpperCase(), qe);
  66.       }
  67.     }
  68.     catch (Exception e) {
  69.       e.printStackTrace();
  70.     }
  71.     finally {
  72.       try {
  73.     if (in != null)
  74.       in.close();
  75.       }
  76.       catch (IOException e) {
  77.     e.printStackTrace();
  78.       }
  79.     }
  80.     
  81.     return rv;
  82.   }
  83. }
  84.