//$Id: RegisterAction.java,v 1.1 2007/06/23 18:33:59 pmuir Exp $
package org.jboss.seam.example.booking;
import static org.jboss.seam.ScopeType.EVENT;
import java.io.Serializable;
import java.util.List;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.faces.FacesMessages;
@Stateful
@Scope(EVENT)
@Name("register")
public class RegisterAction implements Register, Serializable
{
@In
private User user;
@PersistenceContext
private EntityManager em;
// if use @EJB, you don't need the ejb-local-ref defined in ejb-jar.xml,
// but you also lose state management and client-side interceptors
@In(create = true)
private Authenticator authenticator;
@In
private FacesMessages facesMessages;
private String verify;
private boolean registered;
public void register()
{
if ( user.getPassword().equals(verify) )
{
if ( authenticator.isUsernameAvailable() )
{
em.persist(user);
facesMessages.add("Successfully registered as #{user.username}");
registered = true;
}
else
{
facesMessages.add("Username #{user.username} already exists");
}
}
else
{
facesMessages.add("verify", "Re-enter your password");
verify=null;
}
}
public void invalid()
{
facesMessages.add("Please try again");
}
public boolean isRegistered()
{
return registered;
}
public String getVerify()
{
return verify;
}
public void setVerify(String verify)
{
this.verify = verify;
}
@Destroy @Remove
public void destroy() {}
}