Package com.xeiam.xchange.coinsetter.service.polling

Source Code of com.xeiam.xchange.coinsetter.service.polling.CoinsetterMarketDataService

package com.xeiam.xchange.coinsetter.service.polling;

import static com.xeiam.xchange.coinsetter.CoinsetterExchange.DEFAULT_DEPTH;
import static com.xeiam.xchange.coinsetter.CoinsetterExchange.DEFAULT_EXCHANGE;

import java.io.IOException;

import com.xeiam.xchange.ExchangeSpecification;
import com.xeiam.xchange.NotAvailableFromExchangeException;
import com.xeiam.xchange.coinsetter.CoinsetterAdapters;
import com.xeiam.xchange.coinsetter.dto.marketdata.CoinsetterListDepth;
import com.xeiam.xchange.currency.CurrencyPair;
import com.xeiam.xchange.dto.marketdata.OrderBook;
import com.xeiam.xchange.dto.marketdata.Ticker;
import com.xeiam.xchange.dto.marketdata.Trades;
import com.xeiam.xchange.service.polling.PollingMarketDataService;

/**
* Market data service.
*/
public class CoinsetterMarketDataService extends CoinsetterBasePollingService implements PollingMarketDataService {

  private final CoinsetterMarketDataServiceRaw marketDataServiceRaw;

  /**
   * @param exchangeSpecification
   */
  public CoinsetterMarketDataService(ExchangeSpecification exchangeSpecification) {

    super(exchangeSpecification);
    marketDataServiceRaw = new CoinsetterMarketDataServiceRaw(exchangeSpecification);
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public Ticker getTicker(CurrencyPair currencyPair, Object... args) throws IOException {

    return CoinsetterAdapters.adaptTicker(marketDataServiceRaw.getCoinsetterTicker());
  }

  /**
   * {@inheritDoc}
   *
   * @param args [exchange, depth]
   */
  @Override
  public OrderBook getOrderBook(CurrencyPair currencyPair, Object... args) throws IOException {

    final CoinsetterListDepth coinsetterListDepth;
    final int argsLength = args.length;

    if (argsLength == 0) {
      coinsetterListDepth = marketDataServiceRaw.getCoinsetterFullDepth();
    }
    else if (argsLength == 1) {
      String exchange = (String) args[0];
      coinsetterListDepth = marketDataServiceRaw.getCoinsetterFullDepth(exchange == null ? DEFAULT_EXCHANGE : exchange);
    }
    else {
      String exchange = (String) args[0];
      Number depth = (Number) args[1];
      coinsetterListDepth = marketDataServiceRaw.getCoinsetterListDepth(depth == null ? DEFAULT_DEPTH : depth.intValue(), exchange == null ? DEFAULT_EXCHANGE : exchange);
    }

    return CoinsetterAdapters.adaptOrderBook(coinsetterListDepth);
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public Trades getTrades(CurrencyPair currencyPair, Object... args) throws IOException {

    throw new NotAvailableFromExchangeException();
  }

}
TOP

Related Classes of com.xeiam.xchange.coinsetter.service.polling.CoinsetterMarketDataService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.