Możesz przykładowo napisać metody sprawdzające, które wyrzucają wyjątek,
gdy dana nie jest prawidłowa, w komunikacie wyświetlany byłby wówczas komunikat:
e.getMessage()
Przykładowo:
...
/*
* Zasady poprawności mogą być pobierane z jakiegoś pliku konfiguracyjnego
*/
public final static int NAME_MIN_LENGTH = 3;
public final static int NAME_MAX_LENGTH = 30;
public final static String NAME_ILLEGAL_REGEX =
"[^qwertyuuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMąĄęĘóÓśŚłŁżŻźŹćĆńŃ]";
...
/*
* Imię powinno zaczynać się z wielkiej litery,
* jednak nie jest to poważny błąd, dlatego metoda
* zwraca przerobione już imie (do prawidłowej postaci) */
public String checkName(String name) throws Exception {
if(name == null)
throw new Exception("Pole imię nie moze być puste");
name = name.trim(); //wycięcie spacji
if(name.isEmpty())
throw new Exception("Pole imię nie moze być puste");
if(name.length() < NAME_MIN_LENGTH) {
throw new Exception("Dłgość imienia to minimum "+NAME_MIN_LENGTH+" znaków");
} else if(name.length() > NAME_MAX_LENGTH) {
throw new Exception("Dłgość imienia to maksimum "+NAME_MAX_LENGTH+" znaków");
}
Pattern p = Pattern.compile(NAME_ILLEGAL_REGEX);
Matcher m = p.matcher(name);
if(m.find())
throw new Exception("Nieprawidłowa wartość pola imię");
name = name.substring(0,1).toUpperCase() + name.substring(1, name.length()).toLowerCase();
return name;
}