package name.abuchen.portfolio.money.impl; import java.io.IOException; import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.Optional; import org.eclipse.core.runtime.IProgressMonitor; import name.abuchen.portfolio.money.CurrencyUnit; import name.abuchen.portfolio.money.ExchangeRate; import name.abuchen.portfolio.money.ExchangeRateProvider; import name.abuchen.portfolio.money.ExchangeRateTimeSeries; public class GBXExchangeRateProvider implements ExchangeRateProvider { private static final String GBX = "GBX"; //$NON-NLS-1$ private static final String GBP = "GBP"; //$NON-NLS-1$ @Override public String getName() { return CurrencyUnit.getInstance(GBX).getDisplayName(); } @Override public void load(IProgressMonitor monitor) throws IOException {} @Override public void update(IProgressMonitor monitor) throws IOException {} @Override public void save(IProgressMonitor monitor) throws IOException {} @Override public List<ExchangeRateTimeSeries> getAvailableTimeSeries() { List<ExchangeRateTimeSeries> answer = new ArrayList<>(); answer.add(new GBXGBP(this)); return answer; } private static class GBXGBP implements ExchangeRateTimeSeries { private ExchangeRateProvider provider; private BigDecimal rate = BigDecimal.valueOf(0.01); public GBXGBP(ExchangeRateProvider provider) { this.provider = provider; } @Override public String getBaseCurrency() { return GBX; } @Override public String getTermCurrency() { return GBP; } @Override public ExchangeRateProvider getProvider() { return provider; } @Override public List<ExchangeRate> getRates() { List<ExchangeRate> answer = new ArrayList<>(); answer.add(new ExchangeRate(LocalDate.now(), rate)); return answer; } @Override public Optional<ExchangeRate> lookupRate(LocalDate requestedTime) { return Optional.of(new ExchangeRate(requestedTime, rate)); } @Override public int getWeight() { return 1; } } }