merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / transientServices / TransientOccurenceService.java
index 5a226f607eadde05a2ac0e306ffad0d84627ee16..066bd607c786ff3de8232147e533b2b3cd4d1663 100644 (file)
@@ -19,7 +19,7 @@ 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;
@@ -27,10 +27,11 @@ import org.hibernate.search.spatial.impl.Rectangle;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
+import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 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.DerivateHierarchyDTO;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
 import eu.etaxonomy.cdm.api.service.search.SearchResult;
 import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
@@ -74,14 +75,14 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
 public class TransientOccurenceService implements IOccurrenceService {
 
     private final IOccurrenceService defaultService;
-    private final Collection<SpecimenOrObservationBase> units;
+    private final Collection<SpecimenOrObservationBase<?>> units;
 
     /**
      * @param defaultService
      */
     public TransientOccurenceService(IOccurrenceService defaultService) {
         this.defaultService = defaultService;
-        this.units = new HashSet<SpecimenOrObservationBase>();
+        this.units = new HashSet<SpecimenOrObservationBase<?>>();
     }
 
     /**
@@ -128,8 +129,8 @@ public class TransientOccurenceService implements IOccurrenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
      */
     @Override
-    public void lock(SpecimenOrObservationBase t, LockMode lockMode) {
-        defaultService.lock(t, lockMode);
+    public void lock(SpecimenOrObservationBase t, LockOptions lockOptions) {
+        defaultService.lock(t, lockOptions);
     }
 
     /**
@@ -139,8 +140,8 @@ public class TransientOccurenceService implements IOccurrenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
      */
     @Override
-    public void refresh(SpecimenOrObservationBase t, LockMode lockMode, List<String> propertyPaths) {
-        defaultService.refresh(t, lockMode, propertyPaths);
+    public void refresh(SpecimenOrObservationBase t, LockOptions lockOptions, List<String> propertyPaths) {
+        defaultService.refresh(t, lockOptions, propertyPaths);
     }
 
     /**
@@ -277,7 +278,7 @@ public class TransientOccurenceService implements IOccurrenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public String delete(SpecimenOrObservationBase persistentObject) {
+    public DeleteResult delete(SpecimenOrObservationBase persistentObject) {
         return defaultService.delete(persistentObject);
     }
 
@@ -504,7 +505,7 @@ public class TransientOccurenceService implements IOccurrenceService {
      * @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<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+    public <S extends SpecimenOrObservationBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
         return defaultService.list(type, limit, start, orderHints, propertyPaths);
     }
 
@@ -655,7 +656,7 @@ public class TransientOccurenceService implements IOccurrenceService {
      * @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<SpecimenOrObservationBase> page(Class<? extends SpecimenOrObservationBase> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+    public <S extends SpecimenOrObservationBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
         return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
@@ -856,7 +857,7 @@ public class TransientOccurenceService implements IOccurrenceService {
     /**
      * @return
      */
-    public Collection<SpecimenOrObservationBase> getUnits() {
+    public Collection<SpecimenOrObservationBase<?>> getUnits() {
         return units;
     }
 
@@ -898,9 +899,40 @@ public class TransientOccurenceService implements IOccurrenceService {
        @Override
        public List<String> isDeletable(SpecimenOrObservationBase object,
                        DeleteConfiguratorBase config) {
-               // TODO Auto-generated method stub
-               return null;
+               return defaultService.isDeletable(object, config);
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase)
+     */
+    @Override
+    public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
+        return defaultService.countDeterminations(occurence, taxonbase);
+    }
+
+       @Override
+       public SpecimenOrObservationBase findWithoutFlush(UUID uuid) {
+               return defaultService.findWithoutFlush(uuid);
+       }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listFieldUnitsByAssociatedTaxon(java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     */
+    @Override
+    public Collection<FieldUnit> listFieldUnitsByAssociatedTaxon(Set<TaxonRelationshipEdge> includeRelationships,
+            Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
+            List<String> propertyPaths) {
+        return defaultService.listFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDerivateHierarchyDTOsByAssociatedTaxon(java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     */
+    @Override
+    public Collection<DerivateHierarchyDTO> listDerivateHierarchyDTOsByAssociatedTaxon(
+            Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
+            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.listDerivateHierarchyDTOsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
+    }
 
 }