private List<ValidationMetaData> parsePropertyDescriptor(Class<?> clazz,
			Validator validator, PropertyDescriptor constrainedProperty,
			String parentFieldName) throws NoSuchFieldException, SecurityException {
		Set<ConstraintDescriptor<?>> constraintDescriptors = constrainedProperty
				.getConstraintDescriptors();
		String propertyName = constrainedProperty.getPropertyName();

		if (constrainedProperty.isCascaded()) {
			Field cascadeField = clazz.getDeclaredField(propertyName);
			BeanDescriptor beanDescriptor = validator
					.getConstraintsForClass(cascadeField.getType());
			return parseBeanDescriptor(cascadeField.getType(),
					validator, beanDescriptor, propertyName);
		}

		if (!"".equals(parentFieldName)) {
			propertyName = parentFieldName + "." + propertyName;
		}
		return parseConstraintDescriptor(constraintDescriptors, propertyName);
	}