package name.abuchen.portfolio.money;
import java.io.IOException;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
/**
* Provides a number of time series of exchange rates.
*/
public interface ExchangeRateProvider
{
/**
* Returns a descriptive name for the source of exchange rates.
*/
String getName();
/**
* Loads the stored exchange rates from local storage.
*/
void load(IProgressMonitor monitor) throws IOException;
/**
* Performs an (online) update of the exchange rates.
*/
void update(IProgressMonitor monitor) throws IOException;
/**
* Saves the exchange rates in local storage.
*/
void save(IProgressMonitor monitor) throws IOException;
/**
* Returns the available exchange rates provided by this provider.
*/
List<ExchangeRateTimeSeries> getAvailableTimeSeries();
}