package ejb.systemAdmin; import java.util.ArrayList; import java.util.Collection; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import TO.MedicalSpecialtyTO; import jpa.MedicalSpecialtyJPA; /** * EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los * métodos de la capa de negocio que implementan la logica de negocio y la * interacción con la capa de persistencia. * * @author mark * */ @Stateless public class SystemAdminFacadeBean implements SystemAdminFacadeRemote { // Persistence Unit Context @PersistenceContext(unitName = "MyHealth") private EntityManager entman; /** * Metodo que devuelve todas las especialidades medicas */ public Collection listAllMedicalSpecialities() { return this.listPagedMedicalSpecialities(0, 0); } /** * Metodo que devuelve las especialidades médicas de forma paginada * * Acepta como parametro la página (comenzando en 0) y el número de elementos de * cada página * */ public Collection listPagedMedicalSpecialities(int pageNumber, int pageSize) { Query query = entman.createQuery("from MedicalSpecialtyJPA order by name"); if (pageSize > 0) { query.setFirstResult(pageNumber * pageSize); query.setMaxResults(pageSize); } @SuppressWarnings("unchecked") Collection allJPA = query.getResultList(); Collection allSpecialities = new ArrayList(); for (MedicalSpecialtyJPA ms : allJPA) { allSpecialities.add(new MedicalSpecialtyTO(ms.getName(), ms.getDescription())); } return allSpecialities; } }