Simplify Binding API by removing the FIELDTYPE type parameter
The type parameter is mainly used internally, the only externally facing
use is to define the exact type of Binding.getField. Code that has
access to a typed instance of Binding does typically also have direct
access to the field instance, so there's no real use for the type
parameter.
Change-Id: Idf2ab18a79ec5f0a7cef83705b8084fbf7014c10
Extract validation availability check out of BeanValidator (#251).
BeanValidator uses and depends on javax.validation classes. So JSR303
presence check is extracted out of it to avoid ClassNotFoundException.
Change-Id: I8df9a9da873cf694a326c9abb05315c8e94a0a96
Avoid explicit casting to getter return type in getDescriptor() (#292).
BeanBinder may throw a ClassCastException in some cases because of
explicit "cast" call which doesn't do boxing/unboxing.
Change-Id: I8fc61612c2912f2626c075a4fc19cb812adf8aa2
BinderStatusHandler is now triggered only once per validation.
Unified ValidationError and BinderResult into BinderValidationStatus.
Renamed ValidationStatusChangeEvent into ValidationStatus.
Unified handler names for validation status.
Next patch will fix resetting of field errors on reset.
Change-Id: I9536d554d781fe599fbd7e5bcb5a9ffebe675ca0
An item level validator is run on the item (bean) after field validators
have passed. A failed item level validator will block save operations,
just like field level validators.
Change-Id: I3b918b33371ceef07cdfbd0a8b6d477d4ac26b85