/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.convention;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.id.UniqueId;
/**
* Repository for rates and associated metadata - e.g. LIBOR/EURIBOR etc...
*/
public interface ConventionBundleMaster {
/**
* Search the master for matching convention bundles
* @param searchRequest a request object containing the query parameters
* @return a search result object containing the resulting matches plus metadata
*/
ConventionBundleSearchResult searchConventionBundle(ConventionBundleSearchRequest searchRequest);
/**
* Search the master for matching convention bundles in the history
* @param searchRequest a request object containing the historic query parameters
* @return a search result object containing the resulting matches plus metadata
*/
ConventionBundleSearchResult searchHistoricConventionBundle(ConventionBundleSearchHistoricRequest searchRequest);
/**
* A direct look-up of a convention bundle using a UniqueId
* @param uniqueId the unique identifier
* @return the matching convention bundle, wrapped in a metadata document
*/
ConventionBundleDocument getConventionBundle(UniqueId uniqueId);
/**
* Add a new convention bundle to the master
* @param bundle The id bundle
* @param convention The conventions
* @return the UniqueId of the convention bundle
*/
UniqueId add(ExternalIdBundle bundle, ConventionBundleImpl convention);
}