public Set<ValueSpecification> getResults(final FunctionCompilationContext context, final ComputationTarget target, final Map<ValueSpecification, ValueRequirement> inputs) {
final Map.Entry<ValueSpecification, ValueRequirement> input = inputs.entrySet().iterator().next();
if (input.getValue().getConstraints().getValues(CURRENCY_INJECTION_PROPERTY) == null) {
// Resolved output is the input with the currency wild-carded, and the function ID the same (this is so that after composition the node might
// be removed from the graph)
final ValueSpecification value = input.getKey();
return Collections.singleton(new ValueSpecification(value.getValueName(), value.getTargetSpecification(), value.getProperties().copy().withAny(ValuePropertyNames.CURRENCY).get()));
}
// The input was requested with the converted currency, so return the same specification to remove this node from the graph
return Collections.singleton(input.getKey());
}