With the bean validation API, you can also introduce custom constraints, rather than the built-in ones, in order to reuse more complex validation logic in different contexts within your application. This is one of the best features and introduces a great flexibility and reusability in real-world validation scenarios.
Let's introduce a custom constraint, called CheckCase, which is used to check whether a string is uppercase or lowercase, according to the developer's preference. The constraint will include a type attribute, which will be given either the value of UPPER or LOWER. If the type attribute was given the UPPER value, then it will check the given string to see if it's in uppercase or not. Otherwise, if ...