in src/main/java/com/microsoft/azure/functions/worker/binding/DataSource.java [50:65]
public Optional<BindingData> computeByType(Type target) {
boolean isTargetOptional = Optional.class.equals(TypeUtils.getRawType(target, null));
if (isTargetOptional) {
Map<TypeVariable<?>, Type> typeArgs = TypeUtils.getTypeArguments(target, Optional.class);
target = typeArgs.size() > 0 ? typeArgs.values().iterator().next() : Object.class;
}
return this.operations.apply(this.value, target).map(obj -> {
if (isTargetOptional) {
if (obj == ObjectUtils.NULL) {
obj = null;
}
obj = Optional.ofNullable(obj);
}
return new BindingData(obj);
});
}