private Object findConfiguredValue()

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