/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame;
import java.util.HashMap;
import java.util.Map;
import com.opengamma.analytics.financial.provider.sensitivity.multicurve.MultipleCurrencyParameterSensitivity;
import com.opengamma.analytics.math.matrix.DoubleMatrix1D;
import com.opengamma.financial.analytics.DoubleLabelledMatrix1D;
import com.opengamma.financial.analytics.model.fixedincome.BucketedCurveSensitivities;
import com.opengamma.util.money.Currency;
import com.opengamma.util.tuple.Pair;
/**
* Provides a mechanism to retrieve zero rate sensitivities given a MultipleCurrencyParameterSensitivity object.
*/
public final class ZeroIRDeltaBucketingUtils {
private ZeroIRDeltaBucketingUtils() {
}
public static BucketedCurveSensitivities getBucketedCurveSensitivities(
MultipleCurrencyParameterSensitivity parameterSensitivities,
Map<String, CurveMatrixLabeller> curveLabellers) {
Map<Pair<String, Currency>, DoubleLabelledMatrix1D> labelledMatrix1DMap = new HashMap<>();
for (Map.Entry<Pair<String, Currency>, DoubleMatrix1D> entry :
parameterSensitivities.getSensitivities().entrySet()) {
CurveMatrixLabeller curveLabeller = curveLabellers.get(entry.getKey().getFirst());
DoubleLabelledMatrix1D matrix = curveLabeller.labelMatrix(entry.getValue());
labelledMatrix1DMap.put(entry.getKey(), matrix);
}
return BucketedCurveSensitivities.of(labelledMatrix1DMap);
}
}