public Optional computeByType()

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);
		});
	}