UserBean.java 1.52 KB
package fi.insomnia.bortal.beans;

import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.insomnia.bortal.UserBeanLocal;
import fi.insomnia.bortal.db.User;

/**
 * Session Bean implementation class UserBean
 */
@LocalBean
@Stateless
public class UserBean implements UserBeanLocal {

	private static final Logger logger = LoggerFactory
			.getLogger(UserBean.class);
	/**
	 * Java EE container injektoi t�m�n luokkamuuttujan luokan luonnin
	 * yhteydess�.
	 */
	@PersistenceContext
	private EntityManager em;

	/**
	 * Default constructor.
	 */
	public UserBean() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public User createNewUser(String nick, String password) {
		User returnUser = new User();
		returnUser.setNick(nick);

		// TODO: Hash function....
		returnUser.setPassword(password);

		// Tallennetaan olio kantaan...
		em.persist(returnUser);
		return returnUser;
	}

	public List<User> getUsers() {
		List<User> ret = em.createQuery("select u from User u", User.class)
				.getResultList();
		logger.info("Found {} users from database ", ret.size());
		return ret;
	}

	@Override
	public void mergeChanges(User currentUser) {
		em.merge(currentUser);
	}

	public User getUser(String nick) {
		User ret = em.createQuery("select u from User u where u.nick = :name",
				User.class).setParameter("name", nick).getSingleResult();
		return ret;
	}

}