Implement new load method for uuid lists
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / transientServices / TransientTermService.java
index 533c4de908c517e624248245ae049a92f3922a5b..109a80899fca31e51f50cd529ba8de9b80b08149 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.net.URI;
@@ -18,7 +18,7 @@ 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;
@@ -28,9 +28,11 @@ import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.TermDeletionConfigurator;
+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;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.ISourceable;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
@@ -42,7 +44,6 @@ import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.Representation;
 import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
 import eu.etaxonomy.cdm.model.location.NamedAreaType;
@@ -51,6 +52,8 @@ import eu.etaxonomy.cdm.model.media.Rights;
 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.MergeResult;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.cdm.persistence.query.Grouping;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.cdm.persistence.query.OrderHint;
@@ -65,13 +68,13 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
  */
 public class TransientTermService implements ITermService {
 
-    private final ITermService defaultTermService;
+    private final ITermService defaultService;
 
     /**
      * @param defaultTermService
      */
     public TransientTermService(ITermService defaultTermService) {
-        this.defaultTermService = defaultTermService;
+        this.defaultService = defaultTermService;
     }
 
     /**
@@ -85,7 +88,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<AuditEventRecord<DefinedTermBase>> pageAuditEvents(DefinedTermBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultTermService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
     }
 
     /**
@@ -100,7 +103,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<Annotation> getAnnotations(DefinedTermBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -109,7 +112,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public void clear() {
-        defaultTermService.clear();
+        defaultService.clear();
     }
 
     /**
@@ -118,8 +121,8 @@ public class TransientTermService implements ITermService {
      * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
      */
     @Override
-    public void lock(DefinedTermBase t, LockMode lockMode) {
-        defaultTermService.lock(t, lockMode);
+    public void lock(DefinedTermBase t, LockOptions lockOptions) {
+        defaultService.lock(t, lockOptions);
     }
 
     /**
@@ -129,7 +132,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase getByUri(URI uri) {
-        return defaultTermService.getByUri(uri);
+        return defaultService.getByUri(uri);
     }
 
     /**
@@ -139,8 +142,8 @@ public class TransientTermService implements ITermService {
      * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
      */
     @Override
-    public void refresh(DefinedTermBase t, LockMode lockMode, List<String> propertyPaths) {
-        defaultTermService.refresh(t, lockMode, propertyPaths);
+    public void refresh(DefinedTermBase t, LockOptions lockOptions, List<String> propertyPaths) {
+        defaultService.refresh(t, lockOptions, propertyPaths);
     }
 
     /**
@@ -161,7 +164,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<LanguageString> getAllLanguageStrings(int limit, int start) {
-        return defaultTermService.getAllLanguageStrings(limit, start);
+        return defaultService.getAllLanguageStrings(limit, start);
     }
 
     /**
@@ -172,7 +175,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<Representation> getAllRepresentations(int limit, int start) {
-        return defaultTermService.getAllRepresentations(limit, start);
+        return defaultService.getAllRepresentations(limit, start);
     }
 
     /**
@@ -181,7 +184,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public void updateTitleCache() {
-        defaultTermService.updateTitleCache();
+        defaultService.updateTitleCache();
     }
 
     /**
@@ -191,7 +194,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public AuditEventRecord<DefinedTermBase> getNextAuditEvent(DefinedTermBase t) {
-        return defaultTermService.getNextAuditEvent(t);
+        return defaultService.getNextAuditEvent(t);
     }
 
     /**
@@ -201,7 +204,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Language getLanguageByIso(String iso639) {
-        return defaultTermService.getLanguageByIso(iso639);
+        return defaultService.getLanguageByIso(iso639);
     }
 
     /**
@@ -211,7 +214,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<Language> getLanguagesByLocale(Enumeration<Locale> locales) {
-        return defaultTermService.getLanguagesByLocale(locales);
+        return defaultService.getLanguagesByLocale(locales);
     }
 
     /**
@@ -221,7 +224,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public NamedArea getAreaByTdwgAbbreviation(String tdwgAbbreviation) {
-        return defaultTermService.getAreaByTdwgAbbreviation(tdwgAbbreviation);
+        return defaultService.getAreaByTdwgAbbreviation(tdwgAbbreviation);
     }
 
     /**
@@ -236,7 +239,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<Marker> getMarkers(DefinedTermBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -248,7 +251,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<Media> getMedia(DefinedTermBase definedTerm, Integer pageSize, Integer pageNumber) {
-        return defaultTermService.getMedia(definedTerm, pageSize, pageNumber);
+        return defaultService.getMedia(definedTerm, pageSize, pageNumber);
     }
 
     /**
@@ -260,7 +263,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public void updateTitleCache(Class<? extends DefinedTermBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<DefinedTermBase> cacheStrategy, IProgressMonitor monitor) {
-        defaultTermService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
     }
 
     /**
@@ -270,7 +273,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public AuditEventRecord<DefinedTermBase> getPreviousAuditEvent(DefinedTermBase t) {
-        return defaultTermService.getPreviousAuditEvent(t);
+        return defaultService.getPreviousAuditEvent(t);
     }
 
     /**
@@ -280,7 +283,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public int count(Class<? extends DefinedTermBase> clazz) {
-        return defaultTermService.count(clazz);
+        return defaultService.count(clazz);
     }
 
     /**
@@ -295,7 +298,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<NamedArea> list(NamedAreaLevel level, NamedAreaType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.list(level, type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.list(level, type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -312,7 +315,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<AuditEventRecord<DefinedTermBase>> pageAuditEvents(Class<? extends DefinedTermBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultTermService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
     }
 
     /**
@@ -322,7 +325,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase find(LSID lsid) {
-        return defaultTermService.find(lsid);
+        return defaultService.find(lsid);
     }
 
     /**
@@ -331,8 +334,8 @@ public class TransientTermService implements ITermService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public String delete(DefinedTermBase persistentObject) {
-        return defaultTermService.delete(persistentObject);
+    public DeleteResult delete(DefinedTermBase persistentObject) {
+        return defaultService.delete(persistentObject);
     }
 
     /**
@@ -346,7 +349,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<Object[]> groupMarkers(Class<? extends DefinedTermBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTermService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -356,7 +359,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public boolean exists(UUID uuid) {
-        return defaultTermService.exists(uuid);
+        return defaultService.exists(uuid);
     }
 
     /**
@@ -367,7 +370,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase replace(DefinedTermBase x, DefinedTermBase y) {
-        return defaultTermService.replace(x, y);
+        return defaultService.replace(x, y);
     }
 
     /**
@@ -379,7 +382,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public <T extends DefinedTermBase> Pager<T> getGeneralizationOf(T definedTerm, Integer pageSize, Integer pageNumber) {
-        return defaultTermService.getGeneralizationOf(definedTerm, pageSize, pageNumber);
+        return defaultService.getGeneralizationOf(definedTerm, pageSize, pageNumber);
     }
 
     /**
@@ -389,7 +392,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<DefinedTermBase> find(Set<UUID> uuidSet) {
-        return defaultTermService.find(uuidSet);
+        return defaultService.find(uuidSet);
     }
 
     /**
@@ -402,7 +405,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<IdentifiableSource> getSources(DefinedTermBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTermService.getSources(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -412,7 +415,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase find(UUID uuid) {
-        return defaultTermService.find(uuid);
+        return defaultService.find(uuid);
     }
 
     /**
@@ -425,7 +428,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public <T extends DefinedTermBase> Pager<T> getPartOf(Set<T> definedTerms, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTermService.getPartOf(definedTerms, pageSize, pageNumber, propertyPaths);
+        return defaultService.getPartOf(definedTerms, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -435,7 +438,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase find(int id) {
-        return defaultTermService.find(id);
+        return defaultService.find(id);
     }
 
     /**
@@ -448,7 +451,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<Rights> getRights(DefinedTermBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTermService.getRights(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -459,7 +462,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public int countMarkers(Class<? extends DefinedTermBase> clazz, Boolean technical) {
-        return defaultTermService.countMarkers(clazz, technical);
+        return defaultService.countMarkers(clazz, technical);
     }
 
     /**
@@ -469,7 +472,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<DefinedTermBase> findById(Set<Integer> idSet) {
-        return defaultTermService.findById(idSet);
+        return defaultService.findById(idSet);
     }
 
     /**
@@ -482,7 +485,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public <T extends DefinedTermBase> Pager<T> getIncludes(Collection<T> definedTerms, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultTermService.getIncludes(definedTerms, pageSize, pageNumber, propertyPaths);
+        return defaultService.getIncludes(definedTerms, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -494,7 +497,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultTermService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
     }
 
     /**
@@ -503,7 +506,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Session getSession() {
-        return defaultTermService.getSession();
+        return defaultService.getSession();
     }
 
     /**
@@ -512,7 +515,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<UuidAndTitleCache<DefinedTermBase>> getUuidAndTitleCache() {
-        return defaultTermService.getUuidAndTitleCache();
+        return defaultService.getUuidAndTitleCache();
     }
 
     /**
@@ -526,7 +529,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<Object[]> group(Class<? extends DefinedTermBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultTermService.group(clazz, limit, start, groups, propertyPaths);
+        return defaultService.group(clazz, limit, start, groups, propertyPaths);
     }
 
     /**
@@ -539,7 +542,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public <T extends DefinedTermBase> Pager<T> findByRepresentationText(String label, Class<T> clazz, Integer pageSize, Integer pageNumber) {
-        return defaultTermService.findByRepresentationText(label, clazz, pageSize, pageNumber);
+        return defaultService.findByRepresentationText(label, clazz, pageSize, pageNumber);
     }
 
     /**
@@ -556,7 +559,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<DefinedTermBase> findByTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -569,7 +572,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public <T extends DefinedTermBase> Pager<T> findByRepresentationAbbreviation(String abbrev, Class<T> clazz, Integer pageSize, Integer pageNumber) {
-        return defaultTermService.findByRepresentationAbbreviation(abbrev, clazz, pageSize, pageNumber);
+        return defaultService.findByRepresentationAbbreviation(abbrev, clazz, pageSize, pageNumber);
     }
 
     /**
@@ -583,7 +586,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public <S extends DefinedTermBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.list(type, limit, start, orderHints, propertyPaths);
+        return defaultService.list(type, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -594,7 +597,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DeleteResult delete(DefinedTermBase term, TermDeletionConfigurator config) {
-        return defaultTermService.delete(term, config);
+        return defaultService.delete(term, config);
     }
 
     /**
@@ -604,7 +607,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<DefinedTermBase> findByTitle(IIdentifiableEntityServiceConfigurator<DefinedTermBase> configurator) {
-        return defaultTermService.findByTitle(configurator);
+        return defaultService.findByTitle(configurator);
     }
 
     /**
@@ -617,7 +620,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Integer countByTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultTermService.countByTitle(clazz, queryString, matchmode, criteria);
+        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
     }
 
     /**
@@ -627,7 +630,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase load(UUID uuid) {
-        return defaultTermService.load(uuid);
+        return defaultService.load(uuid);
     }
 
     /**
@@ -638,7 +641,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase load(UUID uuid, List<String> propertyPaths) {
-        return defaultTermService.load(uuid, propertyPaths);
+        return defaultService.load(uuid, propertyPaths);
     }
 
     /**
@@ -648,7 +651,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Integer countByTitle(IIdentifiableEntityServiceConfigurator<DefinedTermBase> configurator) {
-        return defaultTermService.countByTitle(configurator);
+        return defaultService.countByTitle(configurator);
     }
 
     /**
@@ -658,7 +661,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public DefinedTermBase merge(DefinedTermBase transientObject) {
-        return defaultTermService.merge(transientObject);
+        return defaultService.merge(transientObject);
     }
 
     /**
@@ -675,7 +678,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<DefinedTermBase> listByTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -689,7 +692,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public <S extends DefinedTermBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -699,7 +702,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public UUID refresh(DefinedTermBase persistentObject) {
-        return defaultTermService.refresh(persistentObject);
+        return defaultService.refresh(persistentObject);
     }
 
     /**
@@ -716,7 +719,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<DefinedTermBase> listByReferenceTitle(Class<? extends DefinedTermBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -728,7 +731,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<DefinedTermBase> rows(String tableName, int limit, int start) {
-        return defaultTermService.rows(tableName, limit, start);
+        return defaultService.rows(tableName, limit, start);
     }
 
     /**
@@ -747,7 +750,7 @@ public class TransientTermService implements ITermService {
      * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID save(DefinedTermBase newInstance) {
+    public DefinedTermBase save(DefinedTermBase newInstance) {
         return null;
     }
 
@@ -773,7 +776,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<DefinedTermBase> search(Class<? extends DefinedTermBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -793,7 +796,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public UUID update(DefinedTermBase transientObject) {
-        return defaultTermService.update(transientObject);
+        return defaultService.update(transientObject);
     }
 
     /**
@@ -808,7 +811,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public List<DefinedTermBase> list(DefinedTermBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -820,7 +823,7 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public int deduplicate(Class<? extends DefinedTermBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultTermService.deduplicate(clazz, matchStrategy, mergeStrategy);
+        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
     }
 
     /**
@@ -835,20 +838,20 @@ public class TransientTermService implements ITermService {
      */
     @Override
     public Pager<DefinedTermBase> findTitleCache(Class<? extends DefinedTermBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultTermService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
     }
 
     @Override
     public <TERM extends DefinedTermBase> TERM findByIdInVocabulary(String id, UUID vocabularyUuid,
             Class<TERM> clazz) {
-        return defaultTermService.findByIdInVocabulary(id, vocabularyUuid, clazz);
+        return defaultService.findByIdInVocabulary(id, vocabularyUuid, clazz);
     }
 
-       @Override
-       public List<String> isDeletable(DefinedTermBase object,
-                       DeleteConfiguratorBase config) {
-               return defaultTermService.isDeletable(object, config);
-       }
+    @Override
+    public DeleteResult isDeletable(DefinedTermBase object,
+            DeleteConfiguratorBase config) {
+        return defaultService.isDeletable(object, config);
+    }
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ITermService#listByTermType(eu.etaxonomy.cdm.model.common.TermType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
@@ -856,12 +859,90 @@ public class TransientTermService implements ITermService {
     @Override
     public List<DefinedTermBase<?>> listByTermType(TermType termType, Integer limit, Integer start,
             List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultTermService.listByTermType(termType, limit, start, orderHints, propertyPaths);
+        return defaultService.listByTermType(termType, limit, start, orderHints, propertyPaths);
+    }
+
+    @Override
+    public DefinedTermBase findWithoutFlush(UUID uuid) {
+        return defaultService.findWithoutFlush(uuid);
+    }
+
+
+    @Override
+    public <S extends DefinedTermBase>  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.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);
     }
 
-       @Override
-       public DefinedTermBase findWithoutFlush(UUID uuid) {
-               return defaultTermService.findWithoutFlush(uuid);
-       }
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<DefinedTermBase> merge(List<DefinedTermBase> arg0) {
+        return defaultService.merge(arg0);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.ITermService#delete(java.util.UUID, eu.etaxonomy.cdm.api.service.config.TermDeletionConfigurator)
+     */
+    @Override
+    public DeleteResult delete(UUID arg0, TermDeletionConfigurator arg1) {
+        return defaultService.delete(arg0, arg1);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List, boolean)
+     */
+    @Override
+    public List<MergeResult<DefinedTermBase>> merge(List<DefinedTermBase> arg0, boolean arg1) {
+        return defaultService.merge(arg0, arg1);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase, boolean)
+     */
+    @Override
+    public MergeResult<DefinedTermBase> merge(DefinedTermBase arg0, boolean arg1) {
+        return defaultService.merge(arg0, arg1);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#loadWithUpdate(java.util.UUID)
+     */
+    @Override
+    public DefinedTermBase loadWithUpdate(UUID arg0) {
+        return defaultService.loadWithUpdate(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Language getLanguageByLabel(String arg0) {
+        return defaultService.getLanguageByLabel(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public List<DefinedTermBase> load(List<UUID> arg0, List<String> arg1) {
+        return defaultService.load(arg0, arg1);
+    }
 
 }