package org.juxtapose.fxtradingsystem.marketdata;
public class QPMessage
{
public static String RECIEVER_PREFIX = "SUBSCRIBE_";
public static String SENDER_PREFIX = "PUBLISH_";
public static String SUBSCRIBE = "SUBSCRIBE";
public static String UNSUBSCRIBE = "UNSUBSCRIBE";
public static String QUOTE = "QUOTE";
public final String ccy1;
public final String ccy2;
public final String period;
public final String type;
public final Double bid;
public final Double ask;
public final long timestamp;
public QPMessage( String inType, String inCcy1, String inCcy2, String inPeriod )
{
type = inType;
ccy1 = inCcy1;
ccy2 = inCcy2;
period = inPeriod;
bid = null;
ask = null;
timestamp = 0;
}
public QPMessage( String inType, String inCcy1, String inCcy2, String inPeriod, Double inBid, Double inAsk )
{
type = inType;
ccy1 = inCcy1;
ccy2 = inCcy2;
period = inPeriod;
bid = inBid;
ask = inAsk;
timestamp = 0;
}
public QPMessage( String inType, String inCcy1, String inCcy2, String inPeriod, Double inBid, Double inAsk, long inTimeStamp )
{
type = inType;
ccy1 = inCcy1;
ccy2 = inCcy2;
period = inPeriod;
bid = inBid;
ask = inAsk;
timestamp = inTimeStamp;
}
public QPMessage( String inMessage )
{
String[] split = inMessage.split( ":" );
type = split[0];
ccy1 = split[1];
ccy2 = split[2];
period = split[3];
if( split.length > 4 )
{
bid = Double.parseDouble( split[4] );
ask = Double.parseDouble( split[5] );
}
else
{
bid = null;
ask = null;
}
timestamp = 0;
}
public String toString()
{
if( bid == null && ask == null )
return type+":"+ccy1+":"+ccy2+":"+period;
else
return type+":"+ccy1+":"+ccy2+":"+period+":"+bid+":"+ask;
}
}