return entityManager.persist(groupUser);
}
<<<<<<< HEAD
=======
@Override
public boolean removeCurrentUserFromGroup(Group group) {
return removeUserFromGroup(group, getCurrentUser());
}
@Override
public boolean removeGroup(Group group) {
verifyEM(entityManager);
verifyEntity(group);
if(!removeGroupUserFromGroup(group)){
return false;
} else {
return entityManager.delete(group);
}
}
/**
* Removes every entry in GroupsUser from the given group.
* @param group
* @return true if successful, false otherwise
*/
private boolean removeGroupUserFromGroup(Group group){
verifyEM(entityManager);
verifyEntity(group);
List groupsUserFromUser;
groupsUserFromUser = entityManager.cQuery(GroupUser.class, "group", group.getKey().toString());
for(GroupUser groupUser : groupsUserFromUser){
if(groupUser.getGroup().equals(group.getKey())){
if(!entityManager.delete(groupUser)){
return false;
}
}
}
return true;
}
@Override
public Collection searchUsersByGroup(Group group) {
String groupKey = group.getKey().toString();
List groupsUserFromUser = entityManager.cQuery(GroupUser.class, "group", groupKey);
Collection foundUsers = new ArrayList();
for(GroupUser groupUser : groupsUserFromUser){
User user = entityManager.find(User.class, groupUser.getUser().getKey());
foundUsers.add(user);
}
return foundUsers;
}
@Override
public boolean removeUserFromGroup(Group group, User user) {
verifyEM(entityManager);
verifyEntity(group);
List groupsUserFromUser = new ArrayList();
groupsUserFromUser = entityManager.cQuery(GroupUser.class, "user", user.getKey().toString());
for(GroupUser groupUser : groupsUserFromUser){
if(groupUser.getGroup().getKey().equals(group.getKey())){
if(!entityManager.delete(groupUser)){
return false;
} else {
return true;
}
}
}
//TODO Add log warning in this case...
return false; // User is not in the given group
}
>>>>>>> aaf5e883628fcfd8e4a9b3e25801b7bf60350690
@Override
public void close() {
entityManager = null; |