cleanup and remove rows(xxx) method
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 13 Jun 2018 11:36:54 +0000 (13:36 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 13 Jun 2018 22:51:51 +0000 (00:51 +0200)
23 files changed:
cdmlib-io/src/test/java/eu/etaxonomy/cdm/test/integration/TestCdmDbComparator.java
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/AnnotatableDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBase.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/DaoBase.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionElementDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptiveDataSetDao.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/occurrence/OccurrenceDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/reference/ReferenceDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/query/OrderHint.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationController.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmRepository.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/ICdmRepository.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IService.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ServiceBase.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonServiceImpl.java

index 09c654526d4a4fb1a631f9255232737b620af48a..67836734d46cea26edf15b6940cc860dcc31330b 100644 (file)
@@ -62,7 +62,7 @@ public class TestCdmDbComparator {
 
        private static final String[] table_list = {
 //                     "Address",
-                       "Agent",
+                       "AgentBase",
 //                     "Agent_Agent",
 //                     "Agent_Annotation",
 //                     "Agent_DefinedTermBase",
@@ -325,8 +325,6 @@ public class TestCdmDbComparator {
 
                Map<String, List<CdmBase>> tables_ = new HashMap<String, List<CdmBase>>(table_list.length);
 
-               List<String> tableRows = new ArrayList<String>(MAX_ROWS);
-
                //List<Agent> agents = appCtr.getAgentService().getAllAgents(MAX_ROWS, 0);
 
                try {
@@ -336,9 +334,9 @@ public class TestCdmDbComparator {
                        logger.debug("Retrieving table '" + table_list[i] + "'");
                        System.out.println("Retrieving table '" + table_list[i] + "'");
 
-                               List<CdmBase> rows = new ArrayList<CdmBase>(MAX_ROWS);
+                               List<CdmBase> rows = new ArrayList<>(MAX_ROWS);
 
-                               rows = appCtr.getMainService().rows(table_list[i], MAX_ROWS, 0);
+//                             rows = appCtr.getCommonService().count (table_list[i], MAX_ROWS, 0);
 
                        tables_.put(table_list[i], rows);
 
@@ -354,14 +352,13 @@ public class TestCdmDbComparator {
 
     private Map<String, List<String>> retrieveAllTables___(Source source) {
 
-               Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
-               List<String> tableRows = new ArrayList<String>(MAX_ROWS);
+               Map<String, List<String>> tables = new HashMap<>(table_list.length);
 
                try {
                        //get data from database
                        for (int i = 0; i < table_list.length; i++) {
 
-                               List<String> rows = new ArrayList<String>(MAX_ROWS);
+                               List<String> rows = new ArrayList<>(MAX_ROWS);
 
 //                                     Session session = factory.getCurrentSession();
 
@@ -394,8 +391,7 @@ public class TestCdmDbComparator {
 //             Source source = bmiConfig.getSource();
 //             ResultSet rs = berlinModelSource.getResultSet();
 
-               Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
-               List<String> tableRows = new ArrayList<String>(MAX_ROWS);
+               Map<String, List<String>> tables = new HashMap<>(table_list.length);
 
                try {
                        //get data from database
@@ -406,7 +402,7 @@ public class TestCdmDbComparator {
                                //ResultSet rs = berlinModelSource.getResultSet();
                                //ResultSet rs = source.getResultSet(strQuery) ;
                                ResultSet rs = source.getResultSet(strQuery) ;
-                               List<String> rows = new ArrayList<String>(MAX_ROWS);
+                               List<String> rows = new ArrayList<>(MAX_ROWS);
 
                                while (rs.next()) {
                                        rows.add(rs.toString());
@@ -421,9 +417,9 @@ public class TestCdmDbComparator {
 
     private Map<String, List<String>> retrieveAllTables(CdmApplicationController appCtr) {
 
-               Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
+               Map<String, List<String>> tables = new HashMap<>(table_list.length);
 
-               List<String> agentTableContent = new ArrayList<String>(MAX_ROWS);
+               List<String> agentTableContent = new ArrayList<>(MAX_ROWS);
                List<? extends AgentBase> agents = appCtr.getAgentService().list(null,MAX_ROWS, 0,null,null);
                for (AgentBase agent: agents ) {
                        //TODO: Want the entire row as string not just toString() of the object.
@@ -433,7 +429,7 @@ public class TestCdmDbComparator {
 
                //List<Annotation> annotations = appCtr.getTermService().getAllAnnotations(MAX_ROWS, 0);
 
-               List<String> definedTermBaseTableContent = new ArrayList<String>(MAX_ROWS);
+               List<String> definedTermBaseTableContent = new ArrayList<>(MAX_ROWS);
                List<DefinedTermBase> definedTermBases = appCtr.getTermService().list(null,MAX_ROWS, 0,null,null);
                for (DefinedTermBase definedTermBase: definedTermBases ) {
                        definedTermBaseTableContent.add(definedTermBase.toString());
@@ -504,7 +500,6 @@ public class TestCdmDbComparator {
        }
 
        private void doCompareDatabases(Map<String, List<CdmBase>> tablesDbOne, Map<String, List<CdmBase>> tablesDbTwo) {
-//        public void doCompareDatabases(Map<String, List<String>> tablesDbOne, Map<String, List<String>> tablesDbTwo) {
 
                logger.debug("# Tables in DB 1: " + tablesDbOne.size());
                logger.debug("# Tables in DB 2: " + tablesDbTwo.size());
@@ -513,10 +508,8 @@ public class TestCdmDbComparator {
 
                        logger.info("Comparing table '" + tableName + "'");
 
-//                     List<String> dbOneTableRows = new ArrayList<String>();
-//                     List<String> dbTwoTableRows = new ArrayList<String>();
-                       List<CdmBase> dbOneTableRows = new ArrayList<CdmBase>();
-                       List<CdmBase> dbTwoTableRows = new ArrayList<CdmBase>();
+                       List<CdmBase> dbOneTableRows = new ArrayList<>();
+                       List<CdmBase> dbTwoTableRows = new ArrayList<>();
 
                        dbOneTableRows = tablesDbOne.get(tableName);
                        dbTwoTableRows = tablesDbTwo.get(tableName);
@@ -576,6 +569,7 @@ public class TestCdmDbComparator {
                        logger.error("Error creating application controller");
                        e.printStackTrace();
                        System.exit(1);
+                       return;
                }
 
                try {
@@ -584,10 +578,10 @@ public class TestCdmDbComparator {
                TransactionStatus txStatTwo = appCtrTwo.startTransaction(true);
                        for (int i = 0; i < table_list.length; i++) {
 
-                               List<CdmBase> rowsDbOne = new ArrayList<CdmBase>(MAX_ROWS);
-                               List<CdmBase> rowsDbTwo = new ArrayList<CdmBase>(MAX_ROWS);
-                               rowsDbOne = appCtrOne.getMainService().rows(table_list[i], MAX_ROWS, 0);
-                               rowsDbTwo = appCtrTwo.getMainService().rows(table_list[i], MAX_ROWS, 0);
+                               List<CdmBase> rowsDbOne = new ArrayList<>(MAX_ROWS);
+                               List<CdmBase> rowsDbTwo = new ArrayList<>(MAX_ROWS);
+//                             rowsDbOne = appCtrOne.getCommonService().count(table_list[i], MAX_ROWS, 0);
+//                             rowsDbTwo = appCtrTwo.getCommonService().count(table_list[i], MAX_ROWS, 0);
                                compareTables(table_list[i], rowsDbOne, rowsDbTwo);
                        }
                appCtrTwo.commitTransaction(txStatTwo);
index 2ac65e80ef597f8c3b5debd44d97a346a0816797..f47184950c1510060a5f5c7f376d98dcf9c0051b 100644 (file)
@@ -295,8 +295,6 @@ public interface ICdmEntityDao<T extends CdmBase> {
      */
     public List<Object[]> group(Class<? extends T> clazz,Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths);
 
-    public List<T> rows(String tableName, int limit, int start) throws DataAccessException;
-
     /**
      * @param id
      * @return
index 5faa1262b7488735489211e31e44745989b7c27c..885c1ce95809caa5edc07cab3e7a30f7e8fb2dd5 100644 (file)
@@ -101,7 +101,8 @@ public abstract class AnnotatableDaoImpl<T extends AnnotatableEntity>
                    }
                }
 
-               List<Annotation> results = query.list();
+               @SuppressWarnings("unchecked")
+        List<Annotation> results = query.list();
                defaultBeanInitializer.initializeAll(results, propertyPaths);
                return results;
        }
index 2d020fedc0823ad1d88357617891ff55b4158286..cafd6fc1961be7bc8625b3d2444b81a928d59363 100644 (file)
@@ -69,7 +69,9 @@ import eu.etaxonomy.cdm.persistence.query.OrderHint;
  * FIXME CdmEntityDaoBase is abstract, can it be annotated with @Repository?\r
  */\r
 @Repository\r
-public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implements ICdmEntityDao<T> {\r
+public abstract class CdmEntityDaoBase<T extends CdmBase>\r
+            extends DaoBase\r
+            implements ICdmEntityDao<T> {\r
 \r
     private static final Logger logger = Logger.getLogger(CdmEntityDaoBase.class);\r
 \r
@@ -861,16 +863,6 @@ public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implem
         return list(type,limit,start,null,null);\r
     }\r
 \r
-    @Override\r
-    public List<T> rows(String tableName, int limit, int start) {\r
-        Query query = getSession().createQuery("from " + tableName + " order by uuid");\r
-        query.setFirstResult(start);\r
-        query.setMaxResults(limit);\r
-        @SuppressWarnings("unchecked")\r
-               List<T> result = query.list();\r
-        return result;\r
-    }\r
-\r
     @Override\r
     public Class<T> getType() {\r
         return type;\r
index 5434be9a519bb33032ce8df1ba5c3be278c54d52..354994b45eb0c489d9f7540c5dab10b0e05a9b3c 100644 (file)
@@ -153,7 +153,7 @@ public abstract class DaoBase {
     }
 
     /**
-     * Null save method which compiles a order by clause from the given list of OrderHints
+     * Null save method which compiles an order by clause from the given list of OrderHints
      *
      * @param orderHints can be NULL
      * @return a StringBuffer holding the hql orderby clause
@@ -162,14 +162,13 @@ public abstract class DaoBase {
 
         StringBuffer orderString = new StringBuffer();
 
-        StringBuffer aliasPrefix = new StringBuffer();
-        aliasPrefix.append(" ");
+        StringBuffer aliasPrefix = new StringBuffer(" ");
         if(aliasName != null && !aliasName.isEmpty()){
             aliasPrefix.append(aliasName).append(".");
         }
 
         if(orderHints != null && !orderHints.isEmpty()) {
-            orderString.append(" order by");
+            orderString.append(" ORDER BY ");
             for(OrderHint orderHint : orderHints) {
                 orderString.append(aliasPrefix).append(orderHint.toHql());
             }
index 3b9be2bc2f15f29c3433c6c18f9fe7f9aed32d2a..13f2ceb7dc06619863cb133b5ceb161c2e1289c8 100644 (file)
@@ -549,10 +549,11 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 
         inner.setProjection(Projections.distinct(Projections.id()));
 
+        @SuppressWarnings("unchecked")
         List<Object> intermediateResult = inner.list();
 
         if(intermediateResult.isEmpty()) {
-            return new ArrayList<DescriptionBase>();
+            return new ArrayList<>();
         }
 
         Integer[] resultIds = new Integer[intermediateResult.size()];
@@ -614,10 +615,11 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 
         addOrder(criteria,orderHints);
 
+        @SuppressWarnings("unchecked")
         List<Object> intermediateResult = criteria.list();
 
         if(intermediateResult.isEmpty()) {
-            return new ArrayList<TaxonDescription>();
+            return new ArrayList<>();
         }
 
         Integer[] resultIds = new Integer[intermediateResult.size()];
@@ -633,6 +635,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
         criteria.add(Restrictions.in("id", resultIds));
         addOrder(criteria,orderHints);
 
+        @SuppressWarnings("unchecked")
         List<TaxonDescription> results = criteria.list();
         defaultBeanInitializer.initializeAll(results, propertyPaths);
         return results;
@@ -654,6 +657,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
                 crit.setFirstResult(pageNumber * pageSize);
             }
         }
+        @SuppressWarnings("unchecked")
         List<CommonTaxonName> results = crit.list();
         return results;
     }
@@ -667,9 +671,9 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 
     @Override
     public DescriptionBase find(LSID lsid) {
-        DescriptionBase descriptionBase = super.find(lsid);
+        DescriptionBase<?> descriptionBase = super.find(lsid);
         if(descriptionBase != null) {
-            List<String> propertyPaths = new ArrayList<String>();
+            List<String> propertyPaths = new ArrayList<>();
             propertyPaths.add("createdBy");
             propertyPaths.add("updatedBy");
             propertyPaths.add("taxon");
@@ -793,6 +797,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 
                 setPagingParameter(query, pageSize, pageNumber);
 
+                @SuppressWarnings("unchecked")
                 List<Media> results = query.list();
 
                 defaultBeanInitializer.initializeAll(results, propertyPaths);
@@ -803,10 +808,6 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
             }
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#countTaxonDescriptionMedia(java.util.UUID, java.lang.Boolean, java.util.Set)
-     */
     @Override
     public int countTaxonDescriptionMedia(UUID taxonUuid,
             Boolean limitToGalleries, Set<MarkerType> markerTypes) {
@@ -867,9 +868,6 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#listNamedAreasInUse(java.lang.Integer, java.lang.Integer, java.util.List)
-     */
     @SuppressWarnings("unchecked")
     @Override
     public List<TermDto> listNamedAreasInUse(boolean includeAllParents, Integer pageSize, Integer pageNumber) {
@@ -885,7 +883,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
         List<Object[]> parentResults = new ArrayList<Object[]>();
 
         if(!areasInUse.isEmpty()) {
-            Set<Object> allAreaIds = new HashSet<Object>(areasInUse.size());
+            Set<Object> allAreaIds = new HashSet<>(areasInUse.size());
 
             if(includeAllParents) {
                 // find all parent nodes
@@ -894,7 +892,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
                 List<Object[]> allAreasResult = query.list();
                 Map<Object, Object> allAreasMap = ArrayUtils.toMap(allAreasResult.toArray());
 
-                Set<Object> parents = new HashSet<Object>();
+                Set<Object> parents = new HashSet<>();
 
                 for(Object[] leaf : areasInUse) {
                     allAreaIds.add(leaf[0]);
@@ -942,7 +940,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
      * @return
      */
     private List<TermDto> termDtoListFrom(List<Object[]> results) {
-        Map<UUID, TermDto> dtoMap = new HashMap<UUID, TermDto>(results.size());
+        Map<UUID, TermDto> dtoMap = new HashMap<>(results.size());
         for (Object[] elements : results) {
             UUID uuid = (UUID)elements[0];
             if(dtoMap.containsKey(uuid)){
@@ -958,7 +956,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
                 dtoMap.put(uuid, new TermDto(uuid, representations, (UUID)elements[2], (UUID)elements[3], (Integer)elements[4]));
             }
         }
-        return new ArrayList<TermDto>(dtoMap.values());
+        return new ArrayList<>(dtoMap.values());
     }
 
 
index ce025ccf11bf3776e4d565fe0ad965f8471f7262..d63d81cefc9eccac65e8f9ffc4d3e15406639dbb 100644 (file)
@@ -94,6 +94,7 @@ public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionEle
                 }
             }
 
+            @SuppressWarnings("unchecked")
             List<Media> results = query.list();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -148,6 +149,7 @@ public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionEle
                 }
             }
 
+            @SuppressWarnings("unchecked")
             List<DescriptionElementBase> results = fullTextQuery.list();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -160,8 +162,8 @@ public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionEle
     @Override
     public void purgeIndex() {
         FullTextSession fullTextSession = Search.getFullTextSession(getSession());
-        for(Class clazz : indexedClasses) {
-          fullTextSession.purgeAll(type); // remove all description element base from indexes
+        for(Class<? extends DescriptionElementBase> clazz : indexedClasses) {
+            fullTextSession.purgeAll(type); // remove all description element base from indexes
         }
         fullTextSession.flushToIndexes();
     }
@@ -182,7 +184,7 @@ public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionEle
     public void optimizeIndex() {
         FullTextSession fullTextSession = Search.getFullTextSession(getSession());
         SearchFactory searchFactory = fullTextSession.getSearchFactory();
-        for(Class clazz : indexedClasses) {
+        for(Class<? extends DescriptionElementBase> clazz : indexedClasses) {
             searchFactory.optimize(clazz); // optimize the indices ()
         }
         fullTextSession.flushToIndexes();
index e90f5ec60acb2e452d61bf98f18cf4cc62aa62aa..7d086ed904d69461e4779a4a800dc812784e0353 100644 (file)
@@ -68,8 +68,10 @@ public class DescriptiveDataSetDao
        }
 
        @Override
-       public <T extends DescriptionElementBase> Map<UuidAndTitleCache, Map<UUID, Set<T>>> getTaxonFeatureDescriptionElementMap(Class<T> clazz, UUID descriptiveDataSetUuid, DescriptiveSystemRole role) {
+       public <T extends DescriptionElementBase> Map<UuidAndTitleCache, Map<UUID, Set<T>>> getTaxonFeatureDescriptionElementMap(
+               Class<T> clazz, UUID descriptiveDataSetUuid, DescriptiveSystemRole role) {
                checkNotInPriorView("DescriptiveDataSetDao.getTaxonFeatureDescriptionElementMap(DescriptiveDataSet descriptiveDataSet, Set<Feature> features, Integer pageSize,Integer pageNumber, List<OrderHint> orderHints,  List<String> propertyPaths)");
+
                Map<UuidAndTitleCache, Map<UUID, Set<T>>> result = new HashMap<>();
                try {
 
@@ -135,12 +137,12 @@ public class DescriptiveDataSetDao
                 T data = (T)listEntry[4];
                                Map<UUID, Set<T>> taxonMap = result.get(taxon);
                                if (taxonMap == null){
-                                       taxonMap = new HashMap<UUID, Set<T>>();
+                                       taxonMap = new HashMap<>();
                                        result.put(taxon, taxonMap);
                                }
                                Set<T> featureSet = taxonMap.get(featureUuid);
                                if (featureSet == null){
-                                       featureSet = new HashSet<T>();
+                                       featureSet = new HashSet<>();
                                        taxonMap.put(featureUuid, featureSet);
                                }else{
                                        if (logger.isDebugEnabled()){logger.debug("feature set already exists");}
index 8752a426289ed64d6dfed111a77fc10603b439b0..91da497e37cf6626108798fee60969d8617b17b5 100644 (file)
@@ -260,7 +260,8 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
     }
 
     @Override
-    public List<HybridRelationship> getHybridNames(INonViralName name, HybridRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+    public List<HybridRelationship> getHybridNames(INonViralName name, HybridRelationshipType type,
+            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
         AuditEvent auditEvent = getAuditEventFromContext();
         if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {
             Criteria criteria = getSession().createCriteria(HybridRelationship.class);
@@ -280,6 +281,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
 
             addOrder(criteria, orderHints);
 
+            @SuppressWarnings("unchecked")
             List<HybridRelationship> results = criteria.list();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -300,6 +302,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
                 }
             }
 
+            @SuppressWarnings("unchecked")
             List<HybridRelationship> results =  query.getResultList();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -331,6 +334,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
             }
             addOrder(criteria, orderHints);
 
+            @SuppressWarnings("unchecked")
             List<NameRelationship> results = criteria.list();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -351,6 +355,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
                 }
             }
 
+            @SuppressWarnings("unchecked")
             List<NameRelationship> results = query.getResultList();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -375,7 +380,9 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
                 query.setFirstResult(0);
             }
         }
-        return query.list();
+        @SuppressWarnings("unchecked")
+        List<Integer> result = query.list();
+        return result;
     }
 
     @Override
@@ -395,7 +402,9 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
                 query.setFirstResult(0);
             }
         }
-        return defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths);
+        @SuppressWarnings("unchecked")
+        List<T> result = defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths);
+        return result;
     }
 
     private <T extends TypeDesignationBase> Query getTypeDesignationQuery(String select, TaxonName name,
@@ -438,6 +447,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
                 criteria.setFirstResult(0);
             }
         }
+        @SuppressWarnings("unchecked")
         List<TaxonName> results = criteria.list();
         return results;
     }
@@ -499,6 +509,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
 
             addOrder(criteria, orderHints);
 
+            @SuppressWarnings("unchecked")
             List<TaxonName> results = criteria.list();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -542,6 +553,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
                 }
             }
 
+            @SuppressWarnings("unchecked")
             List<TaxonName> results = query.getResultList();
             defaultBeanInitializer.initializeAll(results, propertyPaths);
             return results;
@@ -622,6 +634,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
             }
         }
 
+        @SuppressWarnings("unchecked")
         List<? extends TaxonName> results = crit.list();
         defaultBeanInitializer.initializeAll(results, propertyPaths);
 
@@ -668,7 +681,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
             // for some reason the HQL .class discriminator didn't work here so I created this preliminary
             // implementation for now. Should be cleaned in future.
 
-            List<RelationshipBase> result = new ArrayList<RelationshipBase>();
+            List<RelationshipBase> result = new ArrayList<>();
 
             int nameRelSize = countAllRelationships(NameRelationship.class);
             if (nameRelSize > start){
@@ -697,7 +710,9 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
             return result;
         } else {
             AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(RelationshipBase.class,auditEvent.getRevisionNumber());
-            return query.getResultList();
+            @SuppressWarnings("unchecked")
+            List<RelationshipBase> result = query.getResultList();
+            return result;
         }
     }
 
@@ -745,7 +760,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
         if(result.size() == 0){
             return null;
         }else{
-            List<UuidAndTitleCache> list = new ArrayList<UuidAndTitleCache>(result.size());
+            List<UuidAndTitleCache> list = new ArrayList<>(result.size());
 
             for (Object object : result){
 
@@ -776,17 +791,13 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
     public UUID delete (TaxonName persistentObject){
         Set<TaxonBase> taxonBases = persistentObject.getTaxonBases();
 
-        if (persistentObject == null){
-            logger.warn(type.getName() + " was 'null'");
-            return null;
-        }
         getSession().saveOrUpdate(persistentObject);
         UUID persUuid = persistentObject.getUuid();
        // persistentObject = this.load(persUuid);
         UUID homotypicalGroupUUID = persistentObject.getHomotypicalGroup().getUuid();
 
 
-        for (TaxonBase taxonBase: taxonBases){
+        for (TaxonBase<?> taxonBase: taxonBases){
             taxonDao.delete(taxonBase);
         }
         HomotypicalGroup homotypicalGroup = homotypicalGroupDao.load(homotypicalGroupUUID);
@@ -797,7 +808,6 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
                 homotypicalGroup.getTypifiedNames().remove(persistentObject);
                 homotypicalGroupDao.saveOrUpdate(homotypicalGroup);
             }
-
         }
 
         getSession().delete(persistentObject);
@@ -869,7 +879,6 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
 
 
        SQLQuery query = getSession().createSQLQuery(sql);
-       List result = query.list();
 
        String hqlQueryStringSelect = "SELECT * ";
 
@@ -879,19 +888,18 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
 
 
        Query hqlQuery = getSession().createQuery(hqlQueryStringFrom);
-       List hqlResult = hqlQuery.list();
+       List<?> hqlResult = hqlQuery.list();
 
 
-               List<HashMap<String,String>> nameRecords = new ArrayList();
-               HashMap<String,String> nameRecord = new HashMap<String,String>();
+               List<HashMap<String,String>> nameRecords = new ArrayList<>();
+               HashMap<String,String> nameRecord = new HashMap<>();
                Taxon accTaxon = null;
                Synonym syn = null;
                TaxonNode familyNode = null;
-               for(Object object : hqlResult)
-         {
+               for(Object object : hqlResult){
                        Object[] row = (Object[])object;
-                       nameRecord = new HashMap<String,String>();
-                       TaxonBase taxonBase = (TaxonBase)row[0];
+                       nameRecord = new HashMap<>();
+                       TaxonBase<?> taxonBase = (TaxonBase<?>)row[0];
                        if (taxonBase instanceof Taxon){
                            accTaxon = HibernateProxyHelper.deproxy(taxonBase, Taxon.class);
                        } else{
index edb71b6d37f37aa74e4b551fc5631e1e87abb2f0..7e62b69cc755ab1d16c1e23eb463eae51e9f9a7b 100644 (file)
@@ -65,7 +65,9 @@ import eu.etaxonomy.cdm.persistence.query.OrderHint;
  * @since 01.09.2008\r
  */\r
 @Repository\r
-public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrObservationBase> implements IOccurrenceDao {\r
+public class OccurrenceDaoHibernateImpl\r
+          extends IdentifiableDaoBase<SpecimenOrObservationBase>\r
+          implements IOccurrenceDao {\r
 \r
     @SuppressWarnings("unused")\r
     private static final Logger logger = Logger.getLogger(TaxonDaoHibernateImpl.class);\r
@@ -356,10 +358,11 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             projectionList.add(Projections.property("titleCache"));\r
             criteria.setProjection(projectionList);\r
 \r
+            @SuppressWarnings("unchecked")\r
             List<Object[]> result = criteria.list();\r
             List<UuidAndTitleCache<SpecimenOrObservationBase>> uuidAndTitleCacheList = new ArrayList<>();\r
             for(Object[] object : result){\r
-                uuidAndTitleCacheList.add(new UuidAndTitleCache<SpecimenOrObservationBase>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
+                uuidAndTitleCacheList.add(new UuidAndTitleCache<>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
             }\r
             return uuidAndTitleCacheList;\r
         }\r
@@ -491,7 +494,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
 \r
     @Override\r
     public List<UuidAndTitleCache<DerivedUnit>> getDerivedUnitUuidAndTitleCache(Integer limit, String pattern) {\r
-        List<UuidAndTitleCache<DerivedUnit>> list = new ArrayList<UuidAndTitleCache<DerivedUnit>>();\r
+        List<UuidAndTitleCache<DerivedUnit>> list = new ArrayList<>();\r
         Session session = getSession();\r
         Query query;\r
         if (pattern != null){\r
@@ -507,8 +510,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
            query.setMaxResults(limit);\r
         }\r
 \r
-\r
-\r
+        @SuppressWarnings("unchecked")\r
         List<Object[]> result = query.list();\r
 \r
         for(Object[] object : result){\r
@@ -525,6 +527,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
 \r
         Query query = session.createQuery("select uuid, id, titleCache from " + type.getSimpleName() + " where dtype = " + FieldUnit.class.getSimpleName());\r
 \r
+        @SuppressWarnings("unchecked")\r
         List<Object[]> result = query.list();\r
 \r
         for(Object[] object : result){\r
@@ -537,7 +540,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
     @Override\r
     public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxonName(Class<T> type,\r
             TaxonName associatedTaxonName, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
-        Set<SpecimenOrObservationBase> setOfAll = new HashSet<SpecimenOrObservationBase>();\r
+        Set<SpecimenOrObservationBase> setOfAll = new HashSet<>();\r
 \r
         // A Taxon name may be referenced by the DeterminationEvent of the SpecimenOrObservationBase\r
         List<SpecimenOrObservationBase> byDetermination = list(type, associatedTaxonName, null, 0, null, null);\r
@@ -586,6 +589,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
         }\r
 \r
 \r
+        @SuppressWarnings("unchecked")\r
         List<T> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
@@ -606,10 +610,11 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
         }\r
 \r
         List<SpecimenNodeWrapper> list = new ArrayList<>();\r
+        @SuppressWarnings("unchecked")\r
         List<Object[]> result = query.list();\r
         for(Object[] object : result){\r
             list.add(new SpecimenNodeWrapper(\r
-                    new UuidAndTitleCache<SpecimenOrObservationBase>(\r
+                    new UuidAndTitleCache<>(\r
                             (UUID) object[0],\r
                             (Integer) object[1],\r
                             (String) object[2]),\r
@@ -707,9 +712,10 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             return Collections.emptyList();\r
         }\r
         List<UuidAndTitleCache<SpecimenOrObservationBase>> list = new ArrayList<>();\r
+        @SuppressWarnings("unchecked")\r
         List<Object[]> result = query.list();\r
         for(Object[] object : result){\r
-            list.add(new UuidAndTitleCache<SpecimenOrObservationBase>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
+            list.add(new UuidAndTitleCache<>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
         }\r
         return list;\r
     }\r
@@ -721,6 +727,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
         if(query==null){\r
             return Collections.emptyList();\r
         }\r
+        @SuppressWarnings("unchecked")\r
         List<T> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
@@ -838,19 +845,10 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
 \r
     @Override\r
     public Collection<SpecimenOrObservationBase> listBySpecimenOrObservationType(SpecimenOrObservationType type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
-        String queryString = "FROM SpecimenOrObservationBase specimens WHERE specimens.recordBasis = :type";\r
+        String queryString = "FROM SpecimenOrObservationBase specimens "\r
+                + " WHERE specimens.recordBasis = :type ";\r
 \r
-        if(orderHints != null && orderHints.size() > 0){\r
-            queryString += " order by ";\r
-            String orderStr = "";\r
-            for(OrderHint orderHint : orderHints){\r
-                if(orderStr.length() > 0){\r
-                    orderStr += ", ";\r
-                }\r
-                queryString += "specimens." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
-            }\r
-            queryString += orderStr;\r
-        }\r
+        queryString += orderByClause(orderHints, "specimens");\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("type", type);\r
@@ -864,26 +862,19 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             query.setMaxResults(limit);\r
         }\r
 \r
-        List results = query.list();\r
+        @SuppressWarnings({ "unchecked", "rawtypes" })\r
+        List<SpecimenOrObservationBase> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
     }\r
 \r
+\r
     @Override\r
     public Collection<DeterminationEvent> listDeterminationEvents(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
-        String queryString = "FROM DeterminationEvent determination WHERE determination.identifiedUnit = :specimen";\r
+        String queryString = "FROM DeterminationEvent determination "\r
+                + " WHERE determination.identifiedUnit = :specimen";\r
 \r
-        if(orderHints != null && orderHints.size() > 0){\r
-            queryString += " order by ";\r
-            String orderStr = "";\r
-            for(OrderHint orderHint : orderHints){\r
-                if(orderStr.length() > 0){\r
-                    orderStr += ", ";\r
-                }\r
-                queryString += "determination." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
-            }\r
-            queryString += orderStr;\r
-        }\r
+        queryString += orderByClause(orderHints, "determination");\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -897,26 +888,18 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             query.setMaxResults(limit);\r
         }\r
 \r
-        List results = query.list();\r
+        @SuppressWarnings("unchecked")\r
+        List<DeterminationEvent> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
     }\r
 \r
     @Override\r
     public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
-        String queryString = "FROM SpecimenTypeDesignation designations WHERE designations.typeSpecimen = :specimen";\r
+        String queryString = "FROM SpecimenTypeDesignation designations "\r
+                + " WHERE designations.typeSpecimen = :specimen";\r
 \r
-        if(orderHints != null && orderHints.size() > 0){\r
-            queryString += " ORDER BY ";\r
-            String orderStr = "";\r
-            for(OrderHint orderHint : orderHints){\r
-                if(orderStr.length() > 0){\r
-                    orderStr += ", ";\r
-                }\r
-                queryString += "designations." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
-            }\r
-            queryString += orderStr;\r
-        }\r
+        queryString += orderByClause(orderHints, "designations");\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -941,17 +924,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
         //DISTINCT is necessary if more than one description exists for a taxon because we create the cross product of all taxon descriptions and description elements\r
         String queryString = "FROM IndividualsAssociation associations WHERE associations.associatedSpecimenOrObservation = :specimen";\r
 \r
-        if(orderHints != null && orderHints.size() > 0){\r
-            queryString += " order by ";\r
-            String orderStr = "";\r
-            for(OrderHint orderHint : orderHints){\r
-                if(orderStr.length() > 0){\r
-                    orderStr += ", ";\r
-                }\r
-                queryString += "associations." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
-            }\r
-            queryString += orderStr;\r
-        }\r
+        queryString += orderByClause(orderHints, "associations");\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -965,7 +938,8 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             query.setMaxResults(limit);\r
         }\r
 \r
-        List results = query.list();\r
+        @SuppressWarnings("unchecked")\r
+        List<IndividualsAssociation> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
     }\r
@@ -973,19 +947,10 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
     @Override\r
     public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
         //DISTINCT is necessary if more than one description exists for a taxon because we create the cross product of all taxon descriptions and description elements\r
-        String queryString = "FROM DescriptionBase descriptions WHERE descriptions.describedSpecimenOrObservation = :specimen";\r
+        String queryString = "FROM DescriptionBase descriptions "\r
+                + " WHERE descriptions.describedSpecimenOrObservation = :specimen";\r
 \r
-        if(orderHints != null && orderHints.size() > 0){\r
-            queryString += " order by ";\r
-            String orderStr = "";\r
-            for(OrderHint orderHint : orderHints){\r
-                if(orderStr.length() > 0){\r
-                    orderStr += ", ";\r
-                }\r
-                queryString += "descriptions." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
-            }\r
-            queryString += orderStr;\r
-        }\r
+        queryString += orderByClause(orderHints, "descriptions");\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -999,7 +964,8 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             query.setMaxResults(limit);\r
         }\r
 \r
-        List results = query.list();\r
+        @SuppressWarnings("unchecked")\r
+        List<DescriptionBase<?>> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
     }\r
@@ -1009,19 +975,10 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
      */\r
     @Override\r
     public List<FieldUnit> getFieldUnitsForGatheringEvent(UUID gatheringEventUuid, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
-        String queryString = "FROM SpecimenOrObservationBase s WHERE s.gatheringEvent.uuid = :gatheringEventUuid";\r
+        String queryString = "FROM SpecimenOrObservationBase sob "\r
+                + "WHERE sob.gatheringEvent.uuid = :gatheringEventUuid";\r
 \r
-        if(orderHints != null && orderHints.size() > 0){\r
-            queryString += " order by ";\r
-            String orderStr = "";\r
-            for(OrderHint orderHint : orderHints){\r
-                if(orderStr.length() > 0){\r
-                    orderStr += ", ";\r
-                }\r
-                queryString += "descriptions." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
-            }\r
-            queryString += orderStr;\r
-        }\r
+        queryString += orderByClause(orderHints, "sob");\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("gatheringEventUuid", gatheringEventUuid);\r
@@ -1035,7 +992,8 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             query.setMaxResults(limit);\r
         }\r
 \r
-        List results = query.list();\r
+        @SuppressWarnings("unchecked")\r
+        List<FieldUnit> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
     }\r
@@ -1048,7 +1006,8 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
         String queryString = "SELECT dnaSample FROM DnaSample dnaSample join dnaSample.sequences sequence WHERE sequence.geneticAccessionNumber LIKE :accessionNumberString";\r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("accessionNumberString", accessionNumberString);\r
-        List results = query.list();\r
+        @SuppressWarnings("unchecked")\r
+        List<DerivedUnit> results = query.list();\r
         defaultBeanInitializer.initializeAll(results, propertyPaths);\r
         return results;\r
     }\r
index b03922e4aa27accdaa53104bab982b5c85af9095..6c4ea3d93c9fafebaf1980894360f3b79dc11477 100644 (file)
@@ -33,7 +33,6 @@ import eu.etaxonomy.cdm.model.reference.IPrintedUnitBase;
 import eu.etaxonomy.cdm.model.reference.IReport;
 import eu.etaxonomy.cdm.model.reference.IThesis;
 import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase;
@@ -280,7 +279,7 @@ public class ReferenceDaoHibernateImpl extends IdentifiableDaoBase<Reference> im
                 */
 
                //TODO implement search in nameDescriptions
-               Set<Reference> referenceSet = new HashSet<Reference>();
+               Set<Reference> referenceSet = new HashSet<>();
                referenceSet.add(reference);
                if(includeSubordinateReferences){
                        referenceSet.addAll(getSubordinateReferences(reference));
@@ -341,13 +340,9 @@ public class ReferenceDaoHibernateImpl extends IdentifiableDaoBase<Reference> im
                return taxonBaseList;
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao#getUuidAndAbbrevTitleCache(java.lang.Integer, java.lang.String)
-     */
     @Override
     public List<UuidAndTitleCache<Reference>> getUuidAndAbbrevTitleCache(Integer limit, String pattern, ReferenceType refType) {
         Session session = getSession();
-        Reference ref = ReferenceFactory.newArticle();
 
         Query query = null;
         if (pattern != null){
@@ -371,13 +366,9 @@ public class ReferenceDaoHibernateImpl extends IdentifiableDaoBase<Reference> im
 
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao#getUuidAndAbbrevTitleCache(java.lang.Integer, java.lang.String)
-     */
     @Override
     public List<UuidAndTitleCache<Reference>> getUuidAndAbbrevTitleCacheForAuthor(Integer limit, String pattern, ReferenceType refType) {
         Session session = getSession();
-        Reference ref = ReferenceFactory.newArticle();
 
         Query query = null;
         if (pattern != null){
index dabe18485db94a9500ee93651052e34a7d578ee8..a1282b4b2e13231f1e6208e322595693d5eb5e41 100755 (executable)
@@ -1069,6 +1069,7 @@ public class TaxonDaoHibernateImpl
                 }
             }
 
+            @SuppressWarnings("unchecked")
             List<TaxonRelationship> result = query.getResultList();
             defaultBeanInitializer.initializeAll(result, propertyPaths);
 
@@ -1076,9 +1077,9 @@ public class TaxonDaoHibernateImpl
             // and we can't live without this functionality in CATE as it screws up the whole
             // taxon tree thing
             if(orderHints != null && !orderHints.isEmpty()) {
-                SortedSet<TaxonRelationship> sortedList = new TreeSet<TaxonRelationship>(new TaxonRelationshipFromTaxonComparator());
+                SortedSet<TaxonRelationship> sortedList = new TreeSet<>(new TaxonRelationshipFromTaxonComparator());
                 sortedList.addAll(result);
-                return new ArrayList<TaxonRelationship>(sortedList);
+                return new ArrayList<>(sortedList);
             }
 
             return result;
index e066f15eae830f1a92ea5408be6e94cbf68170e3..29e6d5ac20338e0108ea9d21fca8ac53babf2eca 100644 (file)
@@ -146,7 +146,6 @@ public class OrderHint {
              *
              * http://opensource.atlassian.com/projects/hibernate/browse/HHH-879
              */
-            Order order;
 
             String[] assocObjs = getPropertyName().split("\\.");
             String path = "";
index 6b24976d6f1635dfb10966b40d863d35e9b7c7ac..9eb6925218640f21b40382efe9589ce47f5f121d 100644 (file)
@@ -253,8 +253,6 @@ public class TaxonController extends AbstractIdentifiableController<TaxonBase, I
             HttpServletResponse response) throws IOException {\r
         logger.info("doGetFieldUnits() - " + request.getRequestURI());\r
 \r
-        ModelAndView mv = new ModelAndView();\r
-\r
         TaxonBase<?> taxonBase = service.load(uuid);\r
         taxonBase = checkExistsAndAccess(taxonBase, NO_UNPUBLISHED, response);\r
 \r
index eb54e6566e1146c5763fa9664fd865ed8f278f75..e71ca34dc12c45c9f2283a975948fab5dcd31ada 100644 (file)
@@ -331,6 +331,7 @@ public class TaxonPortalController extends TaxonController{
     private List<List<Synonym>> removeUnpublishedSynonyms(List<List<Synonym>> synonymyGroups) {
         List<List<Synonym>> result = new ArrayList<>();
         boolean isHomotypicToAccepted = true;
+
         for (List<Synonym> oldList : synonymyGroups){
             List<Synonym> newList = new ArrayList<>();
             for (Synonym oldSyn : oldList){
index f11d62b7a15696965ab5a291c20ac560e09c8d11..c34e2c095a2e0ec5c7273f5c1de3e854c92f34de 100644 (file)
@@ -39,6 +39,7 @@ import eu.etaxonomy.cdm.api.service.ICollectionService;
 import eu.etaxonomy.cdm.api.service.ICommonService;\r
 import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
 import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;\r
 import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;\r
 import eu.etaxonomy.cdm.api.service.IEntityValidationService;\r
 import eu.etaxonomy.cdm.api.service.IEventBaseService;\r
@@ -59,13 +60,11 @@ import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
 import eu.etaxonomy.cdm.api.service.IReferenceService;\r
 import eu.etaxonomy.cdm.api.service.IRegistrationService;\r
 import eu.etaxonomy.cdm.api.service.IRightsService;\r
-import eu.etaxonomy.cdm.api.service.IService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.IUserService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
-import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;\r
 import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;\r
 import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
@@ -651,13 +650,6 @@ public class CdmApplicationController implements ICdmRepository {
                return configuration.getEntityConstraintViolationService();\r
        }\r
 \r
-\r
-       @Override\r
-       public final IService<CdmBase> getMainService(){\r
-               return configuration.getMainService();\r
-       }\r
-\r
-\r
        @Override\r
        public final IDescriptiveDataSetService getDescriptiveDataSetService(){\r
                return configuration.getDescriptiveDataSetService();\r
index 462017ecef0b8b8857d3be2f8f3d6cb8fd4493e2..9970e351547150def05d1799f1a23fe895b41039 100644 (file)
@@ -60,7 +60,6 @@ import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.api.service.IRegistrationService;
 import eu.etaxonomy.cdm.api.service.IRightsService;
-import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.ITermService;
@@ -69,7 +68,6 @@ import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
 import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
 
 /**
@@ -187,10 +185,6 @@ public class CdmRepository implements ICdmRepository, ApplicationContextAware {
        @Autowired
     private SessionFactory factory;
 
-       //      @Autowired
-       //@Qualifier("mainService")
-       private IService<CdmBase> mainService;
-
        @Autowired
        private IDescriptiveDataSetService descriptiveDataSetService;
 
@@ -336,11 +330,6 @@ public class CdmRepository implements ICdmRepository, ApplicationContextAware {
                return this.grantedAuthorityService;
        }
 
-       @Override
-       public IService<CdmBase> getMainService(){
-               return this.mainService;
-       }
-
        @Override
        public PlatformTransactionManager getTransactionManager(){
                return this.transactionManager;
index 7c3812c4be798ebf1915f73da60774c93b9f2d88..f9a3b5d584cc7f2a0b67b36eb720768a5a82b88b 100644 (file)
@@ -21,6 +21,7 @@ import eu.etaxonomy.cdm.api.service.ICollectionService;
 import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.api.service.IDatabaseService;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;
 import eu.etaxonomy.cdm.api.service.IEntityValidationService;
 import eu.etaxonomy.cdm.api.service.IEventBaseService;
@@ -41,17 +42,14 @@ import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.api.service.IRegistrationService;
 import eu.etaxonomy.cdm.api.service.IRightsService;
-import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
 import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionEvaluator;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
 
@@ -210,12 +208,6 @@ public interface ICdmRepository{
        public IGrantedAuthorityService getGrantedAuthorityService();
 
 
-       /**
-        * @return
-        */
-       public IService<CdmBase> getMainService();
-
-
        /**
         * @return
         */
index dd9ab264bae8d59b7f50da55fb15b33936156827..5346396afd7f311dd6250d07a4d2a7c3d3f3b7a0 100644 (file)
@@ -18,10 +18,13 @@ import java.util.UUID;
 \r
 import org.hibernate.LockOptions;\r
 import org.hibernate.Session;\r
+import org.hibernate.event.spi.MergeEvent;\r
 \r
 import eu.etaxonomy.cdm.api.service.pager.Pager;\r
 import eu.etaxonomy.cdm.model.common.ICdmBase;\r
+import eu.etaxonomy.cdm.persistence.dao.initializer.IBeanInitializer;\r
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;\r
+import eu.etaxonomy.cdm.persistence.hibernate.PostMergeEntityListener;\r
 import eu.etaxonomy.cdm.persistence.query.Grouping;\r
 import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
 \r
@@ -285,8 +288,6 @@ public interface IService<T extends ICdmBase>{
      */\r
     public UUID refresh(T persistentObject);\r
 \r
-    public List<T> rows(String tableName, int limit, int start);\r
-\r
     /**\r
      * Save a collection containing new entities (persists the entities)\r
      * @param newInstances the new entities to be persisted\r
index de4a5987e682b2295b9c06be813373245cf4a1e2..31998f36279dca2530a3bfb4d9f263ff51d356e1 100644 (file)
@@ -71,7 +71,7 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity, DAO
        public Pager<Rights> getRights(T t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
         Integer numberOfResults = dao.countRights(t);
 
-               List<Rights> results = new ArrayList<Rights>();
+               List<Rights> results = new ArrayList<>();
                if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
                        results = dao.getRights(t, pageSize, pageNumber,propertyPaths);
                }
index ec5975ac9edeb7684b184c0a600b8ce09eea5269..b8abd1467de111bd6fa360096c72bae86457630f 100644 (file)
@@ -767,13 +767,13 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
 
         for (Taxon taxon : taxa) {
             List<T> perTaxonOccurrences = dao.listByAssociatedTaxon(type, taxon, null, null, orderHints, propertyPaths);
-            for (SpecimenOrObservationBase o : perTaxonOccurrences) {
+            for (SpecimenOrObservationBase<?> o : perTaxonOccurrences) {
                 occurrenceIds.add(o.getId());
             }
         }
         occurrences = (List<T>) dao.loadList(occurrenceIds, propertyPaths);
 
-        return new DefaultPagerImpl<T>(pageNumber, occurrenceIds.size(), pageSize, occurrences);
+        return new DefaultPagerImpl<T>(pageNumber, Long.valueOf(occurrenceIds.size()), pageSize, occurrences);
 
     }
 
index 369215c9975abf685e8e060cd56ea1eef755ae39..2de48ceff77150ef36b4363db52924380f7a7cea 100644 (file)
@@ -33,7 +33,9 @@ import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.cdm.persistence.query.Grouping;\r
 import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
 \r
-public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T>> implements IService<T>, ApplicationContextAware {\r
+public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T>>\r
+            implements IService<T>, ApplicationContextAware {\r
+\r
     @SuppressWarnings("unused")\r
     private static final Logger logger = Logger.getLogger(ServiceBase.class);\r
 \r
@@ -252,18 +254,6 @@ public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T
         return dao.refresh(persistentObject);\r
     }\r
 \r
-    /**\r
-     * FIXME Candidate for harmonization\r
-     * is this method used, and if so, should it be exposed in the service layer?\r
-     * it seems a bit incongruous that we use an ORM to hide the fact that there is a\r
-     * database, then expose a method that talks about "rows" . . .\r
-     */\r
-    @Override\r
-    @Transactional(readOnly = true)\r
-    public List<T> rows(String tableName, int limit, int start) {\r
-        return dao.rows(tableName, limit, start);\r
-    }\r
-\r
     @Override\r
     @Transactional(readOnly = false)\r
     public Map<UUID, T> save(Collection<T> newInstances) {\r
index 5443397f81bef30d42a7bee5b2535fd712057413..d507f485215a58183f5e938069f9b1ebef795fdf 100644 (file)
@@ -550,7 +550,7 @@ public class TaxonServiceImpl
 
 
     /**
-     * recursively collect related taxa for the given <code>taxon</code> . The returned list will also include the
+     * Recursively collect related taxa for the given <code>taxon</code> . The returned list will also include the
      *  <code>taxon</code> supplied as parameter.
      *
      * @param taxon