- adapted transient service to cdmlib changes
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / transientServices / TransientDescriptionService.java
index aa0ba729376521b8100ff356f108bdaab7770c94..b418af0a21501343e63e9c93214d2ca6099682c1 100644 (file)
@@ -15,15 +15,17 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.hibernate.LockMode;
+import org.hibernate.LockOptions;
 import org.hibernate.Session;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.envers.query.criteria.AuditCriterion;
 
+import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.DistributionTree;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
+import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
 import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
 import eu.etaxonomy.cdm.model.common.Annotation;
@@ -40,7 +42,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
@@ -52,6 +54,7 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.view.AuditEvent;
 import eu.etaxonomy.cdm.model.view.AuditEventRecord;
 import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.query.Grouping;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.cdm.persistence.query.OrderHint;
@@ -66,13 +69,13 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
  */
 public class TransientDescriptionService implements IDescriptionService {
 
-    private IDescriptionService defaultDescriptionService;
+    private final IDescriptionService defaultService;
 
     /**
      * @param defaultDescriptionService
      */
     public TransientDescriptionService(IDescriptionService defaultDescriptionService) {
-        this.defaultDescriptionService = defaultDescriptionService;
+        this.defaultService = defaultDescriptionService;
     }
 
     /**
@@ -86,7 +89,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<AuditEventRecord<DescriptionBase>> pageAuditEvents(DescriptionBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultDescriptionService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
     }
 
     /**
@@ -101,7 +104,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<Annotation> getAnnotations(DescriptionBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -110,7 +113,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public void clear() {
-        defaultDescriptionService.clear();
+        defaultService.clear();
     }
 
     /**
@@ -119,8 +122,8 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
      */
     @Override
-    public void lock(DescriptionBase t, LockMode lockMode) {
-        defaultDescriptionService.lock(t, lockMode);
+    public void lock(DescriptionBase t, LockOptions lockOptions) {
+        defaultService.lock(t, lockOptions);
     }
 
     /**
@@ -130,8 +133,8 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
      */
     @Override
-    public void refresh(DescriptionBase t, LockMode lockMode, List<String> propertyPaths) {
-        defaultDescriptionService.refresh(t, lockMode, propertyPaths);
+    public void refresh(DescriptionBase t, LockOptions lockOptions, List<String> propertyPaths) {
+        defaultService.refresh(t, lockOptions, propertyPaths);
     }
 
     /**
@@ -140,7 +143,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public void updateTitleCache() {
-        defaultDescriptionService.updateTitleCache();
+        defaultService.updateTitleCache();
     }
 
     /**
@@ -150,7 +153,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public AuditEventRecord<DescriptionBase> getNextAuditEvent(DescriptionBase t) {
-        return defaultDescriptionService.getNextAuditEvent(t);
+        return defaultService.getNextAuditEvent(t);
     }
 
     /**
@@ -161,7 +164,7 @@ public class TransientDescriptionService implements IDescriptionService {
     @Deprecated
     @Override
     public TermVocabulary<Feature> getDefaultFeatureVocabulary() {
-        return defaultDescriptionService.getDefaultFeatureVocabulary();
+        return defaultService.getDefaultFeatureVocabulary();
     }
 
     /**
@@ -176,7 +179,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<Marker> getMarkers(DescriptionBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -188,7 +191,7 @@ public class TransientDescriptionService implements IDescriptionService {
     @Deprecated
     @Override
     public TermVocabulary<Feature> getFeatureVocabulary(UUID uuid) {
-        return defaultDescriptionService.getFeatureVocabulary(uuid);
+        return defaultService.getFeatureVocabulary(uuid);
     }
 
     /**
@@ -200,7 +203,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public void updateTitleCache(Class<? extends DescriptionBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<DescriptionBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultDescriptionService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
     }
 
     /**
@@ -210,7 +213,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public AuditEventRecord<DescriptionBase> getPreviousAuditEvent(DescriptionBase t) {
-        return defaultDescriptionService.getPreviousAuditEvent(t);
+        return defaultService.getPreviousAuditEvent(t);
     }
 
     /**
@@ -220,7 +223,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionElementBase getDescriptionElementByUuid(UUID uuid) {
-        return defaultDescriptionService.getDescriptionElementByUuid(uuid);
+        return defaultService.getDescriptionElementByUuid(uuid);
     }
 
     /**
@@ -230,7 +233,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public int count(Class<? extends DescriptionBase> clazz) {
-        return defaultDescriptionService.count(clazz);
+        return defaultService.count(clazz);
     }
 
     /**
@@ -241,7 +244,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionElementBase loadDescriptionElement(UUID uuid, List<String> propertyPaths) {
-        return defaultDescriptionService.loadDescriptionElement(uuid, propertyPaths);
+        return defaultService.loadDescriptionElement(uuid, propertyPaths);
     }
 
     /**
@@ -258,7 +261,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<AuditEventRecord<DescriptionBase>> pageAuditEvents(Class<? extends DescriptionBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultDescriptionService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
     }
 
     /**
@@ -268,7 +271,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionBase find(LSID lsid) {
-        return defaultDescriptionService.find(lsid);
+        return defaultService.find(lsid);
     }
 
     /**
@@ -277,8 +280,8 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(DescriptionBase persistentObject) throws ReferencedObjectUndeletableException{
-        return defaultDescriptionService.delete(persistentObject);
+    public DeleteResult delete(DescriptionBase persistentObject) {
+        return defaultService.delete(persistentObject);
     }
 
     /**
@@ -292,7 +295,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<Object[]> groupMarkers(Class<? extends DescriptionBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -302,7 +305,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public boolean exists(UUID uuid) {
-        return defaultDescriptionService.exists(uuid);
+        return defaultService.exists(uuid);
     }
 
     /**
@@ -313,7 +316,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionBase replace(DescriptionBase x, DescriptionBase y) {
-        return defaultDescriptionService.replace(x, y);
+        return defaultService.replace(x, y);
     }
 
     /**
@@ -333,7 +336,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<DescriptionBase> find(Set<UUID> uuidSet) {
-        return defaultDescriptionService.find(uuidSet);
+        return defaultService.find(uuidSet);
     }
 
     /**
@@ -356,7 +359,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<IdentifiableSource> getSources(DescriptionBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.getSources(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -366,7 +369,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public UUID deleteDescriptionElement(DescriptionElementBase descriptionElement) {
-        return defaultDescriptionService.deleteDescriptionElement(descriptionElement);
+        return defaultService.deleteDescriptionElement(descriptionElement);
     }
 
     /**
@@ -376,7 +379,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionBase find(UUID uuid) {
-        return defaultDescriptionService.find(uuid);
+        return defaultService.find(uuid);
     }
 
     /**
@@ -393,7 +396,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<DescriptionBase> page(Class<? extends DescriptionBase> type, Boolean hasMedia, Boolean hasText, Set<Feature> feature, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.page(type, hasMedia, hasText, feature, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.page(type, hasMedia, hasText, feature, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -403,7 +406,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionBase find(int id) {
-        return defaultDescriptionService.find(id);
+        return defaultService.find(id);
     }
 
     /**
@@ -416,7 +419,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<Rights> getRights(DescriptionBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.getRights(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -427,7 +430,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public int countMarkers(Class<? extends DescriptionBase> clazz, Boolean technical) {
-        return defaultDescriptionService.countMarkers(clazz, technical);
+        return defaultService.countMarkers(clazz, technical);
     }
 
     /**
@@ -437,7 +440,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<DescriptionBase> findById(Set<Integer> idSet) {
-        return defaultDescriptionService.findById(idSet);
+        return defaultService.findById(idSet);
     }
 
     /**
@@ -449,7 +452,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultDescriptionService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
     }
 
     /**
@@ -458,7 +461,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Session getSession() {
-        return defaultDescriptionService.getSession();
+        return defaultService.getSession();
     }
 
     /**
@@ -467,7 +470,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<UuidAndTitleCache<DescriptionBase>> getUuidAndTitleCache() {
-        return defaultDescriptionService.getUuidAndTitleCache();
+        return defaultService.getUuidAndTitleCache();
     }
 
     /**
@@ -481,7 +484,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<Object[]> group(Class<? extends DescriptionBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultDescriptionService.group(clazz, limit, start, groups, propertyPaths);
+        return defaultService.group(clazz, limit, start, groups, propertyPaths);
     }
 
     /**
@@ -494,7 +497,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public int count(Class<? extends DescriptionBase> type, Boolean hasImages, Boolean hasText, Set<Feature> feature) {
-        return defaultDescriptionService.count(type, hasImages, hasText, feature);
+        return defaultService.count(type, hasImages, hasText, feature);
     }
 
     /**
@@ -511,7 +514,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<DescriptionBase> findByTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -524,8 +527,8 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public List<DescriptionBase> list(Class<? extends DescriptionBase> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.list(type, limit, start, orderHints, propertyPaths);
+    public <S extends DescriptionBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.list(type, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -542,7 +545,7 @@ public class TransientDescriptionService implements IDescriptionService {
     @Deprecated
     @Override
     public Pager<DescriptionElementBase> getDescriptionElements(DescriptionBase description, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.getDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
+        return defaultService.getDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -552,7 +555,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<DescriptionBase> findByTitle(IIdentifiableEntityServiceConfigurator<DescriptionBase> configurator) {
-        return defaultDescriptionService.findByTitle(configurator);
+        return defaultService.findByTitle(configurator);
     }
 
     /**
@@ -565,7 +568,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Integer countByTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultDescriptionService.countByTitle(clazz, queryString, matchmode, criteria);
+        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
     }
 
     /**
@@ -575,7 +578,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionBase load(UUID uuid) {
-        return defaultDescriptionService.load(uuid);
+        return defaultService.load(uuid);
     }
 
     /**
@@ -586,7 +589,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultDescriptionService.load(uuid, propertyPaths);
+        return defaultService.load(uuid, propertyPaths);
     }
 
     /**
@@ -596,7 +599,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Integer countByTitle(IIdentifiableEntityServiceConfigurator<DescriptionBase> configurator) {
-        return defaultDescriptionService.countByTitle(configurator);
+        return defaultService.countByTitle(configurator);
     }
 
     /**
@@ -606,7 +609,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DescriptionBase merge(DescriptionBase transientObject) {
-        return defaultDescriptionService.merge(transientObject);
+        return defaultService.merge(transientObject);
     }
 
     /**
@@ -622,7 +625,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<DescriptionElementBase> pageDescriptionElements(DescriptionBase description, Class<? extends DescriptionBase> descriptionType, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.pageDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
+        return defaultService.pageDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -639,7 +642,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<DescriptionBase> listByTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -652,8 +655,8 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<DescriptionBase> page(Class<? extends DescriptionBase> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+    public <S extends DescriptionBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -663,7 +666,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public UUID refresh(DescriptionBase persistentObject) {
-        return defaultDescriptionService.refresh(persistentObject);
+        return defaultService.refresh(persistentObject);
     }
 
     /**
@@ -680,7 +683,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<DescriptionBase> listByReferenceTitle(Class<? extends DescriptionBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -697,7 +700,7 @@ public class TransientDescriptionService implements IDescriptionService {
     @Deprecated
     @Override
     public List<DescriptionElementBase> listDescriptionElements(DescriptionBase description, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.listDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
+        return defaultService.listDescriptionElements(description, features, type, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -709,7 +712,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<DescriptionBase> rows(String tableName, int limit, int start) {
-        return defaultDescriptionService.rows(tableName, limit, start);
+        return defaultService.rows(tableName, limit, start);
     }
 
     /**
@@ -754,7 +757,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<DescriptionBase> search(Class<? extends DescriptionBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -774,7 +777,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public UUID update(DescriptionBase transientObject) {
-        return defaultDescriptionService.update(transientObject);
+        return defaultService.update(transientObject);
     }
 
     /**
@@ -790,7 +793,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<DescriptionElementBase> listDescriptionElements(DescriptionBase description, Class<? extends DescriptionBase> descriptionType, Set<Feature> features, Class<? extends DescriptionElementBase> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.listDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
+        return defaultService.listDescriptionElements(description, descriptionType, features, type, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -805,7 +808,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<DescriptionBase> list(DescriptionBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -817,7 +820,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public int deduplicate(Class<? extends DescriptionBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultDescriptionService.deduplicate(clazz, matchStrategy, mergeStrategy);
+        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
     }
 
     /**
@@ -832,7 +835,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<Annotation> getDescriptionElementAnnotations(DescriptionElementBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.getDescriptionElementAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getDescriptionElementAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -847,7 +850,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<DescriptionBase> findTitleCache(Class<? extends DescriptionBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultDescriptionService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
     }
 
     /**
@@ -862,7 +865,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<TaxonDescription> pageTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.pageTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
+        return defaultService.pageTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -878,7 +881,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<TaxonDescription> pageTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.pageTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
+        return defaultService.pageTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -893,7 +896,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.listTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
+        return defaultService.listTaxonDescriptions(taxon, scopes, geographicalScope, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -909,7 +912,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScope, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.listTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
+        return defaultService.listTaxonDescriptions(taxon, scopes, geographicalScope, markerTypes, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -924,7 +927,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public List<Media> listTaxonDescriptionMedia(UUID taxonUuid, boolean limitToGalleries, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.listTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes, pageSize, pageNumber, propertyPaths);
+        return defaultService.listTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -936,7 +939,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public int countTaxonDescriptionMedia(UUID taxonUuid, boolean limitToGalleries, Set<MarkerType> markerTypes) {
-        return defaultDescriptionService.countTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes);
+        return defaultService.countTaxonDescriptionMedia(taxonUuid, limitToGalleries, markerTypes);
     }
 
     /**
@@ -949,7 +952,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<TaxonNameDescription> getTaxonNameDescriptions(TaxonNameBase name, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.getTaxonNameDescriptions(name, pageSize, pageNumber, propertyPaths);
+        return defaultService.getTaxonNameDescriptions(name, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -963,8 +966,8 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IDescriptionService#searchDescriptionByDistribution(java.util.Set, eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.searchDescriptionByDistribution(namedAreas, presence, pageSize, pageNumber, orderHints, propertyPaths);
+    public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTerm presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.searchDescriptionByDistribution(namedAreas, presence, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -979,7 +982,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<DescriptionElementBase> searchElements(Class<? extends DescriptionElementBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultDescriptionService.searchElements(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.searchElements(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -992,7 +995,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public Pager<Media> getMedia(DescriptionElementBase descriptionElement, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.getMedia(descriptionElement, pageSize, pageNumber, propertyPaths);
+        return defaultService.getMedia(descriptionElement, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -1009,7 +1012,7 @@ public class TransientDescriptionService implements IDescriptionService {
     @Deprecated
     @Override
     public <T extends DescriptionElementBase> List<T> getDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.getDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
+        return defaultService.getDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -1024,7 +1027,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public <T extends DescriptionElementBase> List<T> listDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.listDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
+        return defaultService.listDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -1039,7 +1042,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public <T extends DescriptionElementBase> Pager<T> pageDescriptionElementsForTaxon(Taxon taxon, Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.pageDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
+        return defaultService.pageDescriptionElementsForTaxon(taxon, features, type, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -1052,7 +1055,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public String generateNaturalLanguageDescription(FeatureTree featureTree, TaxonDescription description, List<Language> preferredLanguages, String separator) {
-        return defaultDescriptionService.generateNaturalLanguageDescription(featureTree, description, preferredLanguages, separator);
+        return defaultService.generateNaturalLanguageDescription(featureTree, description, preferredLanguages, separator);
     }
 
     /**
@@ -1064,7 +1067,7 @@ public class TransientDescriptionService implements IDescriptionService {
     @Deprecated
     @Override
     public boolean hasStructuredData(DescriptionBase<?> description) {
-        return defaultDescriptionService.hasStructuredData(description);
+        return defaultService.hasStructuredData(description);
     }
 
     /**
@@ -1075,15 +1078,7 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public void moveDescriptionElementsToDescription(Collection<DescriptionElementBase> descriptionElements, DescriptionBase targetDescription, boolean isPaste) {
-        defaultDescriptionService.moveDescriptionElementsToDescription(descriptionElements, targetDescription, isPaste);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageNamedAreasInUse(java.lang.Integer, java.lang.Integer, java.util.List)
-     */
-    @Override
-    public Pager<NamedArea> pageNamedAreasInUse(Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultDescriptionService.pageNamedAreasInUse(pageSize, pageNumber, propertyPaths);
+        defaultService.moveDescriptionElementsToDescription(descriptionElements, targetDescription, isPaste);
     }
 
     /* (non-Javadoc)
@@ -1091,7 +1086,36 @@ public class TransientDescriptionService implements IDescriptionService {
      */
     @Override
     public DistributionTree getOrderedDistributions(Set<TaxonDescription> taxonDescriptions, boolean subAreaPreference, boolean statusOrderPreference, Set<MarkerType> hideMarkedAreas, Set<NamedAreaLevel> omitLevels, List<String> propertyPaths) {
-        return defaultDescriptionService.getOrderedDistributions(taxonDescriptions, subAreaPreference, statusOrderPreference, hideMarkedAreas, omitLevels, propertyPaths);
-    }
-
+        return defaultService.getOrderedDistributions(taxonDescriptions, subAreaPreference, statusOrderPreference, hideMarkedAreas, omitLevels, propertyPaths);
+    }
+
+       @Override
+       public DeleteResult isDeletable(DescriptionBase object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public DescriptionBase findWithoutFlush(UUID uuid) {
+               return defaultService.findWithoutFlush(uuid);
+       }
+
+       @Override
+       public <S extends DescriptionBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+               return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
+       }
+
+       @Override
+       public UUID deleteDescription(DescriptionBase description) {
+               return defaultService.deleteDescription(description);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageNamedAreasInUse(boolean, java.lang.Integer, java.lang.Integer)
+        */
+       @Override
+       public Pager<TermDto> pageNamedAreasInUse(boolean includeAllParents, Integer pageSize, Integer pageNumber) {
+           return defaultService.pageNamedAreasInUse(includeAllParents, pageSize, pageNumber);
+       }
 }