class OERMarketDataService extends OERMarketDataServiceRaw implements MarketDataService {

  /**
   * Constructor
   *
   * @param exchange
   */
  public OERMarketDataService(Exchange exchange) {

    super(exchange);
  }

  @Override
  public Ticker getTicker(CurrencyPair currencyPair, Object... args) throws IOException {<FILL_FUNCTION_BODY>}

  @Override
  public OrderBook getOrderBook(CurrencyPair currencyPair, Object... args) throws IOException {

    throw new NotAvailableFromExchangeException();
  }

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

    throw new NotAvailableFromExchangeException();
  }
}


    OERRates rates = getOERTicker(currencyPair);

    // Use reflection to get at data.
    Method method = null;
    try {
      method = OERRates.class.getMethod("get" + currencyPair.counter.getCurrencyCode(), null);
    } catch (SecurityException | NoSuchMethodException e) {
      throw new ExchangeException("Problem getting exchange rate!", e);
    }

    Double exchangeRate = null;
    try {
      exchangeRate = (Double) method.invoke(rates, null);
    } catch (IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
      throw new ExchangeException("Problem getting exchange rate!", e);
    }

    // Adapt to XChange DTOs
    return OERAdapters.adaptTicker(currencyPair, exchangeRate);
  
<methods>public void <init>(org.knowm.xchange.Exchange) ,public org.knowm.xchange.oer.dto.marketdata.OERRates getOERTicker(org.knowm.xchange.currency.CurrencyPair) throws java.io.IOException<variables>private final non-sealed org.knowm.xchange.oer.OER openExchangeRates