/*
* The MtGox-Java API is free software: you can redistribute it and/or modify
* it under the terms of the Lesser GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The MtGox-Java API is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* Lesser GNU General Public License for more details.
*
* You should have received a copy of the Lesser GNU General Public License
* along with the MtGox-Java API . If not, see <http://www.gnu.org/licenses/>.
*/
package to.sparks.mtgox.example;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import to.sparks.mtgox.event.DepthEvent;
import to.sparks.mtgox.event.StreamEvent;
import to.sparks.mtgox.event.TickerEvent;
import to.sparks.mtgox.event.TradeEvent;
import to.sparks.mtgox.model.Depth;
import to.sparks.mtgox.model.Ticker;
import to.sparks.mtgox.model.Trade;
/**
* Shows how to use the MtGox real-time streaming websocket API
*
* @author SparksG
*/
public class WebsocketExamples implements ApplicationListener<StreamEvent> {
/* The logger */
static final Logger logger = Logger.getLogger(WebsocketExamples.class.getName());
public WebsocketExamples() {
}
public static void main(String[] args) throws Exception {
ApplicationContext context = new ClassPathXmlApplicationContext("to/sparks/mtgox/example/WebsocketExamples.xml");
WebsocketExamples me = context.getBean("websocketExamples", WebsocketExamples.class);
}
@Override
public void onApplicationEvent(StreamEvent event) {
if (event instanceof DepthEvent) {
Depth depth = (Depth) event.getPayload();
logger.log(Level.INFO, "Depth: {0}", new Object[]{depth.getTotalVolume().toPlainString()});
} else if (event instanceof TickerEvent) {
Ticker ticker = (Ticker) event.getPayload();
logger.log(Level.INFO, "Last: {0}", new Object[]{ticker.getLast().toPlainString()});
} else if (event instanceof TradeEvent) {
Trade trade = (Trade) event.getPayload();
logger.log(Level.INFO, "Trade: {0} {1}", new Object[]{trade.getPrice_currency(), trade.getPrice().toPlainString()});
}
}
}