ConstraintsPopulatorFactory cpf = propertyInfo.getUnderlyingAnnotation(ConstraintsPopulatorFactory.class);
if(cpf != null)
{
Class<? extends ManagedPropertyConstraintsPopulatorFactory> factoryClass = cpf.value();
ManagedPropertyConstraintsPopulatorFactory pfactory = factoryClass.newInstance();
ManagedPropertyConstraintsPopulator populator = pfactory.newInstance(cpf.min(), cpf.max(), cpf.legalValues(), cpf.args());
if (populator != null)
{
Class<?> clazz = propertyInfo.getBeanInfo().getClassInfo().getType();
populator.populateManagedProperty(clazz, propertyInfo, fields);
}