package com.dgex.offspring.providers.service;
import java.util.Arrays;
import java.util.List;
import com.dgex.offspring.dataprovider.service.HTTPDataProvider;
public abstract class RateProvider extends HTTPDataProvider implements
IRateProvider {
@Override
public List<IRate> getRates(ICurrency base, ICurrency quote) {
ICurrencyPair pair = base.getPair(quote);
if (Arrays.asList(getSupportedPairs()).indexOf(pair) == -1)
throw new RuntimeException("Unsupported pair " + pair + " supported are "
+ Arrays.asList(getSupportedPairs()).toString());
return doGetRates(pair);
}
@Override
protected boolean doValidateSink(Object sink) {
return sink instanceof IRateSink;
}
public abstract List<IRate> doGetRates(ICurrencyPair pair);
@Override
public String toString() {
return "Rateprovider [" + getLabel() + "]";
}
}