If it would be helpful you could look into integrating Validator. Follows a similar pattern of having classes to represent the constraints, but also supports multiple violations at once, among other features.
If it would be helpful you could look into integrating Validator. Follows a similar pattern of having classes to represent the constraints, but also supports multiple violations at once, among other features.