O que acham disso? Sejam sinceros. E pacientes (não sou experiente, tô afim de aprender, e tem gente que costuma socar a coisa hehehe…)
@Entity
public class Usuario {
public static final String QUERY_FIND_BY_DOCUMENTO = "from Usuario as USU where USU.documento = ?";
//atributos...
//getters & setters...
public boolean notInvalid(){
return (this != null && (!StringUtil.isNullOrEmpty(this.getMatricula())));
}
public static Usuario apresentarCredenciais(String strDocumento, String strSenha) {
return ControladorDeAcesso.validarCredenciais(strDocumento, strSenha);
}
}
public abstract class ControladorDeAcesso {
private static final IRepository objRepositoryUsuario = new Repository(Usuario.class);
/**
* Caso as credenciais forem autenticadas, retorna-se o objeto Usuario.
* @param strDocumento
* @param strSenha
* @return Usuario
*/
public static Usuario validarCredenciais(final String strDocumento, final String strSenha) {
final Object[] objParameter = { strDocumento };
try {
final Usuario objUser = (Usuario) ControladorDeAcesso.objRepositoryUsuario.executeQuerySingle(Usuario.QUERY_FIND_BY_DOCUMENTO, objParameter);
if( ((objUser != null) && !objUser.isBloqueado())){
if(!StringUtil.isNullOrEmpty(objUser.getSenha())){
return (objUser.getSenha().equals(strSenha)) ? objUser : null;
}
return (objUser.getMatricula().equals(strSenha)) ? objUser : null;
}
}
catch (final Exception e) {
e.printStackTrace();
}
return null;
}
public String logar(){
String strDocumento = input.getString("txtDocumento");
String strSenha = input.getString("txtSenha");
Usuario objUsuario = Usuario.apresentarCredenciais(strDocumento,strSenha);
return objUsuario.notInvalid() ? SUCCESS : ERROR;
}
Eu poderia ter (claro que poderia, mas digo, é correto?) o procedimento existente no ControladorDeAcesso, diretamente no Usuario? Digo, posso instanciar um DAO diretamente no Usuario?