|
From: Márcio V. d. S. <mv...@us...> - 2007-08-20 21:31:19
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/io/reader In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv24783/src/java/net/sf/tail/io/reader Added Files: CedroTimeSeriesLoader.java Log Message: Refatoração de packages e criação de novas classes para serializar em xml --- NEW FILE: CedroTimeSeriesLoader.java --- package net.sf.tail.io.reader; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import net.sf.tail.Tick; import net.sf.tail.TimeSeriesLoader; import net.sf.tail.series.DefaultTimeSeries; import org.apache.log4j.Logger; import org.joda.time.DateTime; import com.csvreader.CsvReader; public class CedroTimeSeriesLoader implements TimeSeriesLoader { private static final Logger LOG = Logger.getLogger(CedroTimeSeriesLoader.class); public DefaultTimeSeries load(InputStream stream, String seriesName) throws IOException { LOG.info("Reading " + stream); CsvReader reader = new CsvReader(stream, Charset.defaultCharset()); reader.readHeaders(); List<Tick> ticks = new ArrayList<Tick>(); while (reader.readRecord()) { SimpleDateFormat simpleDate; if (reader.get(0).length() > 10) simpleDate = new SimpleDateFormat("dd/M/yyyy HH:mm:ss"); else simpleDate = new SimpleDateFormat("dd/M/yyyy"); Date dateUtil; try { dateUtil = simpleDate.parse(reader.get(0)); } catch (ParseException e) { throw new RuntimeException(e); } DateTime date = new DateTime(dateUtil.getTime()); double open = java.lang.Double.parseDouble(reader.get(1)); double close = java.lang.Double.parseDouble(reader.get(2)); double high = java.lang.Double.parseDouble(reader.get(3)); double low = java.lang.Double.parseDouble(reader.get(4)); double change = java.lang.Double.parseDouble(reader.get(5)); double previous = java.lang.Double.parseDouble(reader.get(6)); double volumeAmount = java.lang.Double.parseDouble(reader.get(7)); double volumeFinancier = java.lang.Double.parseDouble(reader.get(8)); double quantity = java.lang.Double.parseDouble(reader.get(9)); Tick tick = new Tick(date, open, close, high, low, change, previous, volumeAmount, volumeFinancier, (int) quantity); ticks.add(0, tick); } LOG.info("Reading done for " + stream); return new DefaultTimeSeries(seriesName, ticks); } } |