From: Bojnourdi Date: Fri, 7 Aug 2015 13:14:22 +0000 (+0200) Subject: Working on edj->dao separation X-Git-Tag: gde-v0.1~18^2~95 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=2a02a97a4cd1257325377da0552c006aef4452d1;p=modules%2Fgde.git Working on edj->dao separation --- diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/StudyDao.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/StudyDao.java new file mode 100644 index 0000000..9924e9b --- /dev/null +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/StudyDao.java @@ -0,0 +1,76 @@ +/* + * (C) 2015 EDF + */ +package com.edf.gde.dao; + +import com.edf.gde.entities.Study; +import com.edf.gde.transferables.StudyTO; +import java.util.Date; +import javax.persistence.EntityManager; + +/** + * + * @author Kavoos + */ +public class StudyDao { + private EntityManager em; + + public StudyDao(EntityManager em) { + this.em = em; + } + + public StudyTO createStudy(StudyTO sto) { + Study s = Study.fromStudyTO(sto); + em.persist(s); + return s.toStudyTO(); + } + + public void deleteStudy(StudyTO sto) { + Study s = Study.fromStudyTO(sto); + em.remove(s); + } + + public StudyTO updateStudy(StudyTO sto) { + Study s = Study.fromStudyTO(sto); + Study up = em.merge(s); + return up.toStudyTO(); + } + + public StudyTO findStudy(StudyTO sto) { + Study found = em.find(Study.class, sto.getId()); + return found.toStudyTO(); + } + + private StudyTO findBy(String queryName, String varName, T value) { + try { + Study found = (Study) em.createNamedQuery(queryName) + .setParameter(varName, value) + .getSingleResult(); + return found.toStudyTO(); + } + catch (Exception e) { + return null; + } + } + + public StudyTO findById(long id) { + return findBy("Study.findById", "id", id); + } + + public StudyTO findByName(String name) { + return findBy("Study.findByName", "name", name); + } + + public StudyTO findByCreationDate(Date creationDate) { + return findBy("Study.findByCreationDate", "creationDate", creationDate); + } + + public StudyTO findByUpdateDate(Date updateDate) { + return findBy("Study.findByUpdateDate", "updateDate", updateDate); + } + + public StudyTO findByDeletionDate(Date deletionDate) { + return findBy("Study.findByDeletionDate", "deletionDate", deletionDate); + } + +} diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/UserDao.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/UserDao.java new file mode 100644 index 0000000..36e1691 --- /dev/null +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/UserDao.java @@ -0,0 +1,233 @@ +/* + * (C) 2015 EDF + */ +package com.edf.gde.dao; + +import com.edf.gde.entities.Group; +import com.edf.gde.entities.User; +import com.edf.gde.entities.UserGroup; +import java.util.List; +import javax.persistence.EntityManager; +import javax.persistence.Query; + +/** + * + * @author Kavoos + */ +public class UserDao { + private EntityManager em; + public UserDao(EntityManager em) { + this.em = em; + } + + /** + * Create a new user + * + * @param userName + * @param password + * @return the new User or null if user exists or on error + */ + public User createUser(String userName, String password) { + + if (userExists(userName)) { + throw new RuntimeException("Unable to create user " + userName); + } + User user = new User(); + user.setName(userName); + user.setPassword(password); + em.persist(user); + return user; + } + + /** + * Create a new group + * + * @param groupName + * @return the new created Group or null on error + */ + public Group createGroup(String groupName) { + if (groupExists(groupName)) { + throw new RuntimeException("Unable to create group " + groupName); + } + Group group = new Group(); + group.setName(groupName); + em.persist(group); + return group; + } + + /** + * Find group + * + * @param name + * @return null if the group does not exists + */ + public Group findGroup(String name) { + Group group = null; + Query q = em.createNamedQuery("Group.findByName"); + q.setParameter("name", name); + group = (Group) q.getSingleResult(); + return group; + } + + /** + * + * @param id + * @return + */ + public Group findGroup(long id) { + Group group = null; + Query q = em.createNamedQuery("Group.findById"); + q.setParameter("id", id); + group = (Group) q.getSingleResult(); + return group; + } + + /** + * + * @param name + * @return + */ + private boolean groupExists(String name) { + Group group = null; + Query q = em.createNamedQuery("Group.findByName"); + q.setParameter("name", name); + try { + group = (Group) q.getSingleResult(); + } catch (Exception ex) { + return false; + } + return true; + } + + /** + * Add a user to a group + * + * @param groupId + * @param userId + * @return + */ + public void addToGroup(long groupId, long userId) { + if (!isInGroup(groupId, userId)) { + UserGroup userGroup = new UserGroup(); + userGroup.setGroupId(groupId); + userGroup.setUserId(userId); + em.persist(userGroup); + } else { + throw new RuntimeException("Unable to add " + userId + " to group " + groupId); + } + } + + /** + * Add users to a group in one transaction + * + * @param groupId + * @param userIds + * @return + */ + public void addToGroup(long groupId, List userIds) { + for (Long id : userIds) { + addToGroup(groupId, id); + } + } + + /** + * + * @param groupId + * @param userId + * @return + */ + public void removeFromGroup(long groupId, long userId) { + Query q = em.createNamedQuery("UserGroup.findByGroupIdUserId"); + q.setParameter("groupId", groupId); + q.setParameter("userId", userId); + List l = q.getResultList(); + if (l.isEmpty()) { + throw new RuntimeException("UserGroup not found"); + } + UserGroup ug = l.get(0); + em.remove(ug); + } + + /** + * + * @param groupId + * @param userId + * @return + */ + public boolean isInGroup(long groupId, long userId) { + Query q = em.createNamedQuery("UserGroup.findByGroupIdUserId"); + q.setParameter("groupId", groupId); + q.setParameter("userId", userId); + List l = q.getResultList(); + return !l.isEmpty(); + } + + /** + * Find user by user name (login) + * + * @param userName + * @return + */ + public User findUser(String userName) { + Query q = em.createNamedQuery("User.findByName"); + q.setParameter("username", userName); + User user = null; + user = (User) q.getSingleResult(); + return user; + } + + /** + * + * @param userName + * @return + */ + private boolean userExists(String userName) { + Query q = em.createNamedQuery("User.findByName"); + q.setParameter("username", userName); + User user = null; + try { + user = (User) q.getSingleResult(); + } catch (Exception ex) { + return false; + } + return true; + } + + /** + * + * @param id + * @return + */ + public User findUser(long id) { + return em.find(User.class, id); + } + + /** + * + * @param userId + * @return + */ + public boolean deleteUser(long userId) { + User user = findUser(userId); + if (user != null) { + em.remove(user); + return true; + } + return false; + } + + /** + * + * @param groupId + * @return + */ + public boolean deleteGroup(long groupId) { + Group group = findGroup(groupId); + if (group != null) { + em.remove(group); + return true; + } + return false; + } + +} diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/StudyDAO.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/StudyDAO.java deleted file mode 100644 index 4dacf5f..0000000 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/StudyDAO.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package com.edf.gde.ejb; - -import com.edf.gde.entities.Study; -import com.edf.gde.transferables.StudyTO; -import java.util.Date; -import javax.ejb.Stateless; -import javax.ejb.LocalBean; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; - -/** - * - * @author F62173 - */ -@Stateless -@LocalBean -public class StudyDAO { - @PersistenceContext(unitName = "GDE-ejbPU") - private EntityManager em; - - public StudyTO createStudy(StudyTO sto) { - Study s = Study.fromStudyTO(sto); - em.persist(s); - return s.toStudyTO(); - } - - public void deleteStudy(StudyTO sto) { - Study s = Study.fromStudyTO(sto); - em.remove(s); - } - - public StudyTO updateStudy(StudyTO sto) { - Study s = Study.fromStudyTO(sto); - Study up = em.merge(s); - return up.toStudyTO(); - } - - public StudyTO findStudy(StudyTO sto) { - Study found = em.find(Study.class, sto.getId()); - return found.toStudyTO(); - } - - private StudyTO findBy(String queryName, String varName, T value) { - try { - Study found = (Study) em.createNamedQuery(queryName) - .setParameter(varName, value) - .getSingleResult(); - return found.toStudyTO(); - } - catch (Exception e) { - return null; - } - } - - public StudyTO findById(long id) { - return findBy("Study.findById", "id", id); - } - - public StudyTO findByName(String name) { - return findBy("Study.findByName", "name", name); - } - - public StudyTO findByCreationDate(Date creationDate) { - return findBy("Study.findByCreationDate", "creationDate", creationDate); - } - - public StudyTO findByUpdateDate(Date updateDate) { - return findBy("Study.findByUpdateDate", "updateDate", updateDate); - } - - public StudyTO findByDeletionDate(Date deletionDate) { - return findBy("Study.findByDeletionDate", "deletionDate", deletionDate); - } - -} diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/StudyEJB.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/StudyEJB.java new file mode 100644 index 0000000..7a28660 --- /dev/null +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/StudyEJB.java @@ -0,0 +1,67 @@ +package com.edf.gde.ejb; + +import com.edf.gde.dao.StudyDao; +import com.edf.gde.transferables.StudyTO; +import java.util.Date; +import javax.ejb.Stateless; +import javax.ejb.LocalBean; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +/** + * + * @author F62173 + */ +@Stateless +@LocalBean +public class StudyEJB { + + @PersistenceContext(unitName = "GDE-ejbPU") + private EntityManager em; + + public StudyTO createStudy(StudyTO sto) { + StudyDao dao = new StudyDao(em); + return dao.createStudy(sto); + } + + public void deleteStudy(StudyTO sto) { + StudyDao dao = new StudyDao(em); + dao.deleteStudy(sto); + } + + public StudyTO updateStudy(StudyTO sto) { + StudyDao dao = new StudyDao(em); + return dao.updateStudy(sto); + } + + public StudyTO findStudy(StudyTO sto) { + StudyDao dao = new StudyDao(em); + return dao.findStudy(sto); + } + + public StudyTO findById(long id) { + StudyDao dao = new StudyDao(em); + return dao.findById(id); + } + + public StudyTO findByName(String name) { + StudyDao dao = new StudyDao(em); + return dao.findByName(name); + } + + public StudyTO findByCreationDate(Date creationDate) { + StudyDao dao = new StudyDao(em); + return dao.findByCreationDate(creationDate); + } + + public StudyTO findByUpdateDate(Date updateDate) { + StudyDao dao = new StudyDao(em); + return dao.findByUpdateDate(updateDate); + } + + public StudyTO findByDeletionDate(Date deletionDate) { + StudyDao dao = new StudyDao(em); + return dao.findByDeletionDate(deletionDate); + } + +} diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserDAO.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserDAO.java deleted file mode 100644 index ac57a6c..0000000 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserDAO.java +++ /dev/null @@ -1,233 +0,0 @@ -package com.edf.gde.ejb; - -import com.edf.gde.entities.Group; -import com.edf.gde.entities.User; -import com.edf.gde.entities.UserGroup; -import java.util.List; -import javax.ejb.Stateless; -import javax.ejb.LocalBean; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; - -/** - * - * @author Kavoos - */ -@Stateless -@LocalBean -public class UserDAO { - - @PersistenceContext(unitName = "GDE-ejbPU") - private EntityManager em; - - /** - * Create a new user - * - * @param userName - * @param password - * @return the new User or null if user exists or on error - */ - public User createUser(String userName, String password) { - - if (userExists(userName)) { - throw new RuntimeException("Unable to create user " + userName); - } - User user = new User(); - user.setName(userName); - user.setPassword(password); - em.persist(user); - return user; - } - - /** - * Create a new group - * - * @param groupName - * @return the new created Group or null on error - */ - public Group createGroup(String groupName) { - if (groupExists(groupName)) { - throw new RuntimeException("Unable to create group " + groupName); - } - Group group = new Group(); - group.setName(groupName); - em.persist(group); - return group; - } - - /** - * Find group - * - * @param name - * @return null if the group does not exists - */ - public Group findGroup(String name) { - Group group = null; - Query q = em.createNamedQuery("Group.findByName"); - q.setParameter("name", name); - group = (Group) q.getSingleResult(); - return group; - } - - /** - * - * @param id - * @return - */ - public Group findGroup(long id) { - Group group = null; - Query q = em.createNamedQuery("Group.findById"); - q.setParameter("id", id); - group = (Group) q.getSingleResult(); - return group; - } - - /** - * - * @param name - * @return - */ - private boolean groupExists(String name) { - Group group = null; - Query q = em.createNamedQuery("Group.findByName"); - q.setParameter("name", name); - try { - group = (Group) q.getSingleResult(); - } catch (Exception ex) { - return false; - } - return true; - } - - /** - * Add a user to a group - * - * @param groupId - * @param userId - * @return - */ - public void addToGroup(long groupId, long userId) { - if (!isInGroup(groupId, userId)) { - UserGroup userGroup = new UserGroup(); - userGroup.setGroupId(groupId); - userGroup.setUserId(userId); - em.persist(userGroup); - } else { - throw new RuntimeException("Unable to add " + userId + " to group " + groupId); - } - } - - /** - * Add users to a group in one transaction - * - * @param groupId - * @param userIds - * @return - */ - public void addToGroup(long groupId, List userIds) { - for (Long id : userIds) { - addToGroup(groupId, id); - } - } - - /** - * - * @param groupId - * @param userId - * @return - */ - public void removeFromGroup(long groupId, long userId) { - Query q = em.createNamedQuery("UserGroup.findByGroupIdUserId"); - q.setParameter("groupId", groupId); - q.setParameter("userId", userId); - List l = q.getResultList(); - if (l.isEmpty()) { - throw new RuntimeException("UserGroup not found"); - } - UserGroup ug = l.get(0); - em.remove(ug); - } - - /** - * - * @param groupId - * @param userId - * @return - */ - public boolean isInGroup(long groupId, long userId) { - Query q = em.createNamedQuery("UserGroup.findByGroupIdUserId"); - q.setParameter("groupId", groupId); - q.setParameter("userId", userId); - List l = q.getResultList(); - return !l.isEmpty(); - } - - /** - * Find user by user name (login) - * - * @param userName - * @return - */ - public User findUser(String userName) { - Query q = em.createNamedQuery("User.findByName"); - q.setParameter("username", userName); - User user = null; - user = (User) q.getSingleResult(); - return user; - } - - /** - * - * @param userName - * @return - */ - private boolean userExists(String userName) { - Query q = em.createNamedQuery("User.findByName"); - q.setParameter("username", userName); - User user = null; - try { - user = (User) q.getSingleResult(); - } catch (Exception ex) { - return false; - } - return true; - } - - /** - * - * @param id - * @return - */ - public User findUser(long id) { - return em.find(User.class, id); - } - - /** - * - * @param userId - * @return - */ - public boolean deleteUser(long userId) { - User user = findUser(userId); - if (user != null) { - em.remove(user); - return true; - } - return false; - } - - /** - * - * @param groupId - * @return - */ - public boolean deleteGroup(long groupId) { - Group group = findGroup(groupId); - if (group != null) { - em.remove(group); - return true; - } - return false; - } -} diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserEJB.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserEJB.java new file mode 100644 index 0000000..a72aa84 --- /dev/null +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserEJB.java @@ -0,0 +1,153 @@ +package com.edf.gde.ejb; + +import com.edf.gde.dao.UserDao; +import com.edf.gde.entities.Group; +import com.edf.gde.entities.User; +import java.util.List; +import javax.ejb.Stateless; +import javax.ejb.LocalBean; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +/** + * + * @author Kavoos + */ +@Stateless +@LocalBean +public class UserEJB { + + @PersistenceContext(unitName = "GDE-ejbPU") + private EntityManager em; + + /** + * Create a new user + * + * @param userName + * @param password + * @return the new User or null if user exists or on error + */ + public User createUser(String userName, String password) { + UserDao dao = new UserDao(em); + return dao.createUser(userName, password); + } + + /** + * Create a new group + * + * @param groupName + * @return the new created Group or null on error + */ + public Group createGroup(String groupName) { + UserDao dao = new UserDao(em); + return dao.createGroup(groupName); + } + + /** + * Find group + * + * @param name + * @return null if the group does not exists + */ + public Group findGroup(String name) { + UserDao dao = new UserDao(em); + return dao.findGroup(name); + } + + /** + * + * @param id + * @return + */ + public Group findGroup(long id) { + UserDao dao = new UserDao(em); + return dao.findGroup(id); + } + + /** + * Add a user to a group + * + * @param groupId + * @param userId + * @return + */ + public void addToGroup(long groupId, long userId) { + UserDao dao = new UserDao(em); + dao.addToGroup(groupId, userId); + } + + /** + * Add users to a group in one transaction + * + * @param groupId + * @param userIds + * @return + */ + public void addToGroup(long groupId, List userIds) { + UserDao dao = new UserDao(em); + dao.addToGroup(groupId, userIds); + } + + /** + * + * @param groupId + * @param userId + * @return + */ + public void removeFromGroup(long groupId, long userId) { + UserDao dao = new UserDao(em); + dao.removeFromGroup(groupId, userId); + } + + /** + * + * @param groupId + * @param userId + * @return + */ + public boolean isInGroup(long groupId, long userId) { + UserDao dao = new UserDao(em); + return dao.isInGroup(groupId, userId); + } + + /** + * Find user by user name (login) + * + * @param userName + * @return + */ + public User findUser(String userName) { + UserDao dao = new UserDao(em); + return dao.findUser(userName); + } + + /** + * + * @param id + * @return + */ + public User findUser(long id) { + UserDao dao = new UserDao(em); + return dao.findUser(id); + } + + /** + * + * @param userId + * @return + */ + public boolean deleteUser(long userId) { + UserDao dao = new UserDao(em); + return dao.deleteUser(userId); + } + + /** + * + * @param groupId + * @return + */ + public boolean deleteGroup(long groupId) { + UserDao dao = new UserDao(em); + return deleteGroup(groupId); + } +} diff --git a/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/UserService.java b/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/UserService.java index 1715d1c..b08b626 100644 --- a/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/UserService.java +++ b/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/UserService.java @@ -1,6 +1,6 @@ package com.edf.gde.services; -import com.edf.gde.ejb.UserDAO; +import com.edf.gde.ejb.UserEJB; import com.edf.gde.entities.Group; import com.edf.gde.entities.User; import com.edf.gde.transferables.CommandTO; @@ -28,7 +28,7 @@ public class UserService extends BaseService { public static final int FINDGROUP = 8; @EJB - UserDAO userDAO; + UserEJB userDAO; @Override public void processRequest(HttpServletRequest request, HttpServletResponse response) {