Sto utilizzando Playframework con Java e sto tentando di scegliere tra alcune scelte per la creazione di oggetti utente validi (che verranno poi mantenuti nel database nel mio livello aziendale). La riproduzione utilizza Moduli come supporto per la convalida.
Quindi, nella mia classe utente ...
public User {
@FooConstraint
private String fooParam;
}
Opzione 1: consente al costruttore di utenti di lanciare un'eccezione
public User(String fooParam){
Form<User> userForm = formFactory.form(User.class);
User user = new User(fooParam);
userForm.fill(user);
//Check if FooConstraint is violated
if(userForm.hasErrors(){
throw new IllegalArgumentException();
}
return user;
}
Opzione 2: metodo di fabbrica che restituisce un opzionale
public static Optional<User> userFactory(String fooParam){
Form<User> userForm = formFactory.form(User.class);
User user = new User(fooParam);
userForm.fill(user);
//Check if FooConstraint is violated
if(userForm.hasErrors(){
return Optional.empty();
}
return Optional.of(user);
}
Opzione 3: Lascia che il livello logico aziendale o il livello controller eseguano tutte le convalide.
Apprezzo qualsiasi aiuto con questo. Grazie!