The “activate-lift” module has the EntityForm that provides a easy way to handle lift entity forms. It is basically an EntityMap that translates invariant violation exceptions to the InvalidForm exception.
The default EntityForm is immutable and there is the MutableEntityForm as an alternative:
net.fwbrasil.activate.lift.EntityForm
net.fwbrasil.activate.lift.MutableEntityForm