/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.provider.description.interestrate; import java.util.List; import java.util.Set; import com.opengamma.analytics.financial.provider.sensitivity.multicurve.ForwardSensitivity; import com.opengamma.util.tuple.DoublesPair; /** * Interface for parameter provider with multi-curves provider. */ public interface ParameterProviderInterface { /** * Create a new copy of the provider. For the curves related data, new maps are created. The parameter related data, the same objects are used. * @return The new provider. */ ParameterProviderInterface copy(); /** * Returns the multicurve provider. * @return The multicurve provider */ MulticurveProviderInterface getMulticurveProvider(); // TODO: Maybe some of the methods below should be in an implementation class. // REVIEW emcleod 2013-9-16 Yes, they should be moved - these classes do far too much and there's // quite a lot of code repeated between various providers. /** * Gets the sensitivities to the curve parameters in the MulticurveProvider. * @param name The curve name * @param pointSensitivity The point sensitivities * @return The sensitivities to the parameters */ double[] parameterSensitivity(String name, List<DoublesPair> pointSensitivity); /** * Gets the forward sensitivities to the curve parameters. * @param name The curve name * @param pointSensitivity The point sensitivities * @return The forward sensitivities to the parameters */ double[] parameterForwardSensitivity(String name, List<ForwardSensitivity> pointSensitivity); /** * Returns an unmodifiable sorted set of all curve names. If there are no curves in the provider, * returns an empty set. * @return An unmodifiable set of all curve names. */ Set<String> getAllCurveNames(); }