@SuppressWarnings({ "rawtypes", "unchecked" }) private void groupValidation(final PropertyDescriptor descriptor, final Object value, final Class<?>[] groups) { final List<PropertyConstraint<?>> constraints = new ArrayList<PropertyConstraint<?>>(); for (final Class<?> group : groups) { for (final PropertyConstraint constraint : descriptor.getConstraints()) { try { constraint.validate(descriptor, value, group); } catch (final PropertyValidationException e) { final List<? extends PropertyConstraint<?>> eConstraints = e.getMessageBean().getConstraints(); constraints.addAll(eConstraints); } } // After each group check if we have to got to the next ... if (!constraints.isEmpty()) { throw PropertyValidationException.invalid(descriptor, constraints, value); } } }
@SuppressWarnings({ "rawtypes", "unchecked" }) private void defaultValidation(final PropertyDescriptor descriptor, final Object value) { final List<PropertyConstraint<?>> constraints = new ArrayList<PropertyConstraint<?>>(); for (final PropertyConstraint constraint : descriptor.getConstraints()) { try { if (!(adminMode && constraint.isMandatoryConstraint())) { constraint.validate(descriptor, value); } } catch (final PropertyValidationException e) { final List<? extends PropertyConstraint<?>> eConstraints = e.getMessageBean().getConstraints(); constraints.addAll(eConstraints); } } if (!constraints.isEmpty()) { throw PropertyValidationException.invalid(descriptor, constraints, value); } }