/** * Helper method for getting the current parameter values from a list of annotated parameters. * * @param parameters The list of annotated parameter to look up * @param manager The Bean manager * @return The object array of looked up values */ protected Object[] getParameterValues( List<ParameterInjectionPoint<?, X>> parameters, Class<? extends Annotation> specialParam, Object specialVal, BeanManagerImpl manager, CreationalContext<?> creationalContext) { Object[] parameterValues = new Object[parameters.size()]; Iterator<ParameterInjectionPoint<?, X>> iterator = parameters.iterator(); for (int i = 0; i < parameterValues.length; i++) { ParameterInjectionPoint<?, ?> param = iterator.next(); if (specialParam != null && param.isAnnotationPresent(specialParam)) { parameterValues[i] = specialVal; } else { parameterValues[i] = param.getValueToInject(manager, creationalContext); } } return parameterValues; }
@Override public ParameterInjectionPoint<T, X> get(int index) { return ParameterInjectionPoint.of(declaringBean(), delegate().get(index)); }