Merge branch 'develop' of wp5.e-taxonomy.eu:/var/git/taxeditor into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / transientServices / TransientOccurenceService.java
index f4ce443e403aec550768ea748cf13248902ab0e0..7d30196c6dc1b849de28da7dfe6e3edef725eb43 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,28 +27,37 @@ 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.dto.DerivateHierarchyDTO;
+import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
+import eu.etaxonomy.cdm.api.service.dto.FieldUnitDTO;
+import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
 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.CdmBase;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.ISourceable;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.LSID;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.location.Country;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.Rights;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
@@ -59,6 +68,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 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.query.Grouping;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.cdm.persistence.query.OrderHint;
@@ -128,8 +138,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 +149,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 +287,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);
     }
 
@@ -896,7 +906,7 @@ public class TransientOccurenceService implements IOccurrenceService {
     }
 
        @Override
-       public List<String> isDeletable(SpecimenOrObservationBase object,
+       public DeleteResult isDeletable(SpecimenOrObservationBase object,
                        DeleteConfiguratorBase config) {
                return defaultService.isDeletable(object, config);
        }
@@ -914,24 +924,145 @@ public class TransientOccurenceService implements IOccurrenceService {
                return defaultService.findWithoutFlush(uuid);
        }
 
+       @Override
+       public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
+               List<OrderHint> orderHints, List<String> propertyPaths) {
+           return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
+       }
+
+       @Override
+       public Pager<SpecimenOrObservationBase> pageFieldUnitsByAssociatedTaxon(
+               Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
+               Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+           return defaultService.pageFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
+       }
+
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assembleFieldUnitDTO(eu.etaxonomy.cdm.model.occurrence.FieldUnit, java.util.UUID)
+        */
+       @Override
+       public FieldUnitDTO assembleFieldUnitDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
+           return defaultService.assembleFieldUnitDTO(fieldUnit, associatedTaxonUuid);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assemblePreservedSpecimenDTO(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
+        */
+       @Override
+       public PreservedSpecimenDTO assemblePreservedSpecimenDTO(DerivedUnit derivedUnit) {
+           return defaultService.assemblePreservedSpecimenDTO(derivedUnit);
+       }
+
+    @Override
+    public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
+        return defaultService.getNonCascadedAssociatedElements(specimen);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteDerivateHierarchy(eu.etaxonomy.cdm.model.common.ICdmBase)
+     */
+    @Override
+    public DeleteResult deleteDerivateHierarchy(CdmBase from, SpecimenDeleteConfigurator config) {
+        return defaultService.deleteDerivateHierarchy(from, config);
+    }
+
     /* (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)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#delete(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator)
      */
     @Override
-    public Collection<FieldUnit> listFieldUnitsByAssociatedTaxon(Set<TaxonRelationshipEdge> includeRelationships,
-            Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
+    public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
+        return defaultService.delete(specimen, config);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listIndividualsAssociations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     */
+    @Override
+    public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
+            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listTypeDesignations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     */
+    @Override
+    public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
+            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
+        return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDescriptionsWithDescriptionSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+     */
+    @Override
+    public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(
+            SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints,
             List<String> propertyPaths) {
-        return defaultService.listFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
+        return defaultService.listDescriptionsWithDescriptionSpecimen(specimen, limit, start, orderHints, propertyPaths);
     }
 
+       @Override
+       public <S extends SpecimenOrObservationBase>  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.IOccurrenceService#getCharacterDataForSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase)
+        */
+       @Override
+       public Collection<DescriptionElementBase> getCharacterDataForSpecimen(SpecimenOrObservationBase<?> arg0) {
+           return defaultService.getCharacterDataForSpecimen(arg0);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(java.util.UUID)
+        */
+       @Override
+       public Collection<DescriptionElementBase> getCharacterDataForSpecimen(UUID arg0) {
+           return getCharacterDataForSpecimen(arg0);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMostSignificantIdentifier(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
+        */
+       @Override
+       public String getMostSignificantIdentifier(DerivedUnit derivedUnit) {
+           return defaultService.getMostSignificantIdentifier(derivedUnit);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countOccurrences(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
+        */
+       @Override
+       public int countOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> config) {
+           return defaultService.countOccurrences(config);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public List<DerivedUnit> getAllChildDerivatives(SpecimenOrObservationBase<?> specimen) {
+           return defaultService.getAllChildDerivatives(specimen);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public List<SpecimenOrObservationBase<?>> getAllHierarchyDerivatives(SpecimenOrObservationBase<?> specimen) {
+           return defaultService.getAllHierarchyDerivatives(specimen);
+       }
+
+
     /* (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)
+     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
      */
     @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);
+    public DeleteResult delete(UUID uuid) {
+        return defaultService.delete(uuid);
     }
 
 }