/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.riskfactors; import java.util.Set; import com.opengamma.core.position.Portfolio; import com.opengamma.core.position.Position; import com.opengamma.engine.value.ValueRequirement; import com.opengamma.engine.view.ViewCalculationConfiguration; /** * Gathers the risk factors available from a function library for elements of a portfolio, producing a * {@link ValueRequirement} for each risk factor that the function library can produce. */ public interface RiskFactorsGatherer { /** * Gets the risk factors for a single position. * * @param position the position, not null * @return the risk factors, not null */ Set<ValueRequirement> getPositionRiskFactors(Position position); /** * Gets the risk factors for every position in a portfolio. * * @param portfolio the portfolio, not null * @return the risk factors, not null */ Set<ValueRequirement> getPositionRiskFactors(Portfolio portfolio); /** * Adds the risk factors as portfolio requirements to a view calculation configuration. * * @param portfolio the portfolio, not null * @param calcConfig the view calculation configuration, not null */ void addPortfolioRiskFactors(Portfolio portfolio, ViewCalculationConfiguration calcConfig); }