if (matchingConstructors.size() > 1) {
this.throwTooManyConstructors(bean, matchingConstructors);
}
context.unbranch();
final Constructor constructor = (Constructor) matchingConstructors.get(0);
body.setBean(constructor);
final Iterator<ConstructorParameter> constructorParameters = constructor.getParameters().iterator();
final Iterator<Value> valuesIterator = arguments.iterator();
while (constructorParameters.hasNext()) {
final ConstructorParameter constructorParameter = constructorParameters.next();
final Value value = valuesIterator.next();
value.setPropertyType(constructorParameter.getType());
this.prepareValue(value);
}
if (context.isDebugEnabled()) {
context.debug(constructor.toString());
}
}