All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.opengamma.strata.calc.marketdata.ObservableDataProvider Maven / Gradle / Ivy

/*
 * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.strata.calc.marketdata;

import static com.opengamma.strata.collect.Guavate.toImmutableMap;

import java.util.Map;
import java.util.Set;

import com.opengamma.strata.collect.result.FailureReason;
import com.opengamma.strata.collect.result.Result;
import com.opengamma.strata.data.ObservableId;

/**
 * A provider of observable market data.
 * 

* This plugin point allows a market data supplier to be provided. * Implementations might request data from an external data provider, such as Bloomberg or Reuters. */ public interface ObservableDataProvider { /** * Obtains an instance that provides no market data. *

* When invoked, the provider will return a map where every requested identifier is a failure. * * @return a provider that returns failures if invoked */ public static ObservableDataProvider none() { return identifiers -> identifiers.stream() .collect(toImmutableMap( id -> id, id -> Result.failure( FailureReason.MISSING_DATA, "No observable market data provider configured, unable to provide data for '{}'", id))); } //------------------------------------------------------------------------- /** * Provides market data for the specified identifiers. *

* The implementation will provide market data for each identifier. * If market data cannot be obtained for an identifier, a failure will be returned. * The returned map must contain one entry for each identifier that was requested. * * @param identifiers the market data identifiers to find * @return the map of market data values, keyed by identifier */ public abstract Map> provideObservableData(Set identifiers); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy