cleanup
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 13 Jun 2018 23:12:52 +0000 (01:12 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 13 Jun 2018 23:12:52 +0000 (01:12 +0200)
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/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/taxon/TaxonDaoHibernateImpl.java

index 0d9066ab79349fb00164c1439120522713d6a611..57cd9676183ae129f8cf454f4ccf1023baf0bb18 100644 (file)
@@ -152,29 +152,6 @@ public abstract class DaoBase {
         }
     }
 
-    /**
-     * 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
-     */
-    protected StringBuffer orderByClause(List<OrderHint> orderHints, String aliasName) {
-
-        StringBuffer orderString = new StringBuffer();
-
-        StringBuffer aliasPrefix = new StringBuffer(" ");
-        if(aliasName != null && !aliasName.isEmpty()){
-            aliasPrefix.append(aliasName).append(".");
-        }
-
-        if(orderHints != null && !orderHints.isEmpty()) {
-            for(OrderHint orderHint : orderHints) {
-                orderString.append((orderString.length() < 2) ? " ORDER BY " : "," );
-                orderString.append(aliasPrefix).append(orderHint.toHql());
-            }
-        }
-        return orderString;
-    }
     protected void addOrder(Criteria criteria, List<OrderHint> orderHints) {
 
         if(orderHints != null){
@@ -210,29 +187,37 @@ public abstract class DaoBase {
     }
 
     /**
-     * @param hql
-     * @param 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
      */
-    protected void addOrder(StringBuilder hql, String alias, List<OrderHint> orderHints) {
-        boolean orderByAdded = false;
-        String fieldPrefix = "";
-        if(alias != null){
-            fieldPrefix = alias + ".";
+    protected StringBuilder orderByClause(String aliasName, List<OrderHint> orderHints) {
+
+        StringBuilder orderString = new StringBuilder();
+
+        StringBuffer aliasPrefix = new StringBuffer(" ");
+        if(aliasName != null && !aliasName.isEmpty()){
+            aliasPrefix.append(aliasName).append(".");
         }
-        if(orderHints != null && !orderHints.isEmpty()){
-            for(OrderHint oh : orderHints){
-                if(oh != null){
-                    if(!orderByAdded){
-                        hql.append(" order by ");
-                    }
-                    hql.append(fieldPrefix + oh.toHql() + (orderByAdded ? ", ": " "));
-                    orderByAdded = true;
-                }
-            }
 
+        if(orderHints != null && !orderHints.isEmpty()) {
+            for(OrderHint orderHint : orderHints) {
+                orderString.append((orderString.length() < 2) ? " ORDER BY " : "," );
+                orderString.append(aliasPrefix).append(orderHint.toHql());
+            }
         }
+        return orderString;
     }
 
+    /**
+     * @param hql
+     * @param orderHints
+     */
+    protected void addOrder(StringBuilder hql, String alias, List<OrderHint> orderHints) {
+        hql.append(orderByClause(alias, orderHints));
+     }
+
    // ---------------------------- //
 
 }
index 91da497e37cf6626108798fee60969d8617b17b5..12fd0499e4759e92be1f4479e80ea03cacadc188 100644 (file)
@@ -961,15 +961,17 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> im
             Optional<String> infraGenericEpithet, Optional<String> specificEpithet,
             Optional<String> infraSpecificEpithet, Rank rank, Integer pageSize, Integer pageIndex, List<OrderHint> orderHints) {
 
-        StringBuilder hql = prepareFindTaxonNameParts(false, genusOrUninomial, infraGenericEpithet, specificEpithet, infraSpecificEpithet, rank);
+        StringBuilder hql = prepareFindTaxonNameParts(false, genusOrUninomial, infraGenericEpithet,
+                specificEpithet, infraSpecificEpithet, rank);
         addOrder(hql, "n", orderHints);
         Query query = getSession().createQuery(hql.toString());
         if(rank != null){
             query.setParameter("rank", rank);
         }
         setPagingParameter(query, pageSize, pageIndex);
-        List<?> result = query.list();
-        return (List<TaxonNameParts>) result;
+        @SuppressWarnings("unchecked")
+        List<TaxonNameParts> result = query.list();
+        return result;
     }
 
 
index 7e62b69cc755ab1d16c1e23eb463eae51e9f9a7b..71580fb21a6e828e0fbdf9eb078e5a39f5c98d7a 100644 (file)
@@ -848,7 +848,7 @@ public class OccurrenceDaoHibernateImpl
         String queryString = "FROM SpecimenOrObservationBase specimens "\r
                 + " WHERE specimens.recordBasis = :type ";\r
 \r
-        queryString += orderByClause(orderHints, "specimens");\r
+        queryString += orderByClause("specimens", orderHints);\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("type", type);\r
@@ -874,7 +874,7 @@ public class OccurrenceDaoHibernateImpl
         String queryString = "FROM DeterminationEvent determination "\r
                 + " WHERE determination.identifiedUnit = :specimen";\r
 \r
-        queryString += orderByClause(orderHints, "determination");\r
+        queryString += orderByClause("determination", orderHints);\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -899,7 +899,7 @@ public class OccurrenceDaoHibernateImpl
         String queryString = "FROM SpecimenTypeDesignation designations "\r
                 + " WHERE designations.typeSpecimen = :specimen";\r
 \r
-        queryString += orderByClause(orderHints, "designations");\r
+        queryString += orderByClause("designations", orderHints);\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -924,7 +924,7 @@ public class OccurrenceDaoHibernateImpl
         //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
-        queryString += orderByClause(orderHints, "associations");\r
+        queryString += orderByClause("associations", orderHints);\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -950,7 +950,7 @@ public class OccurrenceDaoHibernateImpl
         String queryString = "FROM DescriptionBase descriptions "\r
                 + " WHERE descriptions.describedSpecimenOrObservation = :specimen";\r
 \r
-        queryString += orderByClause(orderHints, "descriptions");\r
+        queryString += orderByClause("descriptions", orderHints);\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("specimen", specimen);\r
@@ -978,7 +978,7 @@ public class OccurrenceDaoHibernateImpl
         String queryString = "FROM SpecimenOrObservationBase sob "\r
                 + "WHERE sob.gatheringEvent.uuid = :gatheringEventUuid";\r
 \r
-        queryString += orderByClause(orderHints, "sob");\r
+        queryString += orderByClause("sob", orderHints);\r
 \r
         Query query = getSession().createQuery(queryString);\r
         query.setParameter("gatheringEventUuid", gatheringEventUuid);\r
index c9b3c8c30bf8bc279572badbd9d74cdd70e378a9..4fda87a623e55294c2182da9ccc67afc30465646 100755 (executable)
@@ -1063,7 +1063,7 @@ public class TaxonDaoHibernateImpl
 
             String queryString = prepareTaxonRelationshipQuery(type, includePublished, direction, false);
 
-            queryString += orderByClause(orderHints, "rel");
+            queryString += orderByClause("rel", orderHints);
 
             Query query = getSession().createQuery(queryString);
             query.setParameter("relatedTaxon", taxon);