Skip to content

Instantly share code, notes, and snippets.

@johndemic
Created October 19, 2012 03:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save johndemic/3916013 to your computer and use it in GitHub Desktop.
Save johndemic/3916013 to your computer and use it in GitHub Desktop.
StockQuoteResponse Protocol Buffer Helper Methods
public static StockQuoteResponseBuffer toProtocolBuffer(List<StockQuote> quotes) {
StockQuoteResponseBuffer.Builder responseBuilder = StockQuoteResponseBuffer.newBuilder();
for (StockQuote quote : quotes) {
responseBuilder.addResult(StockQuoteBuffer.newBuilder()
.setAdjustedClose(quote.getAdjustedClose())
.setClose(quote.getClose())
.setDate(quote.getDate().getTime())
.setHigh(quote.getHigh())
.setLow(quote.getLow())
.setOpen(quote.getOpen())
.setSymbol(quote.getSymbol())
.setVolume(quote.getVolume()).build());
}
return responseBuilder.build();
}
public static List<StockQuote> listOfStockQuotesFromBytes(byte[] bytes) {
List<StockQuoteBuffer> buffer;
try {
buffer = StockQuoteResponseBuffer.parseFrom(bytes).getResultList();
} catch (InvalidProtocolBufferException e) {
throw new SerializationException(e);
}
List<StockQuote> quotes = new ArrayList<StockQuote>();
for (StockQuoteBuffer stockQuoteBuffer : buffer) {
StockQuote stockQuote = new StockQuote();
stockQuote.setClose(stockQuoteBuffer.getClose());
stockQuote.setDate(new Date(stockQuoteBuffer.getDate()));
stockQuote.setHigh(stockQuoteBuffer.getHigh());
stockQuote.setOpen(stockQuoteBuffer.getOpen());
stockQuote.setSymbol(stockQuoteBuffer.getSymbol());
stockQuote.setVolume(stockQuoteBuffer.getVolume());
stockQuote.setAdjustedClose(stockQuoteBuffer.getAdjustedClose());
stockQuote.setLow(stockQuoteBuffer.getLow());
quotes.add(stockQuote);
}
return quotes;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment