/*
# Licensed Materials - Property of IBM
# Copyright IBM Corp. 2015
*/
package vwap;
import java.math.BigDecimal;
import com.ibm.streams.operator.Tuple;
import com.ibm.streamsx.topology.TStream;
import com.ibm.streamsx.topology.spl.SPLStream;
public class Trade extends Ticker {
/**
*
*/
private static final long serialVersionUID = -5415277911844071545L;
static BigDecimal getNumber(String v) {
if (v.isEmpty())
return BigDecimal.ZERO;
return new BigDecimal(v);
}
BigDecimal price;
BigDecimal volume;
public Trade(String ticker, BigDecimal price, BigDecimal volume) {
super(ticker);
this.price = price;
this.volume = volume;
}
public Trade(Tuple tuple) {
super(tuple);
price = tuple.getBigDecimal("price");
volume = tuple.getBigDecimal("volume");
}
public String toString() {
return "TRADE: " + getTicker() + " price=" + price + " volume="
+ volume;
}
/**
* Convert a trade SPL tuple to a Trade object.
*/
public static Trade convertToTrade(Tuple tuple) {
if ("Trade".equals(tuple.getString("ttype")))
return new Trade(tuple);
return null;
}
/**
* Get the stream of trades from the SPL stream.
* The stream is keyed by the ticker symbol.
*/
public static TStream<Trade> getTrades(SPLStream tradeQuotes) {
return tradeQuotes.transform(Trade::convertToTrade);
}
}