package name.abuchen.portfolio.online;
import java.time.LocalDate;
import java.util.List;
import name.abuchen.portfolio.model.Exchange;
import name.abuchen.portfolio.model.LatestSecurityPrice;
import name.abuchen.portfolio.model.Security;
public interface QuoteFeed
{
String MANUAL = "MANUAL"; //$NON-NLS-1$
/**
* Returns the technical identifier of the quote feed.
*/
String getId();
/**
* Returns the display name of the quote feed.
*/
String getName();
/**
* Update the latest quote of the given securities.
*
* @param securities
* the securities to be updated with the latest quote.
* @param errors
* any errors that occur during the update of the quotes are
* added to this list.
* @return true if at least one quote was updated.
*/
boolean updateLatestQuotes(List<Security> securities, List<Exception> errors);
/**
* Update the historical quotes of the given security.
*
* @param securities
* the security for which the historical quotes are to be
* updated.
* @param errors
* any errors that occur during the update of the quotes are
* added to this list.
* @return true if at least one quote was updated.
*/
boolean updateHistoricalQuotes(Security security, List<Exception> errors);
List<LatestSecurityPrice> getHistoricalQuotes(Security security, LocalDate start, List<Exception> errors);
List<LatestSecurityPrice> getHistoricalQuotes(String response, List<Exception> errors);
List<Exchange> getExchanges(Security subject, List<Exception> errors);
}