Pessoal,
Tenho o seguinte método:
private boolean createUser(HttpServletRequest request) {
ResourceBundle messages = ResourceBundle.getBundle("br.com.cpqd.www.dmd.Messages", request.getLocale());
String username = request.getParameter("username");
String name = request.getParameter("name");
String email = request.getParameter("email");
Long id_cliente = Long.parseLong(request.getParameter("id_cliente"));
boolean formOk = true;
if((username == null) || ("".equals(username.trim()))) {
MessageTag.addMessage(request, new JspMessage("user", messages.getString("servlet.nullUsername")));
formOk = false;
}
if((name == null) || ("".equals(name.trim()))) {
MessageTag.addMessage(request, new JspMessage("name", messages.getString("servlet.nullName")));
formOk = false;
}
if((email == null) || ("".equals(email.trim()))) {
MessageTag.addMessage(request, new JspMessage("email", messages.getString("servlet.nullEmail")));
formOk = false;
}
if(!formOk) {
return false;
}
User newUser = new User();
newUser.setUsername(username);
newUser.setName(name);
newUser.setEmail(email);
newUser.setAccessLevel(User.USER);
newUser.setClientID(id_cliente);
String pwd = RandomPasswordGenerator.generatePassword(8);
newUser.setPassword(pwd);
//insert the user in the database
DAO dao = DAOFactory.getDAOInstance(DAOFactory.USER_DAO);
try {
if(!dao.createObject(newUser)) {
MessageTag.addMessage(request, new JspMessage("user", messages.getString("servlet.usernameExists")));
return false;
}
String mailMsg = messages.getString("servlet.mailMsg1") + newUser.getUsername() + messages.getString("servlet.mailMsg2") + pwd;
SendMail.postMail(new String[] { newUser.getEmail() }, messages.getString("servlet.msgTtle"), mailMsg, "[email removido]");
MessageTag.addMessage(request, new JspMessage(null, messages.getString("servlet.msgConfirm"), JspMessage.INFO_MSG));
return true;
} catch(SQLException e) {
if((e.getSQLState().equals("23505")) || //SQLState for unique key violation
(e.getMessage().indexOf("duplicate key violates unique constraint \"UQ_USUARIO_EMAIL\"") >= 0)) {
MessageTag.addMessage(request, new JspMessage("email", messages.getString("servlet.emailExists")));
} else {
MessageTag.addMessage(request, new JspMessage(messages.getString("servlet.baseError")));
e.printStackTrace();
}
return false;
} catch(MessagingException me) {
MessageTag.addMessage(request, new JspMessage(messages.getString("servlet.emailError")));
me.printStackTrace();
//if we could not email the password to the user, delete the user data from DB
try {
dao.deleteObject(newUser.getId().longValue());
} catch(Exception ex) {
MessageTag.addMessage(request, new JspMessage(messages.getString("servlet.baseError")));
me.printStackTrace();
}
return false;
}
}
Alguém sabe como faço para deixar toda a parte abaixo de “//insert the user in the database” como uma outra função e chamá-la da createUser()?
Ou alguma outra força de quebrar esse método.
Vinicius.
