improve generics for collection save in service and dao layer
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 9 Feb 2022 21:32:39 +0000 (22:32 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 9 Feb 2022 21:34:46 +0000 (22:34 +0100)
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/common/ICdmEntityDao.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBase.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IService.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/RegistrationServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ServiceBase.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/UserService.java

index 4fb0b79ee04992c2cbd28213c5e7f4d468cf9c2a..4a8830225d2e255bbe3c64416d73d1b07a501c86 100644 (file)
@@ -106,7 +106,7 @@ public interface ICdmEntityDao<T extends CdmBase> {
 
     public Session getSession() throws DataAccessException;
 
-    public Map<UUID, T> saveAll(Collection<T> cdmObjCollection) throws DataAccessException;
+    public Map<UUID, T> saveAll(Collection<? extends T> cdmObjCollection) throws DataAccessException;
 
     public Map<UUID, T> saveOrUpdateAll(Collection<T> cdmObjCollection);
 
index 32c77c8dcc1829ce9be6151aa4670bc057dc1266..19cef6d825d06f65bea9f15a2b3fcb58ed80793c 100644 (file)
@@ -136,7 +136,7 @@ public abstract class CdmEntityDaoBase<T extends CdmBase>
     // TODO: why does this use saveCdmObject_ which actually savesOrUpdateds\r
     // data ?\r
     @Override\r
-    public Map<UUID, T> saveAll(Collection<T> cdmObjCollection) {\r
+    public Map<UUID, T> saveAll(Collection<? extends T> cdmObjCollection) {\r
         int types = cdmObjCollection.getClass().getTypeParameters().length;\r
         if (types > 0) {\r
             if (logger.isDebugEnabled()) {\r
@@ -145,7 +145,7 @@ public abstract class CdmEntityDaoBase<T extends CdmBase>
         }\r
 \r
         Map<UUID, T> resultMap = new HashMap<>();\r
-        Iterator<T> iterator = cdmObjCollection.iterator();\r
+        Iterator<? extends T> iterator = cdmObjCollection.iterator();\r
         int i = 0;\r
         while (iterator.hasNext()) {\r
             if (((i % 2000) == 0) && (i > 0)) {\r
index 9dd481a11dcfe66eb6f12e6bc5f87dea19e7d47c..eaceff742bd9a01adb35110fd3604e5968c0be80 100644 (file)
@@ -310,7 +310,7 @@ public interface IService<T extends ICdmBase>{
      * @return A Map containing the new entities, keyed using the generated UUID's\r
      *         of those entities\r
      */\r
-    public Map<UUID,T> save(Collection<T> newInstances);\r
+    public Map<UUID,T> save(Collection<? extends T> newInstances);\r
 \r
     /**\r
      * Save a new entity (persists the entity)\r
index 1d10168eb18cddc64ebb3891cf664a374a17d82a..26f2fac00e84b72312b4f4c082ba7144af6626d2 100644 (file)
@@ -222,7 +222,7 @@ public class RegistrationServiceImpl extends AnnotatableServiceBase<Registration
     }
 
     @Override
-    public Map<UUID, Registration> save(Collection<Registration> newInstances) {
+    public Map<UUID, Registration> save(Collection<? extends Registration> newInstances) {
         Map<UUID, Registration> regs = new HashMap<>();
         for(Registration newInstance : newInstances) {
             Registration reg = save(newInstance);
index 8d9dad18cdcef1c6fcd5c1ae0ea46a0c7f0fcffd..4e685ce6c52fdf8986cd0405debce8e415e4c1ef 100644 (file)
@@ -281,7 +281,7 @@ public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T
 \r
     @Override\r
     @Transactional(readOnly = false)\r
-    public Map<UUID, T> save(Collection<T> newInstances) {\r
+    public Map<UUID, T> save(Collection<? extends T> newInstances) {\r
         return dao.saveAll(newInstances);\r
     }\r
 \r
index 24f4c220e781b8b4ec86ca5fe907543f0fc33c35..8573a7aa2a74f76cbdb22c295318d2aec801babb 100644 (file)
@@ -310,7 +310,7 @@ public class UserService extends ServiceBase<User,IUserDao> implements IUserServ
     @Override\r
     @Transactional(readOnly=false)\r
     @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_USER_MANAGER')")\r
-    public Map<UUID, User> save(Collection<User> newInstances) {\r
+    public Map<UUID, User> save(Collection<? extends User> newInstances) {\r
         Map<UUID, User> users = new HashMap<UUID, User>();\r
        for (User user: newInstances){\r
                createUser(user);\r