Deprecate getCharacterData method in service layer
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / IdentifiableServiceBase.java
index c17355c73892c6dc6785f7ec6b5aef0cd395202e..de1dd9fb4ef2165d3123bc5bf8f08f03f4429b39 100644 (file)
@@ -56,7 +56,7 @@ import eu.etaxonomy.cdm.strategy.merge.IMergable;
 import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
 import eu.etaxonomy.cdm.strategy.merge.MergeException;
 
 import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
 import eu.etaxonomy.cdm.strategy.merge.MergeException;
 
-public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO extends IIdentifiableDao<T>> extends AnnotatableServiceBase<T,DAO>
+public abstract class IdentifiableServiceBase<T extends IdentifiableEntity, DAO extends IIdentifiableDao<T>> extends AnnotatableServiceBase<T,DAO>
                                                implements IIdentifiableEntityService<T>{
 
 
                                                implements IIdentifiableEntityService<T>{
 
 
@@ -139,19 +139,19 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
        @Override
        public List<UuidAndTitleCache<T>> getUuidAndTitleCache() {
                return dao.getUuidAndTitleCache();
        @Override
        public List<UuidAndTitleCache<T>> getUuidAndTitleCache() {
                return dao.getUuidAndTitleCache();
-       }\r
+       }
 
 
-       @Transactional(readOnly = true)\r
+       @Transactional(readOnly = true)
        @Override
        @Override
-       public Pager<T> findByTitle(Class<? extends T> clazz, String queryString,MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
-                Integer numberOfResults = dao.countByTitle(clazz, queryString, matchmode, criteria);\r
-\r
-                List<T> results = new ArrayList<T>();\r
-                if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)\r
-                               results = dao.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);\r
-                }\r
-\r
-                 return new DefaultPagerImpl<T>(pageNumber, numberOfResults, pageSize, results);\r
+       public Pager<T> findByTitle(Class<? extends T> clazz, String queryString,MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+                Integer numberOfResults = dao.countByTitle(clazz, queryString, matchmode, criteria);
+
+                List<T> results = new ArrayList<T>();
+                if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
+                               results = dao.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+                }
+
+                 return new DefaultPagerImpl<T>(pageNumber, numberOfResults, pageSize, results);
        }
 
        @Transactional(readOnly = true)
        }
 
        @Transactional(readOnly = true)
@@ -306,11 +306,12 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
         * @param entitiesToUpdate
         * @param entity
         */
         * @param entitiesToUpdate
         * @param entity
         */
+       @SuppressWarnings("unchecked")
        private void updateTitleCacheForSingleEntity(
                        IIdentifiableEntityCacheStrategy<T> cacheStrategy,
                        List<T> entitiesToUpdate, T entity) {
 
        private void updateTitleCacheForSingleEntity(
                        IIdentifiableEntityCacheStrategy<T> cacheStrategy,
                        List<T> entitiesToUpdate, T entity) {
 
-               assert (entity.isProtectedTitleCache() == false );
+               //assert (entity.isProtectedTitleCache() == false );
 
                //exclude recursive inreferences
                if (entity.isInstanceOf(Reference.class)){
 
                //exclude recursive inreferences
                if (entity.isInstanceOf(Reference.class)){
@@ -330,14 +331,15 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
                                entityCacheStrategy = ReferenceFactory.newReference(((Reference<?>)entity).getType()).getCacheStrategy();
                        }
                }
                                entityCacheStrategy = ReferenceFactory.newReference(((Reference<?>)entity).getType()).getCacheStrategy();
                        }
                }
-               entity.setCacheStrategy(entityCacheStrategy);
+               
 
 
                //old titleCache
                entity.setProtectedTitleCache(true);
 
 
                //old titleCache
                entity.setProtectedTitleCache(true);
+               
                String oldTitleCache = entity.getTitleCache();
                entity.setTitleCache(oldTitleCache, false);   //before we had entity.setProtectedTitleCache(false) but this deleted the titleCache itself
                String oldTitleCache = entity.getTitleCache();
                entity.setTitleCache(oldTitleCache, false);   //before we had entity.setProtectedTitleCache(false) but this deleted the titleCache itself
-
+               entity.setCacheStrategy(entityCacheStrategy);
                //NonViralNames and Reference have more caches //TODO handle in NameService
                String oldNameCache = null;
                String oldFullTitleCache = null;
                //NonViralNames and Reference have more caches //TODO handle in NameService
                String oldNameCache = null;
                String oldFullTitleCache = null;
@@ -387,6 +389,7 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
                if ( oldTitleCache == null   || oldTitleCache != null && ! oldTitleCache.equals(newTitleCache) ){
                        entity.setTitleCache(null, false);
                        String newCache = entity.getTitleCache();
                if ( oldTitleCache == null   || oldTitleCache != null && ! oldTitleCache.equals(newTitleCache) ){
                        entity.setTitleCache(null, false);
                        String newCache = entity.getTitleCache();
+                       
                        if (newCache == null){
                                logger.warn("newCache should never be null");
                        }
                        if (newCache == null){
                                logger.warn("newCache should never be null");
                        }
@@ -595,5 +598,5 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
        }
 
 
        }
 
 
-}\r
+}