Update transient service to be compatible with cdmlib service
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / transientServices / TransientTaxonService.java
index 96b5f6d45bc2f92017aff6dcc74cd937d2dd9652..407234ba7fa2c07b1571cc83d8bc912576efefd7 100644 (file)
@@ -1,12 +1,12 @@
 // $Id$
 /**
-* Copyright (C) 2013 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
+ * Copyright (C) 2013 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.dataimport.transientServices;
 
 import java.io.IOException;
@@ -19,13 +19,15 @@ import java.util.UUID;
 
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.queryParser.ParseException;
-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.ITaxonService;
 import eu.etaxonomy.cdm.api.service.TaxaAndNamesSearchMode;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -33,6 +35,7 @@ import eu.etaxonomy.cdm.api.service.config.IncludedTaxonConfiguration;
 import eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator;
 import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
 import eu.etaxonomy.cdm.api.service.dto.IncludedTaxaDTO;
 import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
 import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
@@ -42,6 +45,7 @@ import eu.etaxonomy.cdm.api.service.search.SearchResult;
 import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
 import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
 import eu.etaxonomy.cdm.model.common.Annotation;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.ISourceable;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
@@ -52,10 +56,9 @@ import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
 import eu.etaxonomy.cdm.model.common.RelationshipBase;
 import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
@@ -70,11 +73,13 @@ import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 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.UuidAndTitleCache;
 import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;
 import eu.etaxonomy.cdm.persistence.query.Grouping;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
@@ -90,13 +95,13 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
  */
 public class TransientTaxonService implements ITaxonService {
 
-    private final ITaxonService defaultTaxonService;
+    private final ITaxonService defaultService;
 
     /**
      * @param defaultTaxonService
      */
     public TransientTaxonService(ITaxonService defaultTaxonService) {
-        this.defaultTaxonService = defaultTaxonService;
+        this.defaultService = defaultTaxonService;
     }
 
     /**
@@ -110,7 +115,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<AuditEventRecord<TaxonBase>> pageAuditEvents(TaxonBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultTaxonService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
     }
 
     /**
@@ -125,7 +130,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<Annotation> getAnnotations(TaxonBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -134,7 +139,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public void clear() {
-        defaultTaxonService.clear();
+        defaultService.clear();
     }
 
     /**
@@ -143,8 +148,8 @@ public class TransientTaxonService implements ITaxonService {
      * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
      */
     @Override
-    public void lock(TaxonBase t, LockMode lockMode) {
-        defaultTaxonService.lock(t, lockMode);
+    public void lock(TaxonBase t, LockOptions lockOptions) {
+        defaultService.lock(t, lockOptions);
     }
 
     /**
@@ -154,8 +159,8 @@ public class TransientTaxonService implements ITaxonService {
      * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
      */
     @Override
-    public void refresh(TaxonBase t, LockMode lockMode, List<String> propertyPaths) {
-        defaultTaxonService.refresh(t, lockMode, propertyPaths);
+    public void refresh(TaxonBase t, LockOptions lockOptions, List<String> propertyPaths) {
+        defaultService.refresh(t, lockOptions, propertyPaths);
     }
 
     /**
@@ -164,7 +169,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public void updateTitleCache() {
-        defaultTaxonService.updateTitleCache();
+        defaultService.updateTitleCache();
     }
 
     /**
@@ -174,7 +179,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public AuditEventRecord<TaxonBase> getNextAuditEvent(TaxonBase t) {
-        return defaultTaxonService.getNextAuditEvent(t);
+        return defaultService.getNextAuditEvent(t);
     }
 
     /**
@@ -189,7 +194,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<Marker> getMarkers(TaxonBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -201,7 +206,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public void updateTitleCache(Class<? extends TaxonBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<TaxonBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultTaxonService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
     }
 
     /**
@@ -211,7 +216,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public AuditEventRecord<TaxonBase> getPreviousAuditEvent(TaxonBase t) {
-        return defaultTaxonService.getPreviousAuditEvent(t);
+        return defaultService.getPreviousAuditEvent(t);
     }
 
     /**
@@ -221,7 +226,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public int count(Class<? extends TaxonBase> clazz) {
-        return defaultTaxonService.count(clazz);
+        return defaultService.count(clazz);
     }
 
     /**
@@ -238,7 +243,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<AuditEventRecord<TaxonBase>> pageAuditEvents(Class<? extends TaxonBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultTaxonService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
     }
 
     /**
@@ -248,7 +253,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase find(LSID lsid) {
-        return defaultTaxonService.find(lsid);
+        return defaultService.find(lsid);
     }
 
     /**
@@ -257,8 +262,8 @@ public class TransientTaxonService implements ITaxonService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public String delete(TaxonBase persistentObject) {
-        return defaultTaxonService.delete(persistentObject);
+    public DeleteResult delete(TaxonBase persistentObject) {
+        return defaultService.delete(persistentObject);
     }
 
     /**
@@ -272,7 +277,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<Object[]> groupMarkers(Class<? extends TaxonBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTaxonService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -282,7 +287,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public boolean exists(UUID uuid) {
-        return defaultTaxonService.exists(uuid);
+        return defaultService.exists(uuid);
     }
 
 
@@ -294,7 +299,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase replace(TaxonBase x, TaxonBase y) {
-        return defaultTaxonService.replace(x, y);
+        return defaultService.replace(x, y);
     }
 
     /**
@@ -304,7 +309,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> find(Set<UUID> uuidSet) {
-        return defaultTaxonService.find(uuidSet);
+        return defaultService.find(uuidSet);
     }
 
     /**
@@ -317,7 +322,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<IdentifiableSource> getSources(TaxonBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTaxonService.getSources(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -331,7 +336,7 @@ public class TransientTaxonService implements ITaxonService {
     @Deprecated
     @Override
     public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren) {
-        return defaultTaxonService.getRootTaxa(sec, cdmFetch, onlyWithChildren);
+        return defaultService.getRootTaxa(sec, cdmFetch, onlyWithChildren);
     }
 
     /**
@@ -341,7 +346,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase find(UUID uuid) {
-        return defaultTaxonService.find(uuid);
+        return defaultService.find(uuid);
     }
 
     /**
@@ -357,7 +362,7 @@ public class TransientTaxonService implements ITaxonService {
     @Deprecated
     @Override
     public List<Taxon> getRootTaxa(Rank rank, Reference sec, boolean onlyWithChildren, boolean withMisapplications, List<String> propertyPaths) {
-        return defaultTaxonService.getRootTaxa(rank, sec, onlyWithChildren, withMisapplications, propertyPaths);
+        return defaultService.getRootTaxa(rank, sec, onlyWithChildren, withMisapplications, propertyPaths);
     }
 
     /**
@@ -367,7 +372,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase find(int id) {
-        return defaultTaxonService.find(id);
+        return defaultService.find(id);
     }
 
     /**
@@ -380,7 +385,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<Rights> getRights(TaxonBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTaxonService.getRights(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -391,7 +396,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public int countMarkers(Class<? extends TaxonBase> clazz, Boolean technical) {
-        return defaultTaxonService.countMarkers(clazz, technical);
+        return defaultService.countMarkers(clazz, technical);
     }
 
     /**
@@ -401,7 +406,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> findById(Set<Integer> idSet) {
-        return defaultTaxonService.findById(idSet);
+        return defaultService.findById(idSet);
     }
 
     /**
@@ -413,7 +418,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultTaxonService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
     }
 
     /**
@@ -422,7 +427,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Session getSession() {
-        return defaultTaxonService.getSession();
+        return defaultService.getSession();
     }
 
     /**
@@ -431,7 +436,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCache() {
-        return defaultTaxonService.getUuidAndTitleCache();
+        return defaultService.getUuidAndTitleCache();
     }
 
     /**
@@ -445,7 +450,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<Object[]> group(Class<? extends TaxonBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultTaxonService.group(clazz, limit, start, groups, propertyPaths);
+        return defaultService.group(clazz, limit, start, groups, propertyPaths);
     }
 
     /**
@@ -456,7 +461,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<RelationshipBase> getAllRelationships(int limit, int start) {
-        return defaultTaxonService.getAllRelationships(limit, start);
+        return defaultService.getAllRelationships(limit, start);
     }
 
     /**
@@ -473,7 +478,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<TaxonBase> findByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -484,7 +489,7 @@ public class TransientTaxonService implements ITaxonService {
     @Deprecated
     @Override
     public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary() {
-        return defaultTaxonService.getTaxonRelationshipTypeVocabulary();
+        return defaultService.getTaxonRelationshipTypeVocabulary();
     }
 
     /**
@@ -495,17 +500,17 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> searchTaxaByName(String name, Reference sec) {
-        return defaultTaxonService.searchTaxaByName(name, sec);
+        return defaultService.searchTaxaByName(name, sec);
     }
 
+
     /**
-     * @param synonym
-     * @param acceptedTaxon
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#swapSynonymAndAcceptedTaxon(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon)
+     * {@inheritDoc}
      */
     @Override
-    public void swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon) {
-        defaultTaxonService.swapSynonymAndAcceptedTaxon(synonym, acceptedTaxon);
+    public UpdateResult swapSynonymAndAcceptedTaxon(Synonym arg0, Taxon arg1) {
+        return defaultService.swapSynonymAndAcceptedTaxon(arg0, arg1);
+
     }
 
     /**
@@ -519,7 +524,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public <S extends TaxonBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.list(type, limit, start, orderHints, propertyPaths);
+        return defaultService.list(type, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -529,7 +534,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<TaxonBase> findByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
-        return defaultTaxonService.findByTitle(configurator);
+        return defaultService.findByTitle(configurator);
     }
 
     /**
@@ -545,7 +550,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Taxon changeSynonymToAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean deleteSynonym, boolean copyCitationInfo, Reference citation, String microCitation) throws HomotypicalGroupChangeException {
-        return defaultTaxonService.changeSynonymToAcceptedTaxon(synonym, acceptedTaxon, deleteSynonym, copyCitationInfo, citation, microCitation);
+        return defaultService.changeSynonymToAcceptedTaxon(synonym, acceptedTaxon, deleteSynonym, copyCitationInfo, citation, microCitation);
     }
 
     /**
@@ -558,7 +563,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Integer countByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultTaxonService.countByTitle(clazz, queryString, matchmode, criteria);
+        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
     }
 
     /**
@@ -568,7 +573,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase load(UUID uuid) {
-        return defaultTaxonService.load(uuid);
+        return defaultService.load(uuid);
     }
 
     /**
@@ -579,7 +584,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultTaxonService.load(uuid, propertyPaths);
+        return defaultService.load(uuid, propertyPaths);
     }
 
     /**
@@ -589,7 +594,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Integer countByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
-        return defaultTaxonService.countByTitle(configurator);
+        return defaultService.countByTitle(configurator);
     }
 
     /**
@@ -599,7 +604,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase merge(TaxonBase transientObject) {
-        return defaultTaxonService.merge(transientObject);
+        return defaultService.merge(transientObject);
     }
 
     /**
@@ -616,7 +621,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> listByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -630,7 +635,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public  <S extends TaxonBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -640,7 +645,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public UUID refresh(TaxonBase persistentObject) {
-        return defaultTaxonService.refresh(persistentObject);
+        return defaultService.refresh(persistentObject);
     }
 
     /**
@@ -654,7 +659,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Taxon changeSynonymToRelatedTaxon(Synonym synonym, Taxon toTaxon, TaxonRelationshipType taxonRelationshipType, Reference reference, String microReference) {
-        return defaultTaxonService.changeSynonymToRelatedTaxon(synonym, toTaxon, taxonRelationshipType, reference, microReference);
+        return defaultService.changeSynonymToRelatedTaxon(synonym, toTaxon, taxonRelationshipType, reference, microReference);
     }
 
     /**
@@ -671,7 +676,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> listByReferenceTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -683,7 +688,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> rows(String tableName, int limit, int start) {
-        return defaultTaxonService.rows(tableName, limit, start);
+        return defaultService.rows(tableName, limit, start);
     }
 
     /**
@@ -704,7 +709,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public long deleteSynonymRelationships(Synonym syn, Taxon taxon) {
-        return defaultTaxonService.deleteSynonymRelationships(syn, taxon);
+        return defaultService.deleteSynonymRelationships(syn, taxon);
     }
 
     /**
@@ -713,7 +718,7 @@ public class TransientTaxonService implements ITaxonService {
      * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID save(TaxonBase newInstance) {
+    public TaxonBase save(TaxonBase newInstance) {
         return null;
     }
 
@@ -737,7 +742,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public void changeHomotypicalGroupOfSynonym(Synonym synonym, HomotypicalGroup newHomotypicalGroup, Taxon targetTaxon, boolean removeFromOtherTaxa, boolean setBasionymRelationIfApplicable) {
-        defaultTaxonService.changeHomotypicalGroupOfSynonym(synonym, newHomotypicalGroup, targetTaxon, removeFromOtherTaxa, setBasionymRelationIfApplicable);
+        defaultService.changeHomotypicalGroupOfSynonym(synonym, newHomotypicalGroup, targetTaxon, removeFromOtherTaxa, setBasionymRelationIfApplicable);
     }
 
     /**
@@ -757,7 +762,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public UUID update(TaxonBase transientObject) {
-        return defaultTaxonService.update(transientObject);
+        return defaultService.update(transientObject);
     }
 
     /**
@@ -772,7 +777,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> list(TaxonBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -789,7 +794,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public SynonymRelationship moveSynonymToAnotherTaxon(SynonymRelationship oldSynonymRelation, Taxon newTaxon, boolean moveHomotypicGroup, SynonymRelationshipType newSynonymRelationshipType, Reference newReference, String newReferenceDetail, boolean keepReference) throws HomotypicalGroupChangeException {
-        return defaultTaxonService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxon, moveHomotypicGroup, newSynonymRelationshipType, newReference, newReferenceDetail, keepReference);
+        return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxon, moveHomotypicGroup, newSynonymRelationshipType, newReference, newReferenceDetail, keepReference);
     }
 
     /**
@@ -801,7 +806,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public int deduplicate(Class<? extends TaxonBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultTaxonService.deduplicate(clazz, matchStrategy, mergeStrategy);
+        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
     }
 
     /**
@@ -816,7 +821,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<TaxonBase> findTitleCache(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultTaxonService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
     }
 
     /**
@@ -831,7 +836,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonRelationship> listToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.listToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -846,7 +851,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<TaxonRelationship> pageToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.pageToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.pageToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -861,7 +866,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonRelationship> listFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.listFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -876,7 +881,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<TaxonRelationship> pageFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.pageFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.pageFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -891,7 +896,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Set<Taxon> listRelatedTaxa(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Integer maxDepth, Integer limit, Integer start, List<String> propertyPaths) {
-        return defaultTaxonService.listRelatedTaxa(taxon, includeRelationships, maxDepth, limit, start, propertyPaths);
+        return defaultService.listRelatedTaxa(taxon, includeRelationships, maxDepth, limit, start, propertyPaths);
     }
 
     /**
@@ -904,7 +909,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<Classification> listClassifications(TaxonBase taxonBase, Integer limit, Integer start, List<String> propertyPaths) {
-        return defaultTaxonService.listClassifications(taxonBase, limit, start, propertyPaths);
+        return defaultService.listClassifications(taxonBase, limit, start, propertyPaths);
     }
 
     /**
@@ -919,7 +924,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<SynonymRelationship> getSynonyms(Synonym synonym, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.getSynonyms(synonym, type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getSynonyms(synonym, type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -934,7 +939,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<SynonymRelationship> getSynonyms(Taxon taxon, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.getSynonyms(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getSynonyms(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -945,7 +950,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<Synonym> getHomotypicSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
-        return defaultTaxonService.getHomotypicSynonymsByHomotypicGroup(taxon, propertyPaths);
+        return defaultService.getHomotypicSynonymsByHomotypicGroup(taxon, propertyPaths);
     }
 
     /**
@@ -956,7 +961,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<List<Synonym>> getHeterotypicSynonymyGroups(Taxon taxon, List<String> propertyPaths) {
-        return defaultTaxonService.getHeterotypicSynonymyGroups(taxon, propertyPaths);
+        return defaultService.getHeterotypicSynonymyGroups(taxon, propertyPaths);
     }
 
     /**
@@ -971,7 +976,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<TaxonBase> search(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -988,7 +993,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<TaxonBase> findTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
-        return defaultTaxonService.findTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
+        return defaultService.findTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
     }
 
     /**
@@ -1005,7 +1010,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> listTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
-        return defaultTaxonService.listTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
+        return defaultService.listTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
     }
 
     /**
@@ -1015,7 +1020,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<IdentifiableEntity> findTaxaAndNames(IFindTaxaAndNamesConfigurator configurator) {
-        return defaultTaxonService.findTaxaAndNames(configurator);
+        return defaultService.findTaxaAndNames(configurator);
     }
 
     /**
@@ -1038,7 +1043,7 @@ public class TransientTaxonService implements ITaxonService {
     @Deprecated
     @Override
     public Pager<SearchResult<TaxonBase>> findByEverythingFullText(String queryString, Classification classification, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
-        return defaultTaxonService.findByEverythingFullText(queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.findByEverythingFullText(queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -1059,49 +1064,32 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<SearchResult<TaxonBase>> findByFullText(Class<? extends TaxonBase> clazz, String queryString, Classification classification, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
-        return defaultTaxonService.findByFullText(clazz, queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.findByFullText(clazz, queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
-    /**
-     * @param areaFilter
-     * @param statusFilter
-     * @param classification
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws IOException
-     * @throws ParseException
+
+    /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByDistribution(java.util.List, java.util.List, eu.etaxonomy.cdm.model.taxon.Classification, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<SearchResult<TaxonBase>> findByDistribution(List<NamedArea> areaFilter, List<PresenceAbsenceTermBase<?>> statusFilter, Classification classification, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws IOException, ParseException {
-        return defaultTaxonService.findByDistribution(areaFilter, statusFilter, classification, pageSize, pageNumber, orderHints, propertyPaths);
+    public Pager<SearchResult<TaxonBase>> findByDistribution(List<NamedArea> areaFilter,
+            List<PresenceAbsenceTerm> statusFilter, Classification classification, Integer pageSize,
+            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws IOException,
+            ParseException {
+        return defaultService.findByDistribution(areaFilter, statusFilter, classification, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
-    /**
-     * @param searchModes
-     * @param queryString
-     * @param classification
-     * @param namedAreas
-     * @param distributionStatus
-     * @param languages
-     * @param highlightFragments
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @throws LuceneMultiSearchException
+
+    /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNamesByFullText(java.util.EnumSet, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.Set, java.util.Set, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<SearchResult<TaxonBase>> findTaxaAndNamesByFullText(EnumSet<TaxaAndNamesSearchMode> searchModes, String queryString, Classification classification, Set<NamedArea> namedAreas, Set<PresenceAbsenceTermBase<?>> distributionStatus, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
-        return defaultTaxonService.findTaxaAndNamesByFullText(searchModes, queryString, classification, namedAreas, distributionStatus, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+    public Pager<SearchResult<TaxonBase>> findTaxaAndNamesByFullText(EnumSet<TaxaAndNamesSearchMode> searchModes,
+            String queryString, Classification classification, Set<NamedArea> namedAreas,
+            Set<PresenceAbsenceTerm> distributionStatus, List<Language> languages, boolean highlightFragments,
+            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths)
+                    throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
+        return defaultService.findTaxaAndNamesByFullText(searchModes, queryString, classification, namedAreas, distributionStatus, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -1123,7 +1111,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Pager<SearchResult<TaxonBase>> findByDescriptionElementFullText(Class<? extends DescriptionElementBase> clazz, String queryString, Classification classification, List<Feature> features, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
-        return defaultTaxonService.findByDescriptionElementFullText(clazz, queryString, classification, features, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.findByDescriptionElementFullText(clazz, queryString, classification, features, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -1139,7 +1127,7 @@ public class TransientTaxonService implements ITaxonService {
     @Deprecated
     @Override
     public List<MediaRepresentation> getAllMedia(Taxon taxon, int size, int height, int widthOrDuration, String[] mimeTypes) {
-        return defaultTaxonService.getAllMedia(taxon, size, height, widthOrDuration, mimeTypes);
+        return defaultService.getAllMedia(taxon, size, height, widthOrDuration, mimeTypes);
     }
 
     /**
@@ -1154,7 +1142,7 @@ public class TransientTaxonService implements ITaxonService {
     @Deprecated
     @Override
     public List<Media> listTaxonDescriptionMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, boolean limitToGalleries, List<String> propertyPath) {
-        return defaultTaxonService.listTaxonDescriptionMedia(taxon, includeRelationships, limitToGalleries, propertyPath);
+        return defaultService.listTaxonDescriptionMedia(taxon, includeRelationships, limitToGalleries, propertyPath);
     }
 
     /**
@@ -1170,7 +1158,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<Media> listMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Boolean limitToGalleries, Boolean includeTaxonDescriptions, Boolean includeOccurrences, Boolean includeTaxonNameDescriptions, List<String> propertyPath) {
-        return defaultTaxonService.listMedia(taxon, includeRelationships, limitToGalleries, includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions, propertyPath);
+        return defaultService.listMedia(taxon, includeRelationships, limitToGalleries, includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions, propertyPath);
     }
 
     /**
@@ -1180,7 +1168,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonBase> findTaxaByID(Set<Integer> listOfIDs) {
-        return defaultTaxonService.findTaxaByID(listOfIDs);
+        return defaultService.findTaxaByID(listOfIDs);
     }
 
     /**
@@ -1191,7 +1179,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public TaxonBase findTaxonByUuid(UUID uuid, List<String> propertyPaths) {
-        return defaultTaxonService.findTaxonByUuid(uuid, propertyPaths);
+        return defaultService.findTaxonByUuid(uuid, propertyPaths);
     }
 
     /**
@@ -1200,7 +1188,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public int countAllRelationships() {
-        return defaultTaxonService.countAllRelationships();
+        return defaultService.countAllRelationships();
     }
 
     /**
@@ -1210,7 +1198,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonNameBase> findIdenticalTaxonNames(List<String> propertyPath) {
-        return defaultTaxonService.findIdenticalTaxonNames(propertyPath);
+        return defaultService.findIdenticalTaxonNames(propertyPath);
     }
 
     /**
@@ -1220,7 +1208,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<TaxonNameBase> findIdenticalTaxonNameIds(List<String> propertyPath) {
-        return defaultTaxonService.findIdenticalTaxonNameIds(propertyPath);
+        return defaultService.findIdenticalTaxonNameIds(propertyPath);
     }
 
     /**
@@ -1230,7 +1218,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public String getPhylumName(TaxonNameBase name) {
-        return defaultTaxonService.getPhylumName(name);
+        return defaultService.getPhylumName(name);
     }
 
     /**
@@ -1240,7 +1228,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public long deleteSynonymRelationships(Synonym syn) {
-        return defaultTaxonService.deleteSynonymRelationships(syn);
+        return defaultService.deleteSynonymRelationships(syn);
     }
 
     /**
@@ -1256,7 +1244,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<SynonymRelationship> listSynonymRelationships(TaxonBase taxonBase, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths, Direction direction) {
-        return defaultTaxonService.listSynonymRelationships(taxonBase, type, pageSize, pageNumber, orderHints, propertyPaths, direction);
+        return defaultService.listSynonymRelationships(taxonBase, type, pageSize, pageNumber, orderHints, propertyPaths, direction);
     }
 
     /**
@@ -1266,7 +1254,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Taxon findBestMatchingTaxon(String taxonName) {
-        return defaultTaxonService.findBestMatchingTaxon(taxonName);
+        return defaultService.findBestMatchingTaxon(taxonName);
     }
 
     /**
@@ -1276,7 +1264,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Taxon findBestMatchingTaxon(MatchingTaxonConfigurator config) {
-        return defaultTaxonService.findBestMatchingTaxon(config);
+        return defaultService.findBestMatchingTaxon(config);
     }
 
     /**
@@ -1286,7 +1274,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public Synonym findBestMatchingSynonym(String taxonName) {
-        return defaultTaxonService.findBestMatchingSynonym(taxonName);
+        return defaultService.findBestMatchingSynonym(taxonName);
     }
 
     /**
@@ -1295,7 +1283,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheTaxon() {
-        return defaultTaxonService.getUuidAndTitleCacheTaxon();
+        return defaultService.getUuidAndTitleCacheTaxon();
     }
 
     /**
@@ -1304,7 +1292,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheSynonym() {
-        return defaultTaxonService.getUuidAndTitleCacheSynonym();
+        return defaultService.getUuidAndTitleCacheSynonym();
     }
 
     /**
@@ -1313,8 +1301,8 @@ public class TransientTaxonService implements ITaxonService {
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNamesForEditor(eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator)
      */
     @Override
-    public List<UuidAndTitleCache<TaxonBase>> findTaxaAndNamesForEditor(IFindTaxaAndNamesConfigurator configurator) {
-        return defaultTaxonService.findTaxaAndNamesForEditor(configurator);
+    public List<UuidAndTitleCache<IdentifiableEntity>> findTaxaAndNamesForEditor(IFindTaxaAndNamesConfigurator configurator) {
+        return defaultService.findTaxaAndNamesForEditor(configurator);
     }
 
     /**
@@ -1327,7 +1315,7 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<Synonym> createInferredSynonyms(Taxon taxon, Classification tree, SynonymRelationshipType type, boolean doWithMisappliedNames) {
-        return defaultTaxonService.createInferredSynonyms(taxon, tree, type, doWithMisappliedNames);
+        return defaultService.createInferredSynonyms(taxon, tree, type, doWithMisappliedNames);
     }
 
     /**
@@ -1339,90 +1327,200 @@ public class TransientTaxonService implements ITaxonService {
      */
     @Override
     public List<Synonym> createAllInferredSynonyms(Taxon taxon, Classification tree, boolean doWithMisappliedNames) {
-        return defaultTaxonService.createAllInferredSynonyms(taxon, tree, doWithMisappliedNames);
+        return defaultService.createAllInferredSynonyms(taxon, tree, doWithMisappliedNames);
+    }
+
+    @Override
+    public DeleteResult deleteSynonym(Synonym arg0, SynonymDeletionConfigurator arg1) {
+        return defaultService.deleteSynonym(arg0, arg1);
+    }
+
+    @Override
+    public DeleteResult deleteSynonym(Synonym arg0, Taxon arg1, SynonymDeletionConfigurator arg2) {
+        return defaultService.deleteSynonym(arg0, arg1, arg2);
+    }
+
+    @Override
+    public List<List<Synonym>> getSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
+        return defaultService.getSynonymsByHomotypicGroup(taxon, propertyPaths);
+    }
+
+    @Override
+    public Synonym changeRelatedTaxonToSynonym(Taxon fromTaxon, Taxon toTaxon,
+            TaxonRelationshipType oldRelationshipType,
+            SynonymRelationshipType synonymRelationshipType)
+                    throws DataChangeNoRollbackException {
+
+        return defaultService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public String deleteSynonym(Synonym arg0, SynonymDeletionConfigurator arg1) {
-        return defaultTaxonService.deleteSynonym(arg0, arg1);
+    public Pager<Taxon> pageAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
+            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.pageAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public String deleteSynonym(Synonym arg0, Taxon arg1, SynonymDeletionConfigurator arg2) {
-        return defaultTaxonService.deleteSynonym(arg0, arg1, arg2);
+    public List<Taxon> listAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
+            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
+    }
+
+    @Override
+    public DeleteResult isDeletable(TaxonBase object,
+            DeleteConfiguratorBase config) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public IncludedTaxaDTO listIncludedTaxa(UUID taxonUuid,
+            IncludedTaxonConfiguration configuration) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public TaxonBase findWithoutFlush(UUID uuid) {
+        return defaultService.findWithoutFlush(uuid);
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator, eu.etaxonomy.cdm.model.taxon.Classification)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByName(eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator)
      */
     @Override
-    public String deleteTaxon(Taxon arg0, TaxonDeletionConfigurator arg1, Classification arg2) {
-        return defaultTaxonService.deleteTaxon(arg0, arg1, arg2);
+    public List<TaxonBase> findTaxaByName(MatchingTaxonConfigurator config) {
+        return defaultService.findTaxaByName(config);
+    }
+
+    @Override
+    public <S extends TaxonBase>  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);
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonymsByHomotypicGroup(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByIdentifier(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTerm, eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.persistence.query.MatchMode, boolean, java.lang.Integer, java.lang.Integer, java.util.List)
      */
     @Override
-    public List<List<Synonym>> getSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
-        return defaultTaxonService.getSynonymsByHomotypicGroup(taxon, propertyPaths);
+    public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier,
+            DefinedTerm identifierType, TaxonNode subtreeFilter, MatchMode matchmode, boolean includeEntity,
+            Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
+        return defaultService.findByIdentifier(clazz, identifier, identifierType, subtreeFilter, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
     }
 
-       @Override
-       public Synonym changeRelatedTaxonToSynonym(Taxon fromTaxon, Taxon toTaxon,
-                       TaxonRelationshipType oldRelationshipType,
-                       SynonymRelationshipType synonymRelationshipType)
-                       throws DataChangeNoRollbackException {
 
-               return defaultTaxonService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
-       }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
      */
     @Override
-    public Pager<Taxon> pageAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.pageAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
+    public DeleteResult deleteSynonym(UUID synonymUuid, UUID taxonUuid, SynonymDeletionConfigurator config) {
+        return defaultService.deleteSynonym(synonymUuid, taxonUuid, config);
+    }
+
+
+    /**
+     * {@inheritDoc}
+
+     */
+    @Override
+    public UpdateResult swapSynonymAndAcceptedTaxon(UUID synonymUUid, UUID acceptedTaxonUuid) {
+        return defaultService.swapSynonymAndAcceptedTaxon(synonymUUid, acceptedTaxonUuid);
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteTaxon(java.util.UUID, eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator, java.util.UUID)
      */
     @Override
-    public List<Taxon> listAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
-            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTaxonService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
+    public DeleteResult deleteTaxon(UUID taxonUuid, TaxonDeletionConfigurator config, UUID classificationUuid) {
+        return defaultService.deleteTaxon(taxonUuid, config, classificationUuid);
     }
 
-       @Override
-       public List<String> isDeletable(TaxonBase object,
-                       DeleteConfiguratorBase config) {
-               // TODO Auto-generated method stub
-               return null;
-       }
 
        @Override
-       public IncludedTaxaDTO listIncludedTaxa(UUID taxonUuid,
-                       IncludedTaxonConfiguration configuration) {
-               // TODO Auto-generated method stub
-               return null;
+       public UpdateResult moveFactualDateToAnotherTaxon(UUID arg0, UUID arg1) {
+               return defaultService.moveFactualDateToAnotherTaxon(arg0, arg1);
        }
 
-       @Override
-       public TaxonBase findWithoutFlush(UUID uuid) {
-               return defaultTaxonService.findWithoutFlush(uuid);
-       }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public UpdateResult moveSynonymToAnotherTaxon(
+            SynonymRelationship oldSynonymRelation, UUID newTaxonUUID,
+            boolean moveHomotypicGroup,
+            SynonymRelationshipType newSynonymRelationshipType,
+            Reference reference, String referenceDetail, boolean keepReference)
+                    throws HomotypicalGroupChangeException {
+
+        return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxonUUID, moveHomotypicGroup, newSynonymRelationshipType, reference, referenceDetail, keepReference);
+    }
 
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
+     */
+    @Override
+    public DeleteResult delete(UUID uuid) {
+        return defaultService.delete(uuid);
 
+    }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
+     */
+    @Override
+    public DeleteResult delete(Collection<UUID> arg0) {
+        return defaultService.delete(arg0);
+    }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<TaxonBase> merge(List<TaxonBase> arg0) {
+        return defaultService.merge(arg0);
+    }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(java.util.UUID, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
+     */
+    @Override
+    public DeleteResult deleteSynonym(UUID arg0, SynonymDeletionConfigurator arg1) {
+        return defaultService.deleteSynonym(arg0, arg1);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeRelatedTaxonToSynonym(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType)
+     */
+    @Override
+    public UpdateResult changeRelatedTaxonToSynonym(UUID arg0, UUID arg1, TaxonRelationshipType arg2,
+            SynonymRelationshipType arg3) throws DataChangeNoRollbackException {
+        return defaultService.changeRelatedTaxonToSynonym(arg0, arg1, arg2, arg3);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToAcceptedTaxon(java.util.UUID, java.util.UUID, boolean, boolean, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
+     */
+    @Override
+    public Taxon changeSynonymToAcceptedTaxon(UUID arg0, UUID arg1, boolean arg2, boolean arg3, Reference arg4,
+            String arg5) throws HomotypicalGroupChangeException {
+        return defaultService.changeSynonymToAcceptedTaxon(arg0, arg1, arg2, arg3, arg4, arg5);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToRelatedTaxon(java.util.UUID, java.util.UUID, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
+     */
+    @Override
+    public UpdateResult changeSynonymToRelatedTaxon(UUID arg0, UUID arg1, TaxonRelationshipType arg2, Reference arg3,
+            String arg4) {
+        return defaultService.changeSynonymToRelatedTaxon(arg0, arg1, arg2, arg3, arg4);
+    }
 }