}
boolean hasEntity = false;
final List<Injectable> is = new ArrayList<Injectable>(method.getParameters().size());
for (int i = 0; i < method.getParameters().size(); i++) {
final Parameter parameter = method.getParameters().get(i);
if (Parameter.Source.ENTITY == parameter.getSource()) {
hasEntity = true;
is.add(processEntityParameter(
parameter,
method.getMethod().getParameterAnnotations()[i]));
} else {
is.add(getInjectableProviderContext().
getInjectable(parameter, ComponentScope.PerRequest));
}
}
if (hasEntity)
return is;
if (Collections.frequency(is, null) == 1) {
final int i = is.lastIndexOf(null);
final Parameter parameter = method.getParameters().get(i);
if (Parameter.Source.UNKNOWN == parameter.getSource()) {
final Injectable ij = processEntityParameter(
parameter,
method.getMethod().getParameterAnnotations()[i]);
is.set(i, ij);
}