le classi le devi fare.
Io ho trovato comodo creare una piccola interfaccia da far implementare ai componenti da "controllare"
per poter gestire lunghezza massima, lunghezza minima, tipo, obbligatorietà ecc..
tutte queste proprietà implementate sul componente e passate ad una
ulteriore estensione del controller InputVerifier disponibile sui componenti base.
L'InputVerifier può essere gestito come classe anonima o esteso per ricevere il riferimento al componente trattato.
A questo punto ha tutte le informazioni (dall'interfaccia) per validare i dati immessi.

In questo modo la validazione viene effettuata al momento, permettendo ad esempio in caso di errore , la gestione del focus componente.

Per le mie necessità ho anche a disposizione un xml che descrive quella che è la relazione tra una proprietà di un oggetto e la mappatura sul db. In questa configurazione sono presenti anche gli attributi descritti sopra, e in questo senso... la validazione risulta, se non totalmente dinamica, quantomeno ben localizzata e di facile manipolazione.