--- /dev/null
+/*
+ * (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 <T> 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);
+ }
+
+}
--- /dev/null
+/*
+ * (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<Long> 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<UserGroup> 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<UserGroup> 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;
+ }
+
+}
+++ /dev/null
-/*
- * 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 <T> 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);
- }
-
-}
--- /dev/null
+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);
+ }
+
+}
+++ /dev/null
-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<Long> 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<UserGroup> 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<UserGroup> 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;
- }
-}
--- /dev/null
+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<Long> 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);
+ }
+}
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;
public static final int FINDGROUP = 8;
@EJB
- UserDAO userDAO;
+ UserEJB userDAO;
@Override
public void processRequest(HttpServletRequest request, HttpServletResponse response) {