Merge branch 'release/5.11.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / input / entitycreator / GroupCreator.java
index 808a0ff7b3375a82dde6f38c5db61f80e7f31364..8884f2e9b42dfaebbc98464f9977258f7bf2023a 100644 (file)
@@ -13,6 +13,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.validation.ConstraintViolationException;
+
 import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
@@ -44,19 +46,22 @@ public class GroupCreator implements IEntityCreator<Group> {
         */
        @Override
        public Group createEntity(Object key, String text) {
-           List<Group> groupList =CdmStore.getService(IGroupService.class).listByName(text, MatchMode.EXACT, null, 100, 0, null, null);
-
-        if (groupList.isEmpty()){
+           try{
             Group group = Group.NewInstance(text);
-//            UUID groupUuid = CdmStore.getService(IGroupService.class).saveGroup(group);
-//            group = CdmStore.getService(IGroupService.class).loadWithUpdate(groupUuid);
-            return group;
-        } else{
-            MessagingUtils.messageDialog(Messages.GROUP_CREATOR_group_exists_title, text, Messages.GROUP_CREATOR_group_exists);
+            List<Group> groupList =CdmStore.getService(IGroupService.class).listByName(group.getName(), MatchMode.EXACT, null, 100, 0, null, null);
+            if (groupList.isEmpty()){
+                group = CdmStore.getService(IGroupService.class).merge(group, true).getMergedEntity();
+//                group = CdmStore.getService(IGroupService.class).loadWithUpdate(group.getUuid());
+                return group;
+            } else{
+                MessagingUtils.messageDialog(Messages.GROUP_CREATOR_group_exists_title, group, Messages.GROUP_CREATOR_group_exists);
+                return null;
+            }
+        }catch (ConstraintViolationException cve){
+            MessagingUtils.messageDialog(Messages.GROUP_CREATOR_Name_not_accepted, getClass(), Messages.GROUP_CREATOR_Name_not_accepted_message);
             return null;
         }
 
-
        }
 
        /* (non-Javadoc)