change time rep from Long to Joda DateTime

This commit is contained in:
2018-05-26 23:02:31 -07:00
parent c0a8a61d1f
commit 476f3708f4
5 changed files with 17 additions and 10 deletions

View File

@ -21,6 +21,8 @@ dependencies {
implementation 'ch.qos.logback:logback-classic:1.3.0-alpha4' implementation 'ch.qos.logback:logback-classic:1.3.0-alpha4'
implementation 'org.fusesource.jansi:jansi:1.8' implementation 'org.fusesource.jansi:jansi:1.8'
implementation 'commons-cli:commons-cli:1.4' implementation 'commons-cli:commons-cli:1.4'
implementation 'joda-time:joda-time:2.9.9'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.5'
} }
repositories { repositories {

View File

@ -2,6 +2,7 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.espertech.esper.client.EPServiceProvider; import com.espertech.esper.client.EPServiceProvider;
import com.fasterxml.jackson.databind.MappingIterator; import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.dataformat.csv.CsvMapper; import com.fasterxml.jackson.dataformat.csv.CsvMapper;
@ -19,6 +20,10 @@ public class CSVReader implements TickStreamReader {
public void run(TickProcessor processor) { public void run(TickProcessor processor) {
CsvMapper mapper = new CsvMapper(); CsvMapper mapper = new CsvMapper();
// allow deserializing Joda time classes
mapper.registerModule(new JodaModule());
CsvSchema schema = mapper.schemaFor(TrueFXTickEvent.class); CsvSchema schema = mapper.schemaFor(TrueFXTickEvent.class);
try { try {

View File

@ -1,12 +1,9 @@
import java.util.Date; import org.joda.time.DateTime;
import java.util.Calendar;
public class EPLHelpers { public class EPLHelpers {
public static int getHour(Date date) { public static int getHour(DateTime date) {
Calendar c = Calendar.getInstance(); return date.getHourOfDay();
c.setTime(date);
return c.get(Calendar.HOUR_OF_DAY);
} }
} }

View File

@ -4,7 +4,6 @@ import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EPStatement; import com.espertech.esper.client.EPStatement;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.io.File; import java.io.File;
import java.util.Date;
import com.espertech.esper.client.time.CurrentTimeEvent; import com.espertech.esper.client.time.CurrentTimeEvent;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -12,6 +11,7 @@ import java.lang.reflect.Array;
import java.util.Arrays; import java.util.Arrays;
import java.util.stream.Stream; import java.util.stream.Stream;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.joda.time.DateTime;
public class EsperProcessor implements TickProcessor { public class EsperProcessor implements TickProcessor {

View File

@ -9,6 +9,7 @@ import java.net.URLConnection;
import java.net.URLEncoder; import java.net.URLEncoder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.HttpsURLConnection;
@ -19,6 +20,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
public class OANDAReader implements TickStreamReader { public class OANDAReader implements TickStreamReader {
final Logger log = LoggerFactory.getLogger(OANDAReader.class); final Logger log = LoggerFactory.getLogger(OANDAReader.class);
ObjectMapper mapper;
AccountInfo accountInfo; AccountInfo accountInfo;
String[] instruments; String[] instruments;
@ -26,6 +28,9 @@ public class OANDAReader implements TickStreamReader {
public OANDAReader(AccountInfo accountInfo, String[] instruments) { public OANDAReader(AccountInfo accountInfo, String[] instruments) {
this.accountInfo = accountInfo; this.accountInfo = accountInfo;
this.instruments = instruments; this.instruments = instruments;
mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
} }
public void run(TickProcessor processor) { public void run(TickProcessor processor) {
@ -74,8 +79,6 @@ public class OANDAReader implements TickStreamReader {
} }
} }
static ObjectMapper mapper = new ObjectMapper(); // create once, reuse
private void processLine(String line, TickProcessor processor) { private void processLine(String line, TickProcessor processor) {
if (line.indexOf ("PRICE") > -1) { if (line.indexOf ("PRICE") > -1) {
OANDATickEvent tick; OANDATickEvent tick;