if (setter == null) continue;
// Determine the type of the one parameter ...
Class<?>[] parameterTypes = setter.getParameterTypes();
if (parameterTypes.length != 1) continue; // not a valid JavaBean property
Class<?> paramType = parameterTypes[0];
PropertyType allowedType = PropertyType.discoverType(paramType);
if (allowedType == null) continue; // assume not a JavaBean property with usable type
ValueFactory<?> factory = context.getValueFactories().getValueFactory(allowedType);
if (paramType.isArray()) {
if (paramType.getComponentType().isArray()) continue; // array of array, which we don't do
Object[] values = factory.create(property.getValuesAsArray());