RoleFacade.java 1.39 KB
package fi.insomnia.bortal.facade;

import java.util.List;

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

import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;

@Stateless
@LocalBean
public class RoleFacade extends GenericFacade<Integer, Role> {

	@PersistenceContext
	private EntityManager em;

	public RoleFacade() {
		super(Role.class);
	}

	@Override
	protected EntityManager getEm() {
		return em;
	}

	public Role findByName(String name, LanEvent event) {
		TypedQuery<Role> q = em.createNamedQuery("Role.findByRoleName", Role.class);
		q.setParameter("name", name);
		q.setParameter("event", event);
		return getSingleNullableResult(q);
	}

	public List<Role> findForUser(User user, LanEvent event) {
		TypedQuery<Role> q = getEm().createNamedQuery("Role.findForUser", Role.class);
		q.setParameter("user", user);
		q.setParameter("event", event);
		return q.getResultList();
	}

	public Role createRole(LanEvent event, String rolename) {
		Role ret = new Role(event);
		ret.setName(rolename);
		create(ret);
		return ret;
	}

	public List<Role> findAll(LanEvent event) {
		TypedQuery<Role> q = getEm().createNamedQuery("Role.findForEvent", Role.class);
		q.setParameter("event", event);
		return q.getResultList();
	}

}