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