final CurrencyMatrix matrix = (CurrencyMatrix) target.getValue();
final Set<ComputedValue> result = Sets.newHashSetWithExpectedSize(desiredValues.size());
for (ValueRequirement desiredValue : desiredValues) {
final Currency sourceCurrency = Currency.of(desiredValue.getConstraint(SOURCE_CURRENCY_PROPERTY));
final Currency targetCurrency = Currency.of(desiredValue.getConstraint(TARGET_CURRENCY_PROPERTY));
final ValueSpecification valueSpec = new ValueSpecification(desiredValue.getValueName(), target.toSpecification(), desiredValue.getConstraints());
final Object resultValue = getRate(matrix, desiredValue, executionContext, inputs, sourceCurrency, targetCurrency);
if (resultValue != null) {
result.add(new ComputedValue(valueSpec, resultValue));
}
}