CdmApplicationRemoteController : refactoring code to simplify application context...
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / transientServices / TransientReferenceService.java
index 932cae0f71462c76338ce5317b4815a3747a391c..b91e24a459447787c932bff0f0bde46604dc78c0 100644 (file)
@@ -15,18 +15,20 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.hibernate.LockMode;
+import org.hibernate.LockOptions;
 import org.hibernate.Session;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.envers.query.criteria.AuditCriterion;
 
+import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
+import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
 import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
 import eu.etaxonomy.cdm.model.common.Annotation;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.ISourceable;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.LSID;
@@ -53,13 +55,13 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
  */
 public class TransientReferenceService implements IReferenceService {
 
-    private IReferenceService defaultReferenceService;
+    private final IReferenceService defaultService;
 
     /**
      * @param defaultReferenceService
      */
     public TransientReferenceService(IReferenceService defaultReferenceService) {
-        this.defaultReferenceService = defaultReferenceService;
+        this.defaultService = defaultReferenceService;
     }
 
     /**
@@ -74,7 +76,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<Reference> search(Class<? extends Reference> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -88,7 +90,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<AuditEventRecord<Reference>> pageAuditEvents(Reference t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultReferenceService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
     }
 
     /**
@@ -103,7 +105,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<Annotation> getAnnotations(Reference annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -112,7 +114,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public void clear() {
-        defaultReferenceService.clear();
+        defaultService.clear();
     }
 
     /**
@@ -121,8 +123,8 @@ public class TransientReferenceService implements IReferenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
      */
     @Override
-    public void lock(Reference t, LockMode lockMode) {
-        defaultReferenceService.lock(t, lockMode);
+    public void lock(Reference t, LockOptions lockOptions) {
+        defaultService.lock(t, lockOptions);
     }
 
     /**
@@ -132,8 +134,8 @@ public class TransientReferenceService implements IReferenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
      */
     @Override
-    public void refresh(Reference t, LockMode lockMode, List<String> propertyPaths) {
-        defaultReferenceService.refresh(t, lockMode, propertyPaths);
+    public void refresh(Reference t, LockOptions lockOptions, List<String> propertyPaths) {
+        defaultService.refresh(t, lockOptions, propertyPaths);
     }
 
     /**
@@ -142,7 +144,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public void updateTitleCache() {
-        defaultReferenceService.updateTitleCache();
+        defaultService.updateTitleCache();
     }
 
     /**
@@ -152,7 +154,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public AuditEventRecord<Reference> getNextAuditEvent(Reference t) {
-        return defaultReferenceService.getNextAuditEvent(t);
+        return defaultService.getNextAuditEvent(t);
     }
 
     /**
@@ -167,7 +169,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<Marker> getMarkers(Reference annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -176,7 +178,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<UuidAndTitleCache<Reference>> getUuidAndTitle() {
-        return defaultReferenceService.getUuidAndTitle();
+        return defaultService.getUuidAndTitle();
     }
 
     /**
@@ -188,7 +190,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public void updateTitleCache(Class<? extends Reference> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<Reference> cacheStrategy, IProgressMonitor monitor) {
-        defaultReferenceService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
     }
 
     /**
@@ -198,7 +200,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public AuditEventRecord<Reference> getPreviousAuditEvent(Reference t) {
-        return defaultReferenceService.getPreviousAuditEvent(t);
+        return defaultService.getPreviousAuditEvent(t);
     }
 
     /**
@@ -207,7 +209,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> getAllReferencesForPublishing() {
-        return defaultReferenceService.getAllReferencesForPublishing();
+        return defaultService.getAllReferencesForPublishing();
     }
 
     /**
@@ -217,7 +219,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public int count(Class<? extends Reference> clazz) {
-        return defaultReferenceService.count(clazz);
+        return defaultService.count(clazz);
     }
 
     /**
@@ -226,7 +228,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> getAllNomenclaturalReferences() {
-        return defaultReferenceService.getAllNomenclaturalReferences();
+        return defaultService.getAllNomenclaturalReferences();
     }
 
     /**
@@ -238,7 +240,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<TaxonBase> listCoveredTaxa(Reference reference, boolean includeSubordinateReferences, List<String> propertyPaths) {
-        return defaultReferenceService.listCoveredTaxa(reference, includeSubordinateReferences, propertyPaths);
+        return defaultService.listCoveredTaxa(reference, includeSubordinateReferences, propertyPaths);
     }
 
     /**
@@ -255,7 +257,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<AuditEventRecord<Reference>> pageAuditEvents(Class<? extends Reference> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
-        return defaultReferenceService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
     }
 
     /**
@@ -265,7 +267,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Reference find(LSID lsid) {
-        return defaultReferenceService.find(lsid);
+        return defaultService.find(lsid);
     }
 
     /**
@@ -274,8 +276,8 @@ public class TransientReferenceService implements IReferenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public String delete(Reference persistentObject) {
-        return defaultReferenceService.delete(persistentObject);
+    public DeleteResult delete(Reference persistentObject) {
+        return defaultService.delete(persistentObject);
     }
 
     /**
@@ -289,7 +291,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Object[]> groupMarkers(Class<? extends Reference> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultReferenceService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
+        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -299,7 +301,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public boolean exists(UUID uuid) {
-        return defaultReferenceService.exists(uuid);
+        return defaultService.exists(uuid);
     }
 
     /**
@@ -310,7 +312,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Reference replace(Reference x, Reference y) {
-        return defaultReferenceService.replace(x, y);
+        return defaultService.replace(x, y);
     }
 
     /**
@@ -320,7 +322,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> find(Set<UUID> uuidSet) {
-        return defaultReferenceService.find(uuidSet);
+        return defaultService.find(uuidSet);
     }
 
     /**
@@ -333,7 +335,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<IdentifiableSource> getSources(Reference t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultReferenceService.getSources(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -343,7 +345,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Reference find(UUID uuid) {
-        return defaultReferenceService.find(uuid);
+        return defaultService.find(uuid);
     }
 
     /**
@@ -353,7 +355,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Reference find(int id) {
-        return defaultReferenceService.find(id);
+        return defaultService.find(id);
     }
 
     /**
@@ -366,7 +368,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<Rights> getRights(Reference t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
-        return defaultReferenceService.getRights(t, pageSize, pageNumber, propertyPaths);
+        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
     }
 
     /**
@@ -377,7 +379,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public int countMarkers(Class<? extends Reference> clazz, Boolean technical) {
-        return defaultReferenceService.countMarkers(clazz, technical);
+        return defaultService.countMarkers(clazz, technical);
     }
 
     /**
@@ -387,7 +389,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> findById(Set<Integer> idSet) {
-        return defaultReferenceService.findById(idSet);
+        return defaultService.findById(idSet);
     }
 
     /**
@@ -399,7 +401,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
-        return defaultReferenceService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
+        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
     }
 
     /**
@@ -408,7 +410,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Session getSession() {
-        return defaultReferenceService.getSession();
+        return defaultService.getSession();
     }
 
     /**
@@ -417,7 +419,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<UuidAndTitleCache<Reference>> getUuidAndTitleCache() {
-        return defaultReferenceService.getUuidAndTitleCache();
+        return defaultService.getUuidAndTitleCache();
     }
 
     /**
@@ -431,7 +433,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Object[]> group(Class<? extends Reference> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
-        return defaultReferenceService.group(clazz, limit, start, groups, propertyPaths);
+        return defaultService.group(clazz, limit, start, groups, propertyPaths);
     }
 
     /**
@@ -448,7 +450,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<Reference> findByTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -461,8 +463,8 @@ public class TransientReferenceService implements IReferenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public List<Reference> list(Class<? extends Reference> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.list(type, limit, start, orderHints, propertyPaths);
+    public  <S extends Reference> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.list(type, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -472,7 +474,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<Reference> findByTitle(IIdentifiableEntityServiceConfigurator<Reference> configurator) {
-        return defaultReferenceService.findByTitle(configurator);
+        return defaultService.findByTitle(configurator);
     }
 
     /**
@@ -485,7 +487,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Integer countByTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
-        return defaultReferenceService.countByTitle(clazz, queryString, matchmode, criteria);
+        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
     }
 
     /**
@@ -495,7 +497,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Reference load(UUID uuid) {
-        return defaultReferenceService.load(uuid);
+        return defaultService.load(uuid);
     }
 
     /**
@@ -506,7 +508,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Reference load(UUID uuid, List<String> propertyPaths) {
-        return defaultReferenceService.load(uuid, propertyPaths);
+        return defaultService.load(uuid, propertyPaths);
     }
 
     /**
@@ -516,7 +518,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Integer countByTitle(IIdentifiableEntityServiceConfigurator<Reference> configurator) {
-        return defaultReferenceService.countByTitle(configurator);
+        return defaultService.countByTitle(configurator);
     }
 
     /**
@@ -526,7 +528,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Reference merge(Reference transientObject) {
-        return defaultReferenceService.merge(transientObject);
+        return defaultService.merge(transientObject);
     }
 
     /**
@@ -543,7 +545,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> listByTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -556,8 +558,8 @@ public class TransientReferenceService implements IReferenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<Reference> page(Class<? extends Reference> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
+    public  <S extends Reference> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -567,7 +569,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public UUID refresh(Reference persistentObject) {
-        return defaultReferenceService.refresh(persistentObject);
+        return defaultService.refresh(persistentObject);
     }
 
     /**
@@ -584,7 +586,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> listByReferenceTitle(Class<? extends Reference> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
     /**
@@ -596,7 +598,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> rows(String tableName, int limit, int start) {
-        return defaultReferenceService.rows(tableName, limit, start);
+        return defaultService.rows(tableName, limit, start);
     }
 
     /**
@@ -646,7 +648,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public UUID update(Reference transientObject) {
-        return defaultReferenceService.update(transientObject);
+        return defaultService.update(transientObject);
     }
 
     /**
@@ -661,7 +663,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public List<Reference> list(Reference example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
-        return defaultReferenceService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
+        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
     }
 
     /**
@@ -673,7 +675,7 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public int deduplicate(Class<? extends Reference> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
-        return defaultReferenceService.deduplicate(clazz, matchStrategy, mergeStrategy);
+        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
     }
 
     /**
@@ -688,15 +690,32 @@ public class TransientReferenceService implements IReferenceService {
      */
     @Override
     public Pager<Reference> findTitleCache(Class<? extends Reference> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
-        return defaultReferenceService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
+        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
     }
 
        @Override
-       public List<String> isDeletable(Reference object,
+       public DeleteResult isDeletable(Reference object,
                        DeleteConfiguratorBase config) {
                // TODO Auto-generated method stub
                return null;
        }
 
+       @Override
+       public Reference findWithoutFlush(UUID uuid) {
+               return defaultService.findWithoutFlush(uuid);
+       }
+
+       @Override
+       public <S extends Reference>  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);
+    }
 
 }