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