public Object injectParam()

in powertools-parameters/src/main/java/software/amazon/lambda/powertools/parameters/internal/LambdaParametersAspect.java [18:41]


    public Object injectParam(final ProceedingJoinPoint joinPoint, final Param paramAnnotation) {
        if(null == paramAnnotation.provider()) {
            throw new IllegalArgumentException("provider for Param annotation cannot be null!");
        }
        BaseProvider provider = ParamManager.getProvider(paramAnnotation.provider());

        if(paramAnnotation.transformer().isInterface()) {
            // No transformation
            return provider.get(paramAnnotation.key());
        } else {
            FieldSignature s = (FieldSignature) joinPoint.getSignature();
            if(String.class.isAssignableFrom(s.getFieldType())) {
                // Basic transformation
                return provider
                        .withTransformation(paramAnnotation.transformer())
                        .get(paramAnnotation.key());
            } else {
                // Complex transformation
                return provider
                        .withTransformation(paramAnnotation.transformer())
                        .get(paramAnnotation.key(), s.getFieldType());
            }
        }
    }