001/* 002# Licensed Materials - Property of IBM 003# Copyright IBM Corp. 2015 004 */ 005package vwap; 006 007import java.math.BigDecimal; 008 009import com.ibm.streams.operator.Tuple; 010import com.ibm.streamsx.topology.TStream; 011import com.ibm.streamsx.topology.spl.SPLStream; 012 013public class Quote extends Ticker { 014 /** 015 * 016 */ 017 private static final long serialVersionUID = -8355672072795288713L; 018 final BigDecimal bidprice; 019 final BigDecimal askprice; 020 final BigDecimal asksize; 021 022 public Quote(Tuple tuple) { 023 super(tuple); 024 bidprice = tuple.getBigDecimal("bidprice"); 025 askprice = tuple.getBigDecimal("askprice"); 026 asksize = tuple.getBigDecimal("asksize"); 027 } 028 029 public String toString() { 030 return "QUOTE: " + getTicker() + " bidprice=" + bidprice + " askprice=" 031 + askprice + " asksize=" + asksize; 032 } 033 034 /** 035 * Convert a trade SPL tuple to a Quote object. 036 */ 037 public static Quote convertToTrade(Tuple tuple) { 038 if ("Quote".equals(tuple.getString("ttype"))) 039 return new Quote(tuple); 040 return null; 041 042 } 043 044 /** 045 * Get the stream of quotes from the SPL stream. 046 * The stream is keyed by the ticker symbol. 047 */ 048 public static TStream<Quote> getQuotes(SPLStream tradeQuotes) { 049 return tradeQuotes.transform(Quote::convertToTrade); 050 } 051}