A constraint. Instead of implementing this interface, you may use {@link SimpleConstraint} if applicable.
To have better responsiveness, you can handle all (or some) validation at the client by implementing an additional interface, {@link ClientConstraint}.
If you prefer to have a custom way to display the error message (other than the default error box). You can also implement {@link CustomConstraint}. Then, {@link CustomConstraint#showCustomError} is called instead ofshowing the default error box.
Since 5.0.0, {@link ClientConstraint} takes higher priorityif both implemented.
@author tomyeh
@see CustomConstraint
@see ClientConstraint