public Map<ValueGreek, Double> evaluate(final GreekDataBundle data) {
ArgumentChecker.notNull(data, "data");
final GreekResultCollection greeks = data.getGreekResults();
final Map<ValueGreek, Double> riskFactors = new HashMap<>();
final Map<UnderlyingType, Double> underlyingData = data.getUnderlyingData();
final OptionTradeData tradeData = data.getOptionTradeData();
for (final Pair<Greek, Double> entry : greeks) {
final Greek key = entry.getFirst();
final Double value = entry.getSecond();
riskFactors.put(new ValueGreek(key), getValueGreek(key, value, underlyingData, tradeData));
}