/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.riskfactor; import java.util.HashMap; import java.util.Map; import com.opengamma.analytics.financial.greeks.Greek; import com.opengamma.analytics.financial.greeks.GreekResultCollection; import com.opengamma.analytics.financial.sensitivity.PositionGreek; import com.opengamma.analytics.math.function.Function1D; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.tuple.Pair; /** * */ public class GreekToPositionGreekConverter extends Function1D<GreekDataBundle, Map<PositionGreek, Double>> { @Override public Map<PositionGreek, Double> evaluate(final GreekDataBundle data) { ArgumentChecker.notNull(data, "Risk factor data bundle"); final GreekResultCollection greeks = data.getGreekResults(); final Map<PositionGreek, Double> riskFactors = new HashMap<>(); PositionGreek positionGreek; for (final Pair<Greek, Double> entry : greeks) { positionGreek = new PositionGreek(entry.getFirst()); riskFactors.put(positionGreek, entry.getSecond() * data.getOptionTradeData().getNumberOfContracts()); } return riskFactors; } }