in safeguard-impl/src/main/java/org/apache/safeguard/impl/config/ConfigurationMapper.java [78:94]
private <T extends Annotation> Object findConfiguredValue(final T instance, final Class<T> api,
final Method sourceMethod,
final Method proxyMethod, final Object[] args) {
final boolean methodLevel = isDefinedAtMethodLevel(sourceMethod, api);
if (methodLevel) {
return ofNullable(findMethodConfiguration(api, sourceMethod, proxyMethod.getName()))
.map(v -> coerce(v, proxyMethod.getReturnType()))
.orElseGet(() -> ofNullable(findDefaultConfiguration(proxyMethod, proxyMethod.getName()))
.map(v -> coerce(v, proxyMethod.getReturnType()))
.orElseGet(() -> getReflectionConfig(instance, proxyMethod, args)));
}
return ofNullable(findDefaultConfiguration(proxyMethod, proxyMethod.getName()))
.map(v -> coerce(v, proxyMethod.getReturnType()))
.orElseGet(() -> ofNullable(findClassConfiguration(api, sourceMethod, proxyMethod.getName()))
.map(v -> coerce(v, proxyMethod.getReturnType()))
.orElseGet(() -> getReflectionConfig(instance, proxyMethod, args)));
}