cleanup
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 28 Jul 2022 08:45:35 +0000 (10:45 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 28 Jul 2022 08:50:26 +0000 (10:50 +0200)
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/CdmGenericDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/PolytomousKeyNodeServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/PolytomousKeyServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ServiceBase.java

index 0b6de5ee221575fcccc53e3c85b27443b1fef4dd..7438eff75d85fbdb16351af03190d7a1616cee19 100644 (file)
@@ -127,7 +127,6 @@ public interface ICdmEntityDao<T extends CdmBase> {
 
     /**
      * @param persistentObject
-     * @return
      * @throws DataAccessException
      */
     public UUID delete(T persistentObject) throws DataAccessException;
index dd9e07b2e94b87460060f92e6051a7deb942125d..07301aa2c0bf6cff33e66db23b494c6a6525465f 100644 (file)
@@ -23,7 +23,8 @@ import java.util.UUID;
 import javax.persistence.EntityManagerFactory;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.hibernate.Criteria;
 import org.hibernate.HibernateException;
 import org.hibernate.Session;
@@ -93,7 +94,7 @@ public class CdmGenericDaoImpl
          extends CdmEntityDaoBase<CdmBase>
          implements ICdmGenericDao{
 
-    private static final Logger logger = LogManager.getLogger(CdmGenericDaoImpl.class);
+    private static final Logger logger = LogManager.getLogger();
 
        private Set<Class<? extends CdmBase>> allCdmClasses = null;
        private final Map<Class<? extends CdmBase>, Set<ReferenceHolder>> referenceMap = new HashMap<>();
index f361d26c566927a09b0602efa328a1acba3e4ab0..facc20c74a2bd9bad02937b8bf7984a114cb17db 100644 (file)
@@ -17,7 +17,8 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.hibernate.Criteria;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.criterion.LogicalExpression;
index 9d8e02294b74d349331f4669de047f844ab1af62..43d4356eeca0c770f827a57a677905fc3e2dea97 100755 (executable)
@@ -23,7 +23,8 @@ import java.util.UUID;
 import java.util.stream.Collectors;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.hibernate.Criteria;
 import org.hibernate.FetchMode;
 import org.hibernate.Hibernate;
@@ -671,8 +672,7 @@ public class TaxonDaoHibernateImpl
             }
         }
 
-       return super.delete(taxonBase);
-
+        return super.delete(taxonBase);
     }
 
     @Override
index 78a9422f4a88a1e080e135c5cf8fc497402795a2..393826729ce44ea6e190cc67d2159263ce5f8972 100644 (file)
@@ -25,12 +25,12 @@ import eu.etaxonomy.cdm.persistence.dao.description.IPolytomousKeyNodeDao;
 /**
  * @author a.kohlbecker
  * @since 24.03.2011
- *
  */
 @Service
 @Transactional(readOnly = false)
-public class PolytomousKeyNodeServiceImpl  extends VersionableServiceBase<PolytomousKeyNode, IPolytomousKeyNodeDao> implements IPolytomousKeyNodeService {
-
+public class PolytomousKeyNodeServiceImpl
+        extends VersionableServiceBase<PolytomousKeyNode, IPolytomousKeyNodeDao>
+        implements IPolytomousKeyNodeService {
 
        @Override
     @Autowired
@@ -71,10 +71,8 @@ public class PolytomousKeyNodeServiceImpl  extends VersionableServiceBase<Polyto
                     dao.saveOrUpdate(child);
                     result.addUpdatedObject(child);
                 }
-
             }
 
-
             dao.saveOrUpdate(node);
             result.addUpdatedObject(node);
         }
@@ -102,7 +100,5 @@ public class PolytomousKeyNodeServiceImpl  extends VersionableServiceBase<Polyto
         }
 
         return result;
-
     }
-
-}
+}
\ No newline at end of file
index 14c15247f2656446c249d46e133cac81d203f6d0..19618701b7f18d53e15368954f7bbdc528a3bd6b 100644 (file)
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy\r
-* http://www.e-taxonomy.eu\r
-*\r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.cdm.api.service;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.Set;\r
-import java.util.UUID;\r
-\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-import org.springframework.stereotype.Service;\r
-import org.springframework.transaction.annotation.Transactional;\r
-\r
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;\r
-import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
-import eu.etaxonomy.cdm.api.service.pager.Pager;\r
-import eu.etaxonomy.cdm.api.service.pager.impl.AbstractPagerImpl;\r
-import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.description.PolytomousKey;\r
-import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.cdm.persistence.dao.description.IIdentificationKeyDao;\r
-import eu.etaxonomy.cdm.persistence.dao.description.IPolytomousKeyDao;\r
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;\r
-\r
-@Service\r
-@Transactional(readOnly = false)\r
-public class PolytomousKeyServiceImpl extends IdentifiableServiceBase<PolytomousKey, IPolytomousKeyDao> implements IPolytomousKeyService {\r
-\r
-       private IIdentificationKeyDao identificationKeyDao;\r
-\r
-       @Autowired\r
-       private IPolytomousKeyNodeService nodeService;\r
-\r
-\r
-       @Override\r
-    @Autowired\r
-       protected void setDao(IPolytomousKeyDao dao) {\r
-               this.dao = dao;\r
-       }\r
-\r
-       @Autowired\r
-       protected void setDao(IIdentificationKeyDao identificationKeyDao) {\r
-               this.identificationKeyDao = identificationKeyDao;\r
-       }\r
-\r
-       @Override\r
-       public UpdateResult updateCaches(Class<? extends PolytomousKey> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<PolytomousKey> cacheStrategy, IProgressMonitor monitor) {\r
-               if (clazz == null){\r
-                       clazz = PolytomousKey.class;\r
-               }\r
-               return super.updateCachesImpl(clazz, stepSize, cacheStrategy, monitor);\r
-       }\r
-\r
-       @Override\r
-    public PolytomousKey loadWithNodes(UUID uuid, List<String> propertyPaths, List<String> nodePaths) {\r
-\r
-               if(nodePaths == null){\r
-                       nodePaths = new ArrayList<String>();\r
-               }\r
-               nodePaths.add("children");\r
-\r
-               List<String> rootPaths = new ArrayList<String>();\r
-               rootPaths.add("root");\r
-               for(String path : nodePaths) {\r
-                       rootPaths.add("root." + path);\r
-               }\r
-\r
-               if(propertyPaths != null) {\r
-                   rootPaths.addAll(propertyPaths);\r
-               }\r
-\r
-               PolytomousKey polytomousKey = load(uuid, rootPaths);\r
-               dao.loadNodes(polytomousKey.getRoot(),nodePaths);\r
-               return polytomousKey;\r
-       }\r
-\r
-       /**\r
-        * Returns the polytomous key specified by the given <code>uuid</code>.\r
-        *\r
-        * @see eu.etaxonomy.cdm.api.service.ServiceBase#load(java.util.UUID, java.util.List)\r
-        */\r
-       @Override\r
-       public PolytomousKey load(UUID uuid, List<String> propertyPaths) {\r
-               return super.load(uuid, propertyPaths);\r
-       }\r
-\r
-       @Override\r
-       public Pager<PolytomousKey> findByTaxonomicScope(\r
-                       TaxonBase taxon, Integer pageSize,\r
-                       Integer pageNumber, List<String> propertyPaths, List<String> nodePaths) {\r
-\r
-               List<PolytomousKey> list = new ArrayList<PolytomousKey>();\r
-               Long numberOfResults = identificationKeyDao.countByTaxonomicScope(taxon.getUuid(), PolytomousKey.class);\r
-               if(AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)){\r
-                       list = identificationKeyDao.findByTaxonomicScope(taxon.getUuid(), PolytomousKey.class, pageSize, pageNumber, propertyPaths);\r
-               }\r
-               if (nodePaths != null) {\r
-                       for (PolytomousKey polytomousKey : list) {\r
-                               dao.loadNodes(polytomousKey.getRoot(), nodePaths);\r
-                       }\r
-               }\r
-               Pager<PolytomousKey> pager = new DefaultPagerImpl<PolytomousKey>(pageNumber, numberOfResults, pageSize, list);\r
-\r
-               return pager;\r
-       }\r
-\r
-       @Override\r
-       public UpdateResult updateAllNodeNumberings(UUID polytomousKeyUuid) {\r
-           UpdateResult result = new UpdateResult();\r
-           PolytomousKey polytomousKey = dao.load(polytomousKeyUuid);\r
-           polytomousKey.getRoot().refreshNodeNumbering();\r
-           return result;\r
-       }\r
-\r
-       @Override\r
-       public UpdateResult updateAllNodeNumberings() {\r
-           UpdateResult result = new UpdateResult();\r
-           List<PolytomousKey> polytomousKeys = dao.list();\r
-           for(PolytomousKey polytomousKey : polytomousKeys) {\r
-               polytomousKey.getRoot().refreshNodeNumbering();\r
-           }\r
-           return result;\r
-       }\r
-\r
-       @Override\r
-       public DeleteResult delete(PolytomousKey key){\r
-           //DeleteResult result = new DeleteResult();\r
-           PolytomousKeyNode root = key.getRoot();\r
-\r
-\r
-           DeleteResult result = isDeletable(key.getUuid(), null);\r
-           DeleteResult resultRoot = new DeleteResult();\r
-           if (result.isOk()){\r
-           try{\r
-               if (root != null){\r
-                  // root.setKey(null);\r
-                   resultRoot = nodeService.delete(root.getUuid(), true);\r
-\r
-               }\r
-           }catch(Exception e){\r
-               result.addException(e);\r
-               result.setAbort();\r
-               return result;\r
-           }\r
-           try{\r
-               if (resultRoot.isOk()){\r
-                   dao.delete(key);\r
-                   result.addDeletedObject(key);\r
-                   result.includeResult(resultRoot);\r
-               }\r
-           }catch(Exception e){\r
-                result.addException(e);\r
-                result.setAbort();\r
-                return result;\r
-            }\r
-           }\r
-        return result;\r
-       }\r
-\r
-       @Override\r
-    public DeleteResult isDeletable(UUID keyUuid, DeleteConfiguratorBase config){\r
-        DeleteResult result = new DeleteResult();\r
-        PolytomousKey key = this.load(keyUuid);\r
-        Set<CdmBase> references = commonService.getReferencingObjectsForDeletion(key);\r
-        if (references != null){\r
-           Iterator<CdmBase> iterator = references.iterator();\r
-           CdmBase ref;\r
-           while (iterator.hasNext()){\r
-               ref = iterator.next();\r
-               if ((ref instanceof PolytomousKeyNode) ){\r
-                   PolytomousKeyNode node = HibernateProxyHelper.deproxy(ref, PolytomousKeyNode.class);\r
-                   if (!node.getKey().equals(key)){\r
-                       String message = "The key is a subkey of " + node.getKey() + ", referenced in node with id: " + node.getId() + ". Please remove the subkey reference first and then delete the key. " ;\r
-                       result.addException(new ReferencedObjectUndeletableException(message));\r
-                       result.setAbort();\r
-                       result.addRelatedObject(ref);\r
-                   }\r
-               }\r
-           }\r
-        }\r
-        return result;\r
-    }\r
-\r
-}\r
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.api.service;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
+import eu.etaxonomy.cdm.api.service.pager.Pager;
+import eu.etaxonomy.cdm.api.service.pager.impl.AbstractPagerImpl;
+import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dao.description.IIdentificationKeyDao;
+import eu.etaxonomy.cdm.persistence.dao.description.IPolytomousKeyDao;
+import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
+
+@Service
+@Transactional(readOnly = false)
+public class PolytomousKeyServiceImpl extends IdentifiableServiceBase<PolytomousKey, IPolytomousKeyDao> implements IPolytomousKeyService {
+
+       private IIdentificationKeyDao identificationKeyDao;
+
+       @Autowired
+       private IPolytomousKeyNodeService nodeService;
+
+
+       @Override
+    @Autowired
+       protected void setDao(IPolytomousKeyDao dao) {
+               this.dao = dao;
+       }
+
+       @Autowired
+       protected void setDao(IIdentificationKeyDao identificationKeyDao) {
+               this.identificationKeyDao = identificationKeyDao;
+       }
+
+       @Override
+       public UpdateResult updateCaches(Class<? extends PolytomousKey> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<PolytomousKey> cacheStrategy, IProgressMonitor monitor) {
+               if (clazz == null){
+                       clazz = PolytomousKey.class;
+               }
+               return super.updateCachesImpl(clazz, stepSize, cacheStrategy, monitor);
+       }
+
+       @Override
+    public PolytomousKey loadWithNodes(UUID uuid, List<String> propertyPaths, List<String> nodePaths) {
+
+               if(nodePaths == null){
+                       nodePaths = new ArrayList<String>();
+               }
+               nodePaths.add("children");
+
+               List<String> rootPaths = new ArrayList<String>();
+               rootPaths.add("root");
+               for(String path : nodePaths) {
+                       rootPaths.add("root." + path);
+               }
+
+               if(propertyPaths != null) {
+                   rootPaths.addAll(propertyPaths);
+               }
+
+               PolytomousKey polytomousKey = load(uuid, rootPaths);
+               dao.loadNodes(polytomousKey.getRoot(),nodePaths);
+               return polytomousKey;
+       }
+
+       /**
+        * Returns the polytomous key specified by the given <code>uuid</code>.
+        *
+        * @see eu.etaxonomy.cdm.api.service.ServiceBase#load(java.util.UUID, java.util.List)
+        */
+       @Override
+       public PolytomousKey load(UUID uuid, List<String> propertyPaths) {
+               return super.load(uuid, propertyPaths);
+       }
+
+       @Override
+       public Pager<PolytomousKey> findByTaxonomicScope(
+                       TaxonBase taxon, Integer pageSize,
+                       Integer pageNumber, List<String> propertyPaths, List<String> nodePaths) {
+
+               List<PolytomousKey> list = new ArrayList<PolytomousKey>();
+               Long numberOfResults = identificationKeyDao.countByTaxonomicScope(taxon.getUuid(), PolytomousKey.class);
+               if(AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)){
+                       list = identificationKeyDao.findByTaxonomicScope(taxon.getUuid(), PolytomousKey.class, pageSize, pageNumber, propertyPaths);
+               }
+               if (nodePaths != null) {
+                       for (PolytomousKey polytomousKey : list) {
+                               dao.loadNodes(polytomousKey.getRoot(), nodePaths);
+                       }
+               }
+               Pager<PolytomousKey> pager = new DefaultPagerImpl<PolytomousKey>(pageNumber, numberOfResults, pageSize, list);
+
+               return pager;
+       }
+
+       @Override
+       public UpdateResult updateAllNodeNumberings(UUID polytomousKeyUuid) {
+           UpdateResult result = new UpdateResult();
+           PolytomousKey polytomousKey = dao.load(polytomousKeyUuid);
+           polytomousKey.getRoot().refreshNodeNumbering();
+           return result;
+       }
+
+       @Override
+       public UpdateResult updateAllNodeNumberings() {
+           UpdateResult result = new UpdateResult();
+           List<PolytomousKey> polytomousKeys = dao.list();
+           for(PolytomousKey polytomousKey : polytomousKeys) {
+               polytomousKey.getRoot().refreshNodeNumbering();
+           }
+           return result;
+       }
+
+       @Override
+       public DeleteResult delete(PolytomousKey key){
+
+           PolytomousKeyNode root = key.getRoot();
+
+           DeleteResult result = isDeletable(key.getUuid(), null);
+           DeleteResult resultRoot = new DeleteResult();
+           if (result.isOk()){
+           try{
+               if (root != null){
+                  // root.setKey(null);
+                   resultRoot = nodeService.delete(root.getUuid(), true);
+               }
+           }catch(Exception e){
+               result.addException(e);
+               result.setAbort();
+               return result;
+           }
+           try{
+               if (resultRoot.isOk()){
+                   dao.delete(key);
+                   result.addDeletedObject(key);
+                   result.includeResult(resultRoot);
+               }
+           }catch(Exception e){
+                result.addException(e);
+                result.setAbort();
+                return result;
+            }
+           }
+        return result;
+       }
+
+       @Override
+    public DeleteResult isDeletable(UUID keyUuid, DeleteConfiguratorBase config){
+        DeleteResult result = new DeleteResult();
+        PolytomousKey key = this.load(keyUuid);
+        Set<CdmBase> references = commonService.getReferencingObjectsForDeletion(key);
+        if (references != null){
+           Iterator<CdmBase> iterator = references.iterator();
+           CdmBase ref;
+           while (iterator.hasNext()){
+               ref = iterator.next();
+               if ((ref instanceof PolytomousKeyNode) ){
+                   PolytomousKeyNode node = HibernateProxyHelper.deproxy(ref, PolytomousKeyNode.class);
+                   if (!node.getKey().equals(key)){
+                       String message = "The key is a subkey of " + node.getKey() + ", referenced in node with id: " + node.getId() + ". Please remove the subkey reference first and then delete the key. " ;
+                       result.addException(new ReferencedObjectUndeletableException(message));
+                       result.setAbort();
+                       result.addRelatedObject(ref);
+                   }
+               }
+           }
+        }
+        return result;
+    }
+
+}
index 501745fd8f2c630142361e30c7ac8375c755b58b..0af7204980fb360c25d67497ca8d4ad730a99157 100644 (file)
@@ -16,7 +16,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.hibernate.LockOptions;
 import org.hibernate.Session;
 import org.hibernate.criterion.Criterion;
@@ -109,8 +110,6 @@ public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T
         return result;
     }
 
-
-
     @Override
     @Transactional(readOnly = true)
     public boolean exists(UUID uuid) {
@@ -123,7 +122,6 @@ public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T
         return dao.list(uuidSet, null, null, null, null);
     }
 
-
     @Override
     @Transactional(readOnly = true)
     public <S extends T> List<S> find(Class<S> clazz, Set<UUID> uuidSet) {