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);
}
}
|