From f6a27518310af8cc83b38fda11a357f28de91ad0 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Fri, 8 Jul 2011 13:38:39 +0000
Subject: [PATCH] [LMS-2363] renamings in java & dictionary

SVN: 22063
---
 .../cisd/etlserver/DataStrategyStore.java     | 23 +++---
 .../cisd/etlserver/DataStrategyStoreTest.java |  4 +-
 .../web/client/ICommonClientService.java      | 22 +++---
 .../client/web/client/application/Dict.java   | 15 ++--
 .../web/client/application/ProjectViewer.java |  2 +-
 .../application/model/BaseEntityModel.java    |  8 +--
 .../application/renderer/LinkRenderer.java    |  2 +-
 .../client/application/ui/AbstractViewer.java | 14 ++--
 .../ui/PropertyValueRenderers.java            | 30 ++++----
 .../AbstractColumnDefinitionKind.java         |  8 +--
 .../data/CommonExternalDataColDefKind.java    |  4 +-
 .../CommonExperimentColDefKind.java           |  4 +-
 ...DataSetListDeletionConfirmationDialog.java | 14 ++--
 ...erimentListDeletionConfirmationDialog.java | 14 ++--
 .../ui/grid/AbstractBrowserGrid.java          |  2 +-
 .../application/ui/property/PropertyGrid.java |  6 +-
 .../SampleListDeletionConfirmationDialog.java | 14 ++--
 ...actDataListDeletionConfirmationDialog.java | 49 +++++++------
 .../application/ui/widget/FieldUtil.java      |  2 +-
 .../application/ui/widget/HistoryWidget.java  |  2 +-
 .../dto/ExperimentBrowserGridColumnIDs.java   | 32 ++++++---
 .../web/client/dto/SampleGridColumnIDs.java   | 28 ++++----
 .../WebClientConfigurationProvider.java       | 13 ++--
 .../server/resultset/ExperimentProvider.java  | 10 +--
 .../web/server/resultset/SampleProvider.java  | 10 +--
 .../server/CommonBusinessObjectFactory.java   |  8 +--
 .../openbis/generic/server/CommonServer.java  | 22 +++---
 .../openbis/generic/server/ETLService.java    | 12 ++--
 .../business/bo/AbstractBusinessObject.java   |  6 +-
 .../bo/AbstractSampleBusinessObject.java      | 14 ++--
 .../server/business/bo/DataSetTable.java      |  6 +-
 .../server/business/bo/ExperimentBO.java      |  6 +-
 .../bo/ICommonBusinessObjectFactory.java      |  2 +-
 .../server/business/bo/IDataSetTable.java     |  8 +--
 .../server/business/bo/IExperimentBO.java     |  8 +--
 .../server/business/bo/ISampleTable.java      |  8 +--
 .../{IInvalidationBO.java => ITrashBO.java}   | 12 ++--
 .../generic/server/business/bo/SampleBO.java  | 10 +--
 .../server/business/bo/SampleTable.java       |  6 +-
 .../bo/{InvalidationBO.java => TrashBO.java}  | 38 +++++-----
 .../ExperimentProjectSpaceCodeRecord.java     |  2 +-
 .../common/entity/SampleReferenceRecord.java  |  2 +-
 .../bo/common/entity/SecondaryEntityDAO.java  | 12 ++--
 .../bo/datasetlister/DatasetLister.java       | 10 +--
 .../bo/samplelister/SampleListingWorker.java  | 10 +--
 .../server/dataaccess/IDAOFactory.java        |  4 +-
 .../generic/server/dataaccess/IDataDAO.java   |  7 +-
 ...InvalidationDAO.java => IDeletionDAO.java} | 10 +--
 .../server/dataaccess/IExperimentDAO.java     |  7 +-
 .../generic/server/dataaccess/ISampleDAO.java |  6 +-
 .../server/dataaccess/db/DAOFactory.java      | 10 +--
 .../generic/server/dataaccess/db/DataDAO.java |  8 +--
 .../server/dataaccess/db/ExperimentDAO.java   |  8 +--
 .../server/dataaccess/db/InvalidationDAO.java | 28 ++++----
 .../server/dataaccess/db/SampleDAO.java       |  8 +--
 ...alidationUtils.java => DeletionUtils.java} | 12 ++--
 ...onProvider.java => IDeletionProvider.java} |  6 +-
 .../dto/{Invalidation.java => Deletion.java}  |  7 +-
 .../shared/basic/dto/DeletionType.java        |  2 +-
 .../generic/shared/basic/dto/Experiment.java  | 21 +++---
 .../shared/basic/dto/ExternalData.java        | 14 ++--
 .../generic/shared/basic/dto/Sample.java      | 20 +++---
 .../basic/dto/WebClientConfiguration.java     | 10 +--
 .../generic/shared/dto/ColumnNames.java       |  2 +-
 .../openbis/generic/shared/dto/DataPE.java    | 16 ++---
 .../{InvalidationPE.java => DeletionPE.java}  | 14 ++--
 .../generic/shared/dto/ExperimentPE.java      | 15 ++--
 .../shared/dto/ExperimentPlatesFilter.java    | 70 -------------------
 .../openbis/generic/shared/dto/SamplePE.java  | 16 ++---
 .../generic/shared/dto/SequenceNames.java     |  2 +-
 .../generic/shared/dto/TableNames.java        |  2 +-
 .../shared/translator/DataSetTranslator.java  |  2 +-
 ...ranslator.java => DeletionTranslator.java} | 24 +++----
 .../translator/ExperimentTranslator.java      |  2 +-
 .../shared/translator/SampleTranslator.java   |  2 +-
 .../shared/util/TypedTableModelBuilder.java   |  4 +-
 .../dataset/DataSetPropertiesPanel.java       |  8 +--
 .../dataset/GenericDataSetViewer.java         |  2 +-
 .../experiment/ExperimentPropertiesPanel.java |  8 +--
 .../experiment/GenericExperimentViewer.java   |  4 +-
 .../sample/GenericSampleViewer.java           | 12 ++--
 .../server/GenericBusinessObjectFactory.java  |  6 +-
 .../GenericDataSetTypeSlaveServerPlugin.java  | 11 ++-
 .../server/IGenericBusinessObjectFactory.java |  6 +-
 .../cisd/openbis/public/common-dictionary.js  | 12 ++--
 .../application/ExperimentBrowserTest.java    |  2 +-
 .../client/application/SampleBrowserTest.java |  4 +-
 .../ui/data/columns/DataSetRow.java           | 10 +--
 .../ui/experiment/columns/ExperimentRow.java  | 10 +--
 .../ui/sample/columns/SampleRow.java          | 10 +--
 .../testframework/AbstractProperty.java       | 35 +++++-----
 .../resultset/ExperimentProviderTest.java     |  4 +-
 .../server/resultset/SampleProviderTest.java  |  6 +-
 .../generic/server/CommonServerTest.java      |  2 +-
 .../generic/server/ETLServiceTest.java        | 13 ++--
 .../samplelister/SampleListingQueryTest.java  |  4 +-
 .../server/dataaccess/db/DataDAOTest.java     |  2 +-
 .../basic/dto/builders/ExperimentBuilder.java |  6 +-
 .../basic/dto/builders/SampleBuilder.java     |  6 +-
 .../translator/DataSetTranslatorTest.java     | 20 +++---
 .../GenericExperimentViewerTest.java          | 14 ++--
 .../sample/GenericSampleViewerTest.java       | 18 ++---
 .../systemtest/ExperimentBrowsingTest.java    |  4 +-
 .../plugin/generic/SampleBrowsingTest.java    |  8 +--
 .../plugin/generic/SampleDetailsTest.java     |  6 +-
 105 files changed, 540 insertions(+), 606 deletions(-)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/{IInvalidationBO.java => ITrashBO.java} (73%)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/{InvalidationBO.java => TrashBO.java} (60%)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/{IInvalidationDAO.java => IDeletionDAO.java} (73%)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/{InvalidationUtils.java => DeletionUtils.java} (66%)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/{IInvalidationProvider.java => IDeletionProvider.java} (82%)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/{Invalidation.java => Deletion.java} (88%)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/{InvalidationPE.java => DeletionPE.java} (85%)
 delete mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPlatesFilter.java
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/{InvalidationTranslator.java => DeletionTranslator.java} (51%)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataStrategyStore.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataStrategyStore.java
index 5a3ebc9e670..568dd4ee6d8 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataStrategyStore.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/DataStrategyStore.java
@@ -133,10 +133,9 @@ public final class DataStrategyStore implements IDataStrategyStore
                 error(emailOrNull, "Unknown experiment identifier '" + experimentIdentifier + "'.");
                 return dataStoreStrategies.get(DataStoreStrategyKey.UNIDENTIFIED);
             }
-            if (experiment.getInvalidation() != null)
+            if (experiment.getDeletion() != null)
             {
-                error(emailOrNull, "Experiment '" + experimentIdentifier
-                        + "' has been invalidated.");
+                error(emailOrNull, "Experiment '" + experimentIdentifier + "' has been deleted.");
                 return dataStoreStrategies.get(DataStoreStrategyKey.UNIDENTIFIED);
             }
             dataSetInfo.setExperiment(experiment);
@@ -154,10 +153,10 @@ public final class DataStrategyStore implements IDataStrategyStore
                 error(emailOrNull, String.format("Data set for sample '%s' can not be registered "
                         + "because the sample is not attached to an experiment.", sampleIdentifier));
                 return dataStoreStrategies.get(DataStoreStrategyKey.UNIDENTIFIED);
-            } else if (experiment.getInvalidation() != null)
+            } else if (experiment.getDeletion() != null)
             {
                 error(emailOrNull, String.format("Data set for sample '%s' can not be registered "
-                        + "because experiment '%s' has been invalidated.", sampleIdentifier,
+                        + "because experiment '%s' has been deleted.", sampleIdentifier,
                         experiment.getCode()));
                 return dataStoreStrategies.get(DataStoreStrategyKey.UNIDENTIFIED);
             }
@@ -182,14 +181,12 @@ public final class DataStrategyStore implements IDataStrategyStore
                             + "' has a blank email, sending the following email failed:\n"
                             + message);
                 }
-                operationLog
-                        .error(String
-                                .format("Incoming data set '%s' claims to "
-                                        + "belong to experiment '%s' and sample"
-                                        + " identifier '%s', but according to the openBIS server "
-                                        + "there is no such sample for this "
-                                        + "experiment (it has maybe been invalidated?). We thus consider it invalid.",
-                                        incomingDataSetPath, experimentIdentifier, sampleIdentifier));
+                operationLog.error(String.format("Incoming data set '%s' claims to "
+                        + "belong to experiment '%s' and sample"
+                        + " identifier '%s', but according to the openBIS server "
+                        + "there is no such sample for this "
+                        + "experiment (maybe it has been deleted?). We thus consider it invalid.",
+                        incomingDataSetPath, experimentIdentifier, sampleIdentifier));
                 return dataStoreStrategies.get(DataStoreStrategyKey.INVALID);
             }
             dataSetInfo.setProperties(properties);
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DataStrategyStoreTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DataStrategyStoreTest.java
index cb604e1793a..a120b8ad465 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DataStrategyStoreTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DataStrategyStoreTest.java
@@ -35,7 +35,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
@@ -247,7 +247,7 @@ public final class DataStrategyStoreTest extends AbstractFileSystemTestCase
         final File incomingDataSetPath = createIncomingDataSetPath();
         final DataSetInformation dataSetInfo = IdentifiedDataStrategyTest.createDataSetInfo();
         final Sample baseSample = createSampleWithExperiment();
-        baseSample.getExperiment().setInvalidation(new Invalidation());
+        baseSample.getExperiment().setDeletion(new Deletion());
         context.checking(new Expectations()
             {
                 {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
index 60f907d62e2..1581955c3a7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java
@@ -638,36 +638,36 @@ public interface ICommonClientService extends IClientService
      */
     public Date updateProject(ProjectUpdates updates) throws UserFailureException;
 
-    /** Deletes/Invalidates the specified data sets. */
+    /** Deletes/Trashes the specified data sets. */
     public void deleteDataSets(
             DisplayedOrSelectedDatasetCriteria displayedOrSelectedDatasetCriteria, String reason,
             DeletionType deletionType) throws UserFailureException;
 
-    /** Deletes/Invalidates the specified data set. */
+    /** Deletes/Trashes the specified data set. */
     public void deleteDataSet(String singleData, String reason, DeletionType deletionType)
             throws UserFailureException;
 
     /**
-     * Deletes/Invalidates the specified samples. NOTE: this is a stale version used only for
-     * samples with abundance.
+     * Deletes/Trashes the specified samples. NOTE: this is a stale version used only for samples
+     * with abundance.
      */
     public void deleteSamples(List<TechId> sampleIds, String reason, DeletionType deletionType)
             throws UserFailureException;
 
-    /** Deletes/Invalidates the specified samples. */
+    /** Deletes/Trashes the specified samples. */
     public void deleteSamples(DisplayedOrSelectedIdHolderCriteria<? extends IIdHolder> criteria,
             String reason, DeletionType deletionType) throws UserFailureException;
 
-    /** Deletes/Invalidates the specified sample. */
+    /** Deletes/Trashes the specified sample. */
     public void deleteSample(TechId sampleId, String reason, DeletionType deletionType)
             throws UserFailureException;
 
-    /** Deletes/Invalidates the specified experiments. */
+    /** Deletes/Trashes the specified experiments. */
     public void deleteExperiments(
             DisplayedOrSelectedIdHolderCriteria<TableModelRowWithObject<Experiment>> criteria,
             String reason, DeletionType deletionType) throws UserFailureException;
 
-    /** Deletes/Invalidates the specified experiment. */
+    /** Deletes/Trashes the specified experiment. */
     public void deleteExperiment(TechId experimentId, String reason, DeletionType deletionType)
             throws UserFailureException;
 
@@ -997,14 +997,16 @@ public interface ICommonClientService extends IClientService
     /**
      * Returns {@link GridCustomColumn}s for given grid and display criteria.
      */
-    public TypedTableResultSet<GridCustomColumn> listGridCustomColumns(String gridId,
+    public TypedTableResultSet<GridCustomColumn> listGridCustomColumns(
+            String gridId,
             DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomColumn>> resultSetConfig)
             throws UserFailureException;
 
     /**
      * Like {@link #prepareExportSamples(TableExportCriteria)}, but for custom grid filters.
      */
-    public String prepareExportColumns(final TableExportCriteria<TableModelRowWithObject<GridCustomColumn>> criteria)
+    public String prepareExportColumns(
+            final TableExportCriteria<TableModelRowWithObject<GridCustomColumn>> criteria)
             throws UserFailureException;
 
     /**
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
index 5e2354075fc..5fd727d1a8d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
@@ -250,7 +250,7 @@ public abstract class Dict
 
     public static final String IS_INSTANCE_SAMPLE = "is_instance_sample";
 
-    public static final String IS_INVALID = "is_invalid";
+    public static final String IS_DELETED = "is_deleted";
 
     public static final String GROUP = "group";
 
@@ -486,11 +486,11 @@ public abstract class Dict
     // Deletion
     //
 
-    public static final String INVALIDATE = "invalidate";
+    public static final String DELETE = "delete";
 
-    public static final String INVALIDATION = "invalidation";
+    public static final String DELETION = "deletion";
 
-    public static final String INVALIDATION_TEMPLATE = "invalidation_template";
+    public static final String DELETION_TEMPLATE = "deletion_template";
 
     public static final String PERMANENT = "permanent";
 
@@ -503,11 +503,12 @@ public abstract class Dict
 
     public static final String DELETING_PERMANENTLY = "deleting_permanently";
 
-    public static final String INVALIDATING = "invalidating";
+    public static final String DELETING = "deleting";
 
-    public static final String DELETE_PROGRESS_MESSAGE = "delete_progress_message";
+    public static final String DELETE_PERMANENTLY_PROGRESS_MESSAGE =
+            "delete_permanently_progress_message";
 
-    public static final String INVALIDATE_PROGRESS_MESSAGE = "invalidate_progress_message";
+    public static final String DELETE_PROGRESS_MESSAGE = "delete_progress_message";
 
     //
     // Sample Viewer
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ProjectViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ProjectViewer.java
index 33a7a00567d..7399b07b012 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ProjectViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ProjectViewer.java
@@ -87,7 +87,7 @@ public final class ProjectViewer extends AbstractViewer<IEntityInformationHolder
                 public void execute()
                 {
                     new ProjectListDeletionConfirmationDialog(viewContext, originalProject,
-                            createDeletionCallback()).show();
+                            createPermanentDeletionCallback()).show();
                 }
             }));
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java
index ea83a4182d7..71c76816a70 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java
@@ -34,8 +34,8 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.Co
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider;
 import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IDeletionProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.PrimitiveValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractRegistrationHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
@@ -122,11 +122,11 @@ public class BaseEntityModel<T> extends SimplifiedBaseModelData
                     value = PersonRenderer.createPersonAnchor(registrator, value);
                 }
             } else if (headerMsgKey.equals(Dict.CODE)
-                    && originalRecord instanceof IInvalidationProvider
+                    && originalRecord instanceof IDeletionProvider
                     && column instanceof AbstractColumnDefinition<?>)
             {
                 String linkHref = ((AbstractColumnDefinition<T>) column).tryGetLink(originalRecord);
-                boolean invalidate = InvalidationUtils.isInvalid(originalRecord);
+                boolean invalidate = DeletionUtils.isDeleted(originalRecord);
                 value = LinkRenderer.getLinkWidget(value, null, linkHref, invalidate).toString();
             }
         }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java
index fb029398610..02251cff289 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java
@@ -55,7 +55,7 @@ public class LinkRenderer
     private static final String LINK_STYLE = "link-style";
 
     /**
-     * @deprecated doesn't support invalidation; use {@link #createLinkRenderer(boolean, int)}
+     * @deprecated doesn't support deletion; use {@link #createLinkRenderer(boolean, int)}
      */
     @Deprecated
     public static GridCellRenderer<BaseEntityModel<?>> createLinkRenderer()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java
index 2064432ce27..117d58165e1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java
@@ -55,12 +55,12 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.ICodeHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithProperties;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityVisit;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
@@ -261,12 +261,12 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends
     {
         return originalData.getEntityKind().getDescription() + " " + originalData.getCode() + " ["
                 + originalData.getEntityType().getCode() + "]"
-                + (isInvalid() ? " <b>(invalid)</b>" : "");
+                + (isDeleted() ? " <b>(moved to trash)</b>" : "");
     }
 
-    protected final boolean isInvalid()
+    protected final boolean isDeleted()
     {
-        return InvalidationUtils.isInvalid(originalData);
+        return DeletionUtils.isDeleted(originalData);
     }
 
     protected final static BorderLayoutData createBorderLayoutData(LayoutRegion region)
@@ -274,12 +274,12 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends
         return BorderLayoutDataFactory.create(region);
     }
 
-    protected final AbstractAsyncCallback<Void> createDeletionCallback()
+    protected final AbstractAsyncCallback<Void> createPermanentDeletionCallback()
     {
         return new CloseViewerCallback(viewContext);
     }
 
-    protected final AbstractAsyncCallback<Void> createInvalidationCallback()
+    protected final AbstractAsyncCallback<Void> createDeletionCallback()
     {
         return new RefreshViewerCallback(viewContext);
     }
@@ -390,7 +390,7 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends
         ClickHandler listener = new OpenEntityDetailsTabClickListener(entity, viewContext);
         Widget link =
                 LinkRenderer.getLinkWidget(entity.getCode(), listener, href,
-                        InvalidationUtils.isInvalid(entity));
+                        DeletionUtils.isDeleted(entity));
         link.setTitle(entity.getEntityKind().getDescription() + " " + entity.getCode());
         return link;
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java
index 3c215066458..7921650f2e0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java
@@ -43,7 +43,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.lang.
 import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
@@ -52,7 +52,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
@@ -130,12 +130,12 @@ public final class PropertyValueRenderers
     }
 
     /**
-     * Creates a {@link IPropertyValueRenderer} implementation for rendering {@link Invalidation}.
+     * Creates a {@link IPropertyValueRenderer} implementation for rendering {@link Deletion}.
      */
-    public final static IPropertyValueRenderer<Invalidation> createInvalidationPropertyValueRenderer(
+    public final static IPropertyValueRenderer<Deletion> createDeletionPropertyValueRenderer(
             final IMessageProvider messageProvider)
     {
-        return new InvalidationPropertyValueRenderer(messageProvider);
+        return new DeletionPropertyValueRenderer(messageProvider);
     }
 
     /**
@@ -211,15 +211,15 @@ public final class PropertyValueRenderers
     }
 
     /**
-     * Renderer for {@link Invalidation}.
+     * Renderer for {@link Deletion}.
      * 
      * @author Christian Ribeaud
      */
-    private final static class InvalidationPropertyValueRenderer extends
-            AbstractSimplePropertyValueRenderer<Invalidation>
+    private final static class DeletionPropertyValueRenderer extends
+            AbstractSimplePropertyValueRenderer<Deletion>
     {
 
-        InvalidationPropertyValueRenderer(final IMessageProvider messageProvider)
+        DeletionPropertyValueRenderer(final IMessageProvider messageProvider)
         {
             super(messageProvider);
         }
@@ -238,13 +238,13 @@ public final class PropertyValueRenderers
         //
 
         @Override
-        public final String renderNotNull(final Invalidation invalidation)
+        public final String renderNotNull(final Deletion deletion)
         {
             return getMessageProvider().getMessage(
-                    Dict.INVALIDATION_TEMPLATE,
-                    rendererPerson(invalidation.getRegistrator()),
-                    DateRenderer.renderDate(invalidation.getRegistrationDate(),
-                            BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN), invalidation.getReason());
+                    Dict.DELETION_TEMPLATE,
+                    rendererPerson(deletion.getRegistrator()),
+                    DateRenderer.renderDate(deletion.getRegistrationDate(),
+                            BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN), deletion.getReason());
         }
     }
 
@@ -428,7 +428,7 @@ public final class PropertyValueRenderers
         public FlowPanel getAsWidget(final T entity)
         {
             final String displayText = getDisplayText(entity);
-            final boolean invalidate = InvalidationUtils.isInvalid(entity);
+            final boolean invalidate = DeletionUtils.isDeleted(entity);
             final ClickHandler listener =
                     new OpenEntityDetailsTabClickListener(entity, viewContext);
             String href = LinkExtractor.tryExtract(entity);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java
index 807c77aa624..43fbad13c3e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java
@@ -17,8 +17,8 @@
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IDeletionProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleDateRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.SimplePersonRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleYesNoRenderer;
@@ -141,9 +141,9 @@ public abstract class AbstractColumnDefinitionKind<T>
         return SimplePersonRenderer.createPersonName(person).toString();
     }
 
-    protected final String renderInvalidationFlag(final IInvalidationProvider invalidationProvider)
+    protected final String renderDeletionFlag(final IDeletionProvider deletionProvider)
     {
-        return SimpleYesNoRenderer.render(InvalidationUtils.isInvalid(invalidationProvider));
+        return SimpleYesNoRenderer.render(DeletionUtils.isDeleted(deletionProvider));
     }
 
     /** to be overriden by subclasses */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java
index 689ef70caf2..0022d43d079 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java
@@ -209,12 +209,12 @@ public enum CommonExternalDataColDefKind implements IColumnDefinitionKind<Extern
             }
         }),
 
-    IS_INVALID(new AbstractColumnDefinitionKind<ExternalData>(Dict.IS_INVALID, true)
+    IS_DELETED(new AbstractColumnDefinitionKind<ExternalData>(Dict.IS_DELETED, true)
         {
             @Override
             public String tryGetValue(ExternalData entity)
             {
-                return renderInvalidationFlag(entity);
+                return renderDeletionFlag(entity);
             }
         }),
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/experiment/CommonExperimentColDefKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/experiment/CommonExperimentColDefKind.java
index 3927a25c4ef..3157d173e19 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/experiment/CommonExperimentColDefKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/experiment/CommonExperimentColDefKind.java
@@ -121,12 +121,12 @@ public enum CommonExperimentColDefKind implements IColumnDefinitionKind<Experime
             }
         }),
 
-    IS_INVALID(new AbstractColumnDefinitionKind<Experiment>(Dict.IS_INVALID, true)
+    IS_DELETED(new AbstractColumnDefinitionKind<Experiment>(Dict.IS_DELETED, true)
         {
             @Override
             public String tryGetValue(Experiment entity)
             {
-                return renderInvalidationFlag(entity);
+                return renderDeletionFlag(entity);
             }
         }),
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java
index 59e09ffbd1d..de222e65b2f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java
@@ -29,7 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.Ab
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListDeletionConfirmationDialog;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedDatasetCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
@@ -50,7 +50,7 @@ public final class DataSetListDeletionConfirmationDialog extends
             SelectedAndDisplayedItems selectedAndDisplayedItems)
     {
         super(viewContext, selectedAndDisplayedItems.getSelectedItems(), callback);
-        this.withInvalidation();
+        this.withDeletion();
         this.withRadio();
         this.viewContext = viewContext;
         this.singleData = null;
@@ -59,13 +59,13 @@ public final class DataSetListDeletionConfirmationDialog extends
 
     public DataSetListDeletionConfirmationDialog(
             IViewContext<ICommonClientServiceAsync> viewContext,
-            AbstractAsyncCallback<Void> deletionCallback,
-            AbstractAsyncCallback<Void> invalidationCallback, ExternalData data)
+            AbstractAsyncCallback<Void> permanentDeletionCallback,
+            AbstractAsyncCallback<Void> deletionCallback, ExternalData data)
     {
-        super(viewContext, Collections.singletonList(data), deletionCallback);
-        if (InvalidationUtils.isInvalid(data) == false)
+        super(viewContext, Collections.singletonList(data), permanentDeletionCallback);
+        if (DeletionUtils.isDeleted(data) == false)
         {
-            this.withInvalidation(invalidationCallback);
+            this.withDeletion(deletionCallback);
         }
         this.viewContext = viewContext;
         this.singleData = data;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java
index f8ac9e658d3..ecd4d69746d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java
@@ -29,7 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experim
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListDeletionConfirmationDialog;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedIdHolderCriteria;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
@@ -52,7 +52,7 @@ public final class ExperimentListDeletionConfirmationDialog extends
             DisplayedAndSelectedExperiments selectedAndDisplayedItems)
     {
         super(viewContext, selectedAndDisplayedItems.getExperiments(), callback);
-        this.withInvalidation();
+        this.withDeletion();
         this.withRadio();
         this.viewContext = viewContext;
         this.singleDataOrNull = null;
@@ -61,13 +61,13 @@ public final class ExperimentListDeletionConfirmationDialog extends
 
     public ExperimentListDeletionConfirmationDialog(
             IViewContext<ICommonClientServiceAsync> viewContext,
-            AbstractAsyncCallback<Void> deletionCallback,
-            AbstractAsyncCallback<Void> invalidationCallback, Experiment experiment)
+            AbstractAsyncCallback<Void> permanentDeletionCallback,
+            AbstractAsyncCallback<Void> deletionCallback, Experiment experiment)
     {
-        super(viewContext, Collections.singletonList(experiment), deletionCallback);
-        if (InvalidationUtils.isInvalid(experiment) == false)
+        super(viewContext, Collections.singletonList(experiment), permanentDeletionCallback);
+        if (DeletionUtils.isDeleted(experiment) == false)
         {
-            this.withInvalidation(invalidationCallback);
+            this.withDeletion(deletionCallback);
         }
         this.viewContext = viewContext;
         this.singleDataOrNull = experiment;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
index a3e4ef22aff..80a54771a85 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
@@ -1689,7 +1689,7 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
     @SuppressWarnings("deprecation")
     protected GridCellRenderer<BaseEntityModel<?>> createInternalLinkCellRenderer()
     {
-        // NOTE: this renderer doesn't support special rendering of invalidated entities
+        // NOTE: this renderer doesn't support special rendering of deleted entities
         return LinkRenderer.createLinkRenderer();
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java
index f63c62069dc..281ccbd9fab 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java
@@ -34,7 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ManagedEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
@@ -81,8 +81,8 @@ public final class PropertyGrid extends Grid
                 PropertyValueRenderers.createPersonPropertyValueRenderer(messageProvider));
 
         // Entities
-        registerPropertyValueRenderer(Invalidation.class,
-                PropertyValueRenderers.createInvalidationPropertyValueRenderer(messageProvider));
+        registerPropertyValueRenderer(Deletion.class,
+                PropertyValueRenderers.createDeletionPropertyValueRenderer(messageProvider));
 
         registerPropertyValueRenderer(ContainerDataSet.class,
                 PropertyValueRenderers.createExternalDataPropertyValueRenderer(viewContext));
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java
index 3b2aac533eb..9d5aacb4357 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java
@@ -30,8 +30,8 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.Display
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListDeletionConfirmationDialog;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedIdHolderCriteria;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
@@ -52,7 +52,7 @@ public final class SampleListDeletionConfirmationDialog<T extends IIdHolder> ext
             DisplayedAndSelectedEntities<T> selectedAndDisplayedItems)
     {
         super(viewContext, data, callback);
-        this.withInvalidation();
+        this.withDeletion();
         this.withRadio();
         this.viewContext = viewContext;
         this.singleDataOrNull = null;
@@ -61,13 +61,13 @@ public final class SampleListDeletionConfirmationDialog<T extends IIdHolder> ext
 
     public SampleListDeletionConfirmationDialog(
             IViewContext<ICommonClientServiceAsync> viewContext, List<T> data,
-            AbstractAsyncCallback<Void> deletionCallback,
-            AbstractAsyncCallback<Void> invalidationCallback, T sample)
+            AbstractAsyncCallback<Void> permanentDeletionCallback,
+            AbstractAsyncCallback<Void> deletionCallback, T sample)
     {
-        super(viewContext, data, deletionCallback);
-        if (InvalidationUtils.isInvalid(sample) == false)
+        super(viewContext, data, permanentDeletionCallback);
+        if (DeletionUtils.isDeleted(sample) == false)
         {
-            this.withInvalidation(invalidationCallback);
+            this.withDeletion(deletionCallback);
         }
         this.viewContext = viewContext;
         this.singleDataOrNull = sample;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java
index 3804f9ad418..e7cf6724ce7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java
@@ -54,13 +54,13 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends
 
     private final IViewContext<?> viewContext;
 
-    private final AbstractAsyncCallback<Void> deletionCallback;
+    private final AbstractAsyncCallback<Void> permanentDeletionCallback;
 
     private boolean withRadio = false;
 
-    private boolean withInvalidationOption = false;
+    private boolean withDeletionOption = false;
 
-    private AbstractAsyncCallback<Void> invalidationCallbackOrNull;
+    private AbstractAsyncCallback<Void> deletionCallbackOrNull;
 
     protected Radio onlySelectedRadioOrNull;
 
@@ -69,11 +69,11 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends
     protected ReasonField reason;
 
     public AbstractDataListDeletionConfirmationDialog(IViewContext<?> viewContext, List<T> data,
-            AbstractAsyncCallback<Void> deletionCallback)
+            AbstractAsyncCallback<Void> permanentDeletionCallback)
     {
         super(viewContext, data, viewContext.getMessage(Dict.DELETE_CONFIRMATION_TITLE));
         this.viewContext = viewContext;
-        this.deletionCallback = deletionCallback;
+        this.permanentDeletionCallback = permanentDeletionCallback;
     }
 
     // optional initialization
@@ -84,19 +84,22 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends
         this.withRadio = true;
     }
 
-    /** adds invalidation option to the dialog with the same callback as the one used for deletion */
-    protected void withInvalidation()
+    /**
+     * adds deletion option to the dialog with the same callback as the one used for permanent
+     * deletion
+     */
+    protected void withDeletion()
     {
-        withInvalidation(deletionCallback);
+        withDeletion(permanentDeletionCallback);
     }
 
-    /** adds invalidation option to the dialog with fiven callback */
-    protected void withInvalidation(AbstractAsyncCallback<Void> invalidationCallback)
+    /** adds deletion option to the dialog with fiven callback */
+    protected void withDeletion(AbstractAsyncCallback<Void> deletionCallback)
     {
-        if (getWebClientConfiguration().getEnableInvalidation())
+        if (getWebClientConfiguration().getEnableTrash())
         {
-            this.withInvalidationOption = true;
-            this.invalidationCallbackOrNull = invalidationCallback;
+            this.withDeletionOption = true;
+            this.deletionCallbackOrNull = deletionCallback;
         }
     }
 
@@ -116,7 +119,7 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends
         reason = new ReasonField(messageProvider, true);
         reason.focus();
         reason.addKeyListener(keyListener);
-        if (withInvalidationOption)
+        if (withDeletionOption)
         {
             formPanel.add(permanentCheckBoxOrNull = createDeletePermanentlyCheckBox());
         }
@@ -141,7 +144,7 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends
         }
         final String operationName =
                 messageProvider.getMessage(isPermanentDeletion() ? Dict.DELETING_PERMANENTLY
-                        : Dict.INVALIDATING);
+                        : Dict.DELETING);
         return messageProvider.getMessage(Dict.DELETE_CONFIRMATION_MESSAGE_WITH_REASON_TEMPLATE,
                 operationName, deletedObjects);
     }
@@ -191,24 +194,24 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends
 
     protected final DeletionType getDeletionType()
     {
-        return isPermanentDeletion() ? DeletionType.PERMANENT : DeletionType.INVALIDATION;
+        return isPermanentDeletion() ? DeletionType.PERMANENT : DeletionType.TRASH;
     }
 
     /**
-     * Returns deletion/invalidation callback and shows a progress bar that will be hidden when the
-     * callback is finished.
+     * Returns deletion callback and shows a progress bar that will be hidden when the callback is
+     * finished.
      */
     private AsyncCallback<Void> getCallbackWithProgressBar()
     {
         if (isPermanentDeletion())
         {
-            return AsyncCallbackWithProgressBar.decorate(deletionCallback,
-                    messageProvider.getMessage(Dict.DELETE_PROGRESS_MESSAGE, getEntityName()));
+            return AsyncCallbackWithProgressBar.decorate(permanentDeletionCallback, messageProvider
+                    .getMessage(Dict.DELETE_PERMANENTLY_PROGRESS_MESSAGE, getEntityName()));
         } else
         {
-            assert invalidationCallbackOrNull != null;
-            return AsyncCallbackWithProgressBar.decorate(invalidationCallbackOrNull,
-                    messageProvider.getMessage(Dict.INVALIDATE_PROGRESS_MESSAGE, getEntityName()));
+            assert deletionCallbackOrNull != null;
+            return AsyncCallbackWithProgressBar.decorate(deletionCallbackOrNull,
+                    messageProvider.getMessage(Dict.DELETE_PROGRESS_MESSAGE, getEntityName()));
         }
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java
index 2fc01086075..f93ed150e75 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java
@@ -95,7 +95,7 @@ public class FieldUtil
         field.syncSize();
         if (visible == false)
         {
-            // invalidation mark is not removed automatically when we make field invisible
+            // deletion mark is not removed automatically when we make field invisible
             field.clearInvalid();
         } else if (field.isDirty())
         {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java
index c8430dd129e..722385d300f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java
@@ -201,7 +201,7 @@ public class HistoryWidget extends ContentPanel
                                             WidgetUtils.ifSpecialKeyPressed(event.getNativeEvent()));
                                 }
                             };
-                        // TODO 2011-06-17, Piotr Buczek: invalidation (requires request to server)
+                        // TODO 2011-06-17, Piotr Buczek: deletion (requires request to server)
                         final Widget link = LinkRenderer.getLinkWidget(displayText, listener, href);
                         final String date =
                                 DateRenderer.renderDate(new Date(visit.getTimeStamp()),
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java
index f2a56c6d07a..74e4bdba1aa 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java
@@ -18,21 +18,31 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.dto;
 
 /**
  * Column IDs for experiment browser grid.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public class ExperimentBrowserGridColumnIDs
 {
-    public static final String CODE  = "CODE";
-    public static final String EXPERIMENT_TYPE  = "EXPERIMENT_TYPE";
-    public static final String EXPERIMENT_IDENTIFIER  = "EXPERIMENT_IDENTIFIER";
-    public static final String DATABASE_INSTANCE  = "DATABASE_INSTANCE";
-    public static final String SPACE  = "SPACE";
-    public static final String PROJECT  = "PROJECT";
-    public static final String REGISTRATOR  = "REGISTRATOR";
-    public static final String REGISTRATION_DATE  = "REGISTRATION_DATE";
-    public static final String IS_INVALID  = "IS_INVALID";
-    public static final String PERM_ID  = "PERM_ID";
+    public static final String CODE = "CODE";
+
+    public static final String EXPERIMENT_TYPE = "EXPERIMENT_TYPE";
+
+    public static final String EXPERIMENT_IDENTIFIER = "EXPERIMENT_IDENTIFIER";
+
+    public static final String DATABASE_INSTANCE = "DATABASE_INSTANCE";
+
+    public static final String SPACE = "SPACE";
+
+    public static final String PROJECT = "PROJECT";
+
+    public static final String REGISTRATOR = "REGISTRATOR";
+
+    public static final String REGISTRATION_DATE = "REGISTRATION_DATE";
+
+    public static final String IS_DELETED = "IS_DELETED";
+
+    public static final String PERM_ID = "PERM_ID";
+
     public static final String SHOW_DETAILS_LINK = "SHOW_DETAILS_LINK";
 
     public static final String PROPERTIES_PREFIX = "property-";
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleGridColumnIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleGridColumnIDs.java
index 959b93f5084..83a763fa5a6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleGridColumnIDs.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleGridColumnIDs.java
@@ -18,20 +18,19 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.dto;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleBrowserGrid;
 
-
 /**
  * IDs of static columns of {@link SampleBrowserGrid}.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public class SampleGridColumnIDs
 {
     public static final String CODE = "CODE";
-    
+
     public static final String SUBCODE = "SUBCODE";
 
     public static final String SPACE = "SPACE";
-    
+
     public static final String REGISTRATOR = "REGISTRATOR";
 
     public static final String REGISTRATION_DATE = "REGISTRATION_DATE";
@@ -41,25 +40,24 @@ public class SampleGridColumnIDs
     public static final String DATABASE_INSTANCE = "DATABASE_INSTANCE";
 
     public static final String SAMPLE_IDENTIFIER = "SAMPLE_IDENTIFIER";
-    
+
     public static final String IS_INSTANCE_SAMPLE = "IS_INSTANCE_SAMPLE";
-    
-    public static final String IS_INVALID = "IS_INVALID";
-    
+
+    public static final String IS_DELETED = "IS_DELETED";
+
     public static final String EXPERIMENT = "EXPERIMENT";
-    
+
     public static final String EXPERIMENT_IDENTIFIER = "EXPERIMENT_IDENTIFIER";
-    
+
     public static final String PROJECT = "PROJECT";
-    
+
     public static final String PERM_ID = "PERM_ID";
-    
+
     public static final String SHOW_DETAILS_LINK_COLUMN_NAME = "SHOW_DETAILS_LINK";
-    
+
     public static final String PARENTS = "generatedFromParent";
-    
+
     public static final String CONTAINER_SAMPLE = "containerParent";
 
     public static final String PROPERTIES_PREFIX = "property-";
 }
-
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java
index 4f48ff35be2..3ba3e55856c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java
@@ -72,11 +72,11 @@ public class WebClientConfigurationProvider
 
     private static final String ALLOW_ADDING_UNOFFICIAL_TERMS = "allow-adding-unofficial-terms";
 
-    private static final String ENABLE_INVALIDATION = "enable-invalidation";
+    private static final String ENABLE_TRASH = "enable-trash";
 
     private static final boolean DEFAULT_ALLOW_ADDING_UNOFFICIAL_TERMS = false;
 
-    private static final boolean DEFAULT_ENABLE_INVALIDATION = false;
+    private static final boolean DEFAULT_ENABLE_TRASH = false;
 
     static final String TECHNOLOGIES = "technologies";
 
@@ -105,7 +105,7 @@ public class WebClientConfigurationProvider
         webClientConfiguration.setMaxVisibleColumns(DEFAULT_MAX_VISIBLE_COLUMNS);
         webClientConfiguration.setMaxEntityVisits(DEFAULT_MAX_ENTITY_VISITS);
         webClientConfiguration.setAllowAddingUnofficialTerms(DEFAULT_ALLOW_ADDING_UNOFFICIAL_TERMS);
-        webClientConfiguration.setEnableInvalidation(DEFAULT_ENABLE_INVALIDATION);
+        webClientConfiguration.setEnableTrash(DEFAULT_ENABLE_TRASH);
     }
 
     private void init(Properties properties)
@@ -115,7 +115,7 @@ public class WebClientConfigurationProvider
         webClientConfiguration.setMaxVisibleColumns(extractMaxVisibleColumns(properties));
         webClientConfiguration
                 .setAllowAddingUnofficialTerms(extractAllowAddingUnofficialTerms(properties));
-        webClientConfiguration.setEnableInvalidation(extractEnableInvalidation(properties));
+        webClientConfiguration.setEnableTrash(extractEnableTrash(properties));
         webClientConfiguration.setMaxEntityVisits(PropertyUtils.getInt(properties,
                 MAX_ENTITY_VISITS, DEFAULT_MAX_ENTITY_VISITS));
         webClientConfiguration
@@ -227,10 +227,9 @@ public class WebClientConfigurationProvider
                 DEFAULT_ALLOW_ADDING_UNOFFICIAL_TERMS);
     }
 
-    private boolean extractEnableInvalidation(Properties properties)
+    private boolean extractEnableTrash(Properties properties)
     {
-        return PropertyUtils.getBoolean(properties, ENABLE_INVALIDATION,
-                DEFAULT_ENABLE_INVALIDATION);
+        return PropertyUtils.getBoolean(properties, ENABLE_TRASH, DEFAULT_ENABLE_TRASH);
     }
 
     public WebClientConfiguration getWebClientConfiguration()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java
index db356b6d368..735538589e8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java
@@ -20,7 +20,7 @@ import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentB
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.DATABASE_INSTANCE;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.EXPERIMENT_IDENTIFIER;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.EXPERIMENT_TYPE;
-import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.IS_INVALID;
+import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.IS_DELETED;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.PERM_ID;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.PROJECT;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.REGISTRATION_DATE;
@@ -35,7 +35,7 @@ import ch.systemsx.cisd.common.collections.TableMap;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListExperimentsCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleYesNoRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
@@ -87,7 +87,7 @@ public class ExperimentProvider extends AbstractCommonTableModelProvider<Experim
         builder.addColumn(PROJECT).hideByDefault();
         builder.addColumn(REGISTRATOR);
         builder.addColumn(REGISTRATION_DATE).withDefaultWidth(200);
-        builder.addColumn(IS_INVALID).hideByDefault();
+        builder.addColumn(IS_DELETED).hideByDefault();
         builder.addColumn(PERM_ID).hideByDefault();
         builder.addColumn(SHOW_DETAILS_LINK).hideByDefault();
         TableMap<String, ExperimentType> experimentTypes = getExperimentTypes();
@@ -104,8 +104,8 @@ public class ExperimentProvider extends AbstractCommonTableModelProvider<Experim
             builder.column(PROJECT).addString(experiment.getProject().getCode());
             builder.column(REGISTRATOR).addPerson(experiment.getRegistrator());
             builder.column(REGISTRATION_DATE).addDate(experiment.getRegistrationDate());
-            builder.column(IS_INVALID).addString(
-                    SimpleYesNoRenderer.render(InvalidationUtils.isInvalid(experiment)));
+            builder.column(IS_DELETED).addString(
+                    SimpleYesNoRenderer.render(DeletionUtils.isDeleted(experiment)));
             builder.column(PERM_ID).addString(experiment.getPermId());
             builder.column(SHOW_DETAILS_LINK).addString(experiment.getPermlink());
             ExperimentType experimentType =
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProvider.java
index a09bf9132ea..d94d1011679 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProvider.java
@@ -21,8 +21,8 @@ import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridC
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.DATABASE_INSTANCE;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.EXPERIMENT;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.EXPERIMENT_IDENTIFIER;
+import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.IS_DELETED;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.IS_INSTANCE_SAMPLE;
-import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.IS_INVALID;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.PARENTS;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.PERM_ID;
 import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs.PROJECT;
@@ -42,7 +42,7 @@ import ch.systemsx.cisd.common.collections.IKeyExtractor;
 import ch.systemsx.cisd.common.collections.TableMap;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListSampleDisplayCriteria2;
 import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleYesNoRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
@@ -82,7 +82,7 @@ public class SampleProvider extends AbstractCommonTableModelProvider<Sample>
         builder.addColumn(SAMPLE_IDENTIFIER).withDefaultWidth(150).hideByDefault();
         builder.addColumn(SAMPLE_TYPE).withDefaultWidth(150).hideByDefault();
         builder.addColumn(IS_INSTANCE_SAMPLE).hideByDefault();
-        builder.addColumn(IS_INVALID).hideByDefault();
+        builder.addColumn(IS_DELETED).hideByDefault();
         builder.addColumn(REGISTRATOR).withDefaultWidth(200);
         builder.addColumn(REGISTRATION_DATE).withDefaultWidth(300).hideByDefault();
         builder.addColumn(EXPERIMENT);
@@ -105,8 +105,8 @@ public class SampleProvider extends AbstractCommonTableModelProvider<Sample>
             builder.column(SAMPLE_TYPE).addString(sample.getSampleType().getCode());
             builder.column(IS_INSTANCE_SAMPLE).addString(
                     SimpleYesNoRenderer.render(sample.getDatabaseInstance() != null));
-            builder.column(IS_INVALID).addString(
-                    SimpleYesNoRenderer.render(InvalidationUtils.isInvalid(sample)));
+            builder.column(IS_DELETED).addString(
+                    SimpleYesNoRenderer.render(DeletionUtils.isDeleted(sample)));
             builder.column(REGISTRATOR).addPerson(sample.getRegistrator());
             builder.column(REGISTRATION_DATE).addDate(sample.getRegistrationDate());
             final Experiment experimentOrNull = sample.getExperiment();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java
index 7daab474649..517874a56a1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java
@@ -40,7 +40,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IGridCustomFilterOrColumnBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IGroupBO;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.IInvalidationBO;
+import ch.systemsx.cisd.openbis.generic.server.business.bo.ITrashBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IProjectBO;
@@ -52,7 +52,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IScriptBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IVocabularyBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IVocabularyTermBO;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.InvalidationBO;
+import ch.systemsx.cisd.openbis.generic.server.business.bo.TrashBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.MaterialBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.MaterialTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ProjectBO;
@@ -214,8 +214,8 @@ public final class CommonBusinessObjectFactory extends AbstractBusinessObjectFac
         return new GridCustomColumnBO(getDaoFactory(), session);
     }
 
-    public IInvalidationBO createInvalidationBO(Session session)
+    public ITrashBO createTrashBO(Session session)
     {
-        return new InvalidationBO(getDaoFactory(), session, this);
+        return new TrashBO(getDaoFactory(), session, this);
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
index b998c87e040..91f8738751d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
@@ -50,7 +50,6 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IGridCustomFilterOrColumnBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IGroupBO;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.IInvalidationBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IProjectBO;
@@ -60,6 +59,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.IRoleAssignmentTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IScriptBO;
+import ch.systemsx.cisd.openbis.generic.server.business.bo.ITrashBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IVocabularyBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IVocabularyTermBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.MaterialUpdateDTO;
@@ -1147,7 +1147,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt
         try
         {
             IDataSetTable dataSetTable = businessObjectFactory.createDataSetTable(session);
-            // TODO 2011-06-21, Piotr Buczek: loading less for invalidation would probably be faster
+            // TODO 2011-06-21, Piotr Buczek: loading less for deletion would probably be faster
             dataSetTable.loadByDataSetCodes(dataSetCodes, false, false);
             List<DataPE> dataSets = dataSetTable.getDataSets();
             Map<DataSetTypePE, List<DataPE>> groupedDataSets =
@@ -1187,11 +1187,10 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt
                     ISampleTable sampleTableBO = businessObjectFactory.createSampleTable(session);
                     sampleTableBO.deleteByTechIds(sampleIds, reason);
                     break;
-                case INVALIDATION:
-                    IInvalidationBO invalidationBO =
-                            businessObjectFactory.createInvalidationBO(session);
-                    invalidationBO.createInvalidation(reason);
-                    invalidationBO.invalidateSamples(sampleIds);
+                case TRASH:
+                    ITrashBO trashBO = businessObjectFactory.createTrashBO(session);
+                    trashBO.createDeletion(reason);
+                    trashBO.trashSamples(sampleIds);
                     break;
             }
         } catch (final DataAccessException ex)
@@ -1212,11 +1211,10 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt
                 case PERMANENT:
                     experimentBO.deleteByTechIds(experimentIds, reason);
                     break;
-                case INVALIDATION:
-                    IInvalidationBO invalidationBO =
-                            businessObjectFactory.createInvalidationBO(session);
-                    invalidationBO.createInvalidation(reason);
-                    invalidationBO.invalidateExperiments(experimentIds);
+                case TRASH:
+                    ITrashBO trashBO = businessObjectFactory.createTrashBO(session);
+                    trashBO.createDeletion(reason);
+                    trashBO.trashExperiments(experimentIds);
                     break;
             }
         } catch (final DataAccessException ex)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
index 9fe5a4ea6f0..76781234873 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
@@ -1044,10 +1044,10 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements
         {
             throw new UserFailureException("No experiment found for sample " + sampleIdentifier);
         }
-        if (experiment.getInvalidation() != null)
+        if (experiment.getDeletion() != null)
         {
             throw new UserFailureException("Data set can not be registered because experiment '"
-                    + experiment.getIdentifier() + "' is invalid.");
+                    + experiment.getIdentifier() + "' is in trash.");
         }
 
         final IDataBO dataBO = businessObjectFactory.createDataBO(session);
@@ -1386,10 +1386,10 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements
         {
             throw new UserFailureException("No experiment found for sample " + sampleIdentifier);
         }
-        if (experiment.getInvalidation() != null)
+        if (experiment.getDeletion() != null)
         {
             throw new UserFailureException("Data set can not be registered because experiment '"
-                    + experiment.getIdentifier() + "' is invalid.");
+                    + experiment.getIdentifier() + "' is in trash.");
         }
         final ISampleBO sampleBO = businessObjectFactory.createSampleBO(session);
         sampleBO.loadBySampleIdentifier(sampleIdentifier);
@@ -1416,10 +1416,10 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements
             ExperimentIdentifier experimentIdentifier, NewExternalData externalData)
     {
         ExperimentPE experiment = tryToLoadExperimentByIdentifier(session, experimentIdentifier);
-        if (experiment.getInvalidation() != null)
+        if (experiment.getDeletion() != null)
         {
             throw new UserFailureException("Data set can not be registered because experiment '"
-                    + experiment.getIdentifier() + "' is invalid.");
+                    + experiment.getIdentifier() + "' is in trash.");
         }
         final IDataBO externalDataBO = businessObjectFactory.createDataBO(session);
         SourceType sourceType =
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBusinessObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBusinessObject.java
index 684cee07444..be43a67621b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBusinessObject.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBusinessObject.java
@@ -39,7 +39,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IFileFormatTypeDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IGridCustomColumnDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IGridCustomFilterDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IHibernateSearchDAO;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IInvalidationDAO;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDeletionDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.ILocatorTypeDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IMaterialDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPersonDAO;
@@ -333,9 +333,9 @@ abstract class AbstractBusinessObject implements IDAOFactory
         return daoFactory.getEventDAO();
     }
 
-    public final IInvalidationDAO getInvalidationDAO()
+    public final IDeletionDAO getDeletionDAO()
     {
-        return daoFactory.getInvalidationDAO();
+        return daoFactory.getDeletionDAO();
     }
 
     public void setBatchUpdateMode(boolean batchMode)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java
index 78597c513f3..10a25de603e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java
@@ -223,7 +223,7 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi
     {
         for (SamplePE parent : newParents)
         {
-            checkParentInvalidation(parent, child.getSampleIdentifier());
+            checkParentDeletion(parent, child.getSampleIdentifier());
         }
         List<SampleRelationshipPE> oldParents = new ArrayList<SampleRelationshipPE>();
         for (SampleRelationshipPE r : child.getParentRelationships())
@@ -276,16 +276,16 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi
         }
         final SamplePE parentPE =
                 getSampleByIdentifier(SampleIdentifierFactory.parse(parentIdentifierOrNull));
-        checkParentInvalidation(parentPE, childIdentifier);
+        checkParentDeletion(parentPE, childIdentifier);
         return parentPE;
     }
 
-    private void checkParentInvalidation(final SamplePE parentPE, final SampleIdentifier child)
+    private void checkParentDeletion(final SamplePE parentPE, final SampleIdentifier child)
     {
-        if (parentPE.getInvalidation() != null)
+        if (parentPE.getDeletion() != null)
         {
             throw UserFailureException.fromTemplate(
-                    "Sample '%s' has been invalidated and can't become a parent of sample '%s'.",
+                    "Sample '%s' has been deleted and can't become a parent of sample '%s'.",
                     parentPE.getIdentifier(), child);
         }
     }
@@ -485,11 +485,11 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi
     private void ensureExperimentIsValid(ExperimentIdentifier identOrNull,
             ExperimentPE experimentOrNull, SamplePE sample)
     {
-        if (experimentOrNull != null && experimentOrNull.getInvalidation() != null)
+        if (experimentOrNull != null && experimentOrNull.getDeletion() != null)
         {
             throw UserFailureException.fromTemplate(
                     "The sample '%s' cannot be assigned to the experiment '%s' "
-                            + "because the experiment has been invalidated.",
+                            + "because the experiment has been deleted.",
                     sample.getSampleIdentifier(), identOrNull);
         }
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
index e8edecae5c3..caa74705156 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
@@ -57,6 +57,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE;
@@ -64,7 +65,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
@@ -235,11 +235,11 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements
         dataSets.addAll(getDataDAO().listDataSets(experiment));
     }
 
-    public void invalidateLoadedDataSets(InvalidationPE invalidation)
+    public void trashLoadedDataSets(DeletionPE deletion)
     {
         try
         {
-            getDataDAO().invalidate(dataSets, invalidation);
+            getDataDAO().trash(dataSets, deletion);
         } catch (final DataAccessException ex)
         {
             throwException(ex, "Data Set", EntityKind.DATA_SET);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java
index 62705bebc7f..3a4d955105c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentBO.java
@@ -47,7 +47,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPropertyPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
@@ -208,7 +208,7 @@ public final class ExperimentBO extends AbstractBusinessObject implements IExper
                 + "') not found in experiment '" + experiment.getIdentifier() + "'.");
     }
 
-    public void invalidateByTechIds(List<TechId> experimentIds, InvalidationPE invalidation)
+    public void trashByTechIds(List<TechId> experimentIds, DeletionPE deletion)
             throws UserFailureException
     {
         try
@@ -216,7 +216,7 @@ public final class ExperimentBO extends AbstractBusinessObject implements IExper
             getSessionFactory().getCurrentSession().flush();
             getSessionFactory().getCurrentSession().clear();
 
-            getExperimentDAO().invalidate(experimentIds, invalidation);
+            getExperimentDAO().trash(experimentIds, deletion);
         } catch (final DataAccessException ex)
         {
             throwException(ex, "Experiment", EntityKind.EXPERIMENT);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java
index a7478f32797..aef46831b89 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java
@@ -70,7 +70,7 @@ public interface ICommonBusinessObjectFactory extends IAbstractBussinessObjectFa
 
     public IGridCustomFilterOrColumnBO createGridCustomColumnBO(final Session session);
 
-    public IInvalidationBO createInvalidationBO(final Session session);
+    public ITrashBO createTrashBO(final Session session);
 
     // Fast listing operations
     public ISampleLister createSampleLister(Session session);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java
index 75c52a49bfb..270b74eb5b4 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java
@@ -26,8 +26,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
 
 /**
  * A <i>Business Object</i> to load a list of {@link DataPE}-s.
@@ -70,12 +70,12 @@ public interface IDataSetTable
     void setDataSets(List<DataPE> dataSets);
 
     /**
-     * Invalidates loaded data sets for specified reason.
+     * Moves loaded data sets to trash for specified reason.
      */
-    void invalidateLoadedDataSets(InvalidationPE invalidation);
+    void trashLoadedDataSets(DeletionPE deletion);
 
     /**
-     * Deletes loaded data sets for specified reason.
+     * Permanently Deletes loaded data sets for specified reason.
      */
     void deleteLoadedDataSets(String reason);
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IExperimentBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IExperimentBO.java
index 8dbc2fbd3ab..668340e2f37 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IExperimentBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IExperimentBO.java
@@ -23,9 +23,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedProperty;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentUpdatesDTO;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
 
 /**
@@ -84,12 +84,12 @@ public interface IExperimentBO extends IEntityBusinessObject
     void deleteByTechIds(List<TechId> experimentIds, String reason);
 
     /**
-     * Invalidates experiment with given invalidation.
+     * Moves experiment to trash with given deletion.
      * 
      * @param experimentIds experiment technical identifiers
-     * @throws UserFailureException if one of the experiments can not be invalidated.
+     * @throws UserFailureException if one of the experiments can not be moved to trash.
      */
-    void invalidateByTechIds(List<TechId> experimentIds, InvalidationPE invalidation);
+    void trashByTechIds(List<TechId> experimentIds, DeletionPE deletion);
 
     /**
      * Changes the value of a managed property.
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ISampleTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ISampleTable.java
index 58b54b8ce7d..68a1b38f937 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ISampleTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ISampleTable.java
@@ -21,7 +21,7 @@ import java.util.List;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SampleBatchUpdatesDTO;
@@ -73,12 +73,12 @@ public interface ISampleTable
     public void deleteByTechIds(List<TechId> sampleIds, String reason) throws UserFailureException;
 
     /**
-     * Invalidates samples with given invalidation.
+     * Moves samples to trash with given deletion.
      * 
      * @param sampleIds sample technical identifiers
-     * @throws UserFailureException if one of the samples can not be invalidated.
+     * @throws UserFailureException if one of the samples can not be moved to trash.
      */
-    public void invalidateByTechIds(List<TechId> sampleIds, InvalidationPE invalidation)
+    public void trashByTechIds(List<TechId> sampleIds, DeletionPE deletion)
             throws UserFailureException;
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IInvalidationBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ITrashBO.java
similarity index 73%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IInvalidationBO.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ITrashBO.java
index 718cbbd94da..70bc1384c5a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IInvalidationBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ITrashBO.java
@@ -22,19 +22,19 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
 
 /**
- * Handles cascade invalidation of entities.
+ * Handles the trash of entities.
  * 
  * @author Piotr Buczek
  */
-public interface IInvalidationBO
+public interface ITrashBO
 {
 
-    public void createInvalidation(String reason);
+    public void createDeletion(String reason);
 
-    public void invalidateSamples(List<TechId> sampleIds);
+    public void trashSamples(List<TechId> sampleIds);
 
-    public void invalidateExperiments(List<TechId> experimentIds);
+    public void trashExperiments(List<TechId> experimentIds);
 
-    public void invalidateDataSets(List<DataPE> dataSets);
+    public void trashDataSets(List<DataPE> dataSets);
 
 }
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBO.java
index e04afbfda87..eb0f92fc917 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBO.java
@@ -196,7 +196,7 @@ public final class SampleBO extends AbstractSampleBusinessObject implements ISam
     {
         assert sample != null : "Sample not loaded.";
 
-        checkValid(sample);
+        checkAvailable(sample);
         checkSampleInGroup(sample);
         checkSampleUnused(sample);
         checkSampleWithoutDatasets();
@@ -212,11 +212,11 @@ public final class SampleBO extends AbstractSampleBusinessObject implements ISam
         dataChanged = false;
     }
 
-    static private void checkValid(SamplePE sample)
+    static private void checkAvailable(SamplePE sample)
     {
-        if (sample.getInvalidation() != null)
+        if (sample.getDeletion() != null)
         {
-            throw UserFailureException.fromTemplate("Given sample '%s' is invalid.",
+            throw UserFailureException.fromTemplate("Given sample '%s' is in trash.",
                     sample.getSampleIdentifier());
         }
     }
@@ -229,7 +229,7 @@ public final class SampleBO extends AbstractSampleBusinessObject implements ISam
     private final static void checkSampleUnused(final SamplePE sample)
     {
         ExperimentPE experiment = sample.getExperiment();
-        if (experiment != null && experiment.getInvalidation() == null)
+        if (experiment != null && experiment.getDeletion() == null)
         {
             throw UserFailureException.fromTemplate(
                     "Given sample code '%s' already registered for experiment '%s'.",
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleTable.java
index a3816ae4f00..5c2f74eb540 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleTable.java
@@ -34,7 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleBatchUpdateDetail
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ListSamplesByPropertyCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
@@ -341,7 +341,7 @@ public final class SampleTable extends AbstractSampleBusinessObject implements I
         }
     }
 
-    public void invalidateByTechIds(List<TechId> sampleIds, InvalidationPE invalidation)
+    public void trashByTechIds(List<TechId> sampleIds, DeletionPE deletion)
             throws UserFailureException
     {
         try
@@ -349,7 +349,7 @@ public final class SampleTable extends AbstractSampleBusinessObject implements I
             getSessionFactory().getCurrentSession().flush();
             getSessionFactory().getCurrentSession().clear();
 
-            getSampleDAO().invalidate(sampleIds, invalidation);
+            getSampleDAO().trash(sampleIds, deletion);
         } catch (final DataAccessException ex)
         {
             throwException(ex, "Sample", EntityKind.SAMPLE);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/InvalidationBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/TrashBO.java
similarity index 60%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/InvalidationBO.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/TrashBO.java
index 23c4d8dbac8..c18f65406d6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/InvalidationBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/TrashBO.java
@@ -23,60 +23,60 @@ import org.springframework.dao.DataAccessException;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
 
 /**
  * @author Piotr Buczek
  */
-public class InvalidationBO extends AbstractBusinessObject implements IInvalidationBO
+public class TrashBO extends AbstractBusinessObject implements ITrashBO
 {
 
     private final ICommonBusinessObjectFactory boFactory;
 
-    private InvalidationPE invalidation;
+    private DeletionPE deletion;
 
-    public InvalidationBO(IDAOFactory daoFactory, Session session,
+    public TrashBO(IDAOFactory daoFactory, Session session,
             ICommonBusinessObjectFactory boFactory)
     {
         super(daoFactory, session);
         this.boFactory = boFactory;
     }
 
-    public void createInvalidation(String reason)
+    public void createDeletion(String reason)
     {
         try
         {
-            invalidation = new InvalidationPE();
-            invalidation.setReason(reason);
-            invalidation.setRegistrator(session.tryGetPerson());
-            getInvalidationDAO().create(invalidation);
+            deletion = new DeletionPE();
+            deletion.setReason(reason);
+            deletion.setRegistrator(session.tryGetPerson());
+            getDeletionDAO().create(deletion);
         } catch (final DataAccessException ex)
         {
-            throwException(ex, "Invalidation");
+            throwException(ex, "Deletion");
         }
     }
 
-    public void invalidateSamples(List<TechId> sampleIds)
+    public void trashSamples(List<TechId> sampleIds)
     {
-        assert invalidation != null;
+        assert deletion != null;
         ISampleTable sampleTableBO = boFactory.createSampleTable(session);
-        sampleTableBO.invalidateByTechIds(sampleIds, invalidation);
+        sampleTableBO.trashByTechIds(sampleIds, deletion);
     }
 
-    public void invalidateExperiments(List<TechId> experimentIds)
+    public void trashExperiments(List<TechId> experimentIds)
     {
-        assert invalidation != null;
+        assert deletion != null;
         IExperimentBO experimentBO = boFactory.createExperimentBO(session);
-        experimentBO.invalidateByTechIds(experimentIds, invalidation);
+        experimentBO.trashByTechIds(experimentIds, deletion);
     }
 
-    public void invalidateDataSets(List<DataPE> dataSets)
+    public void trashDataSets(List<DataPE> dataSets)
     {
-        assert invalidation != null;
+        assert deletion != null;
         IDataSetTable dataSetTable = boFactory.createDataSetTable(session);
         dataSetTable.setDataSets(dataSets);
-        dataSetTable.invalidateLoadedDataSets(invalidation);
+        dataSetTable.trashLoadedDataSets(deletion);
     }
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ExperimentProjectSpaceCodeRecord.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ExperimentProjectSpaceCodeRecord.java
index 9db965a96bb..b7cd5bf4895 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ExperimentProjectSpaceCodeRecord.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/ExperimentProjectSpaceCodeRecord.java
@@ -3,7 +3,7 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo.common.entity;
 import ch.rinn.restrictions.Private;
 
 /**
- * A class representing an experiment, project and space code. It contains also invalidation id,
+ * A class representing an experiment, project and space code. It contains also deletion id,
  * code of experiment type and database instance id.
  */
 @Private
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SampleReferenceRecord.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SampleReferenceRecord.java
index a352b5a5fa9..ce2d15260cb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SampleReferenceRecord.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SampleReferenceRecord.java
@@ -33,7 +33,7 @@ public class SampleReferenceRecord
     /** sample code */
     public String s_code;
 
-    /** invalidation id */
+    /** deletion id */
     public Long del_id;
 
     /** sample type code */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SecondaryEntityDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SecondaryEntityDAO.java
index 243d2e06f41..7198187c617 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SecondaryEntityDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/entity/SecondaryEntityDAO.java
@@ -36,7 +36,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.PersistencyResources;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
@@ -114,7 +114,7 @@ public class SecondaryEntityDAO
         experiment.setPermId(record.e_permid);
         experiment.setIdentifier(new ExperimentIdentifier(null, space.getCode(), record.p_code,
                 record.e_code).toString());
-        experiment.setInvalidation(createInvalidation(record.del_id));
+        experiment.setDeletion(createDeletion(record.del_id));
         final Project project = new Project();
         project.setId(record.p_id);
         project.setCode(record.p_code);
@@ -199,7 +199,7 @@ public class SecondaryEntityDAO
         sample.setId(record.id);
         sample.setCode(IdentifierHelper.convertCode(record.s_code, record.c_code));
         sample.setSampleType(createSampleType(record.st_code, databaseInstance));
-        sample.setInvalidation(createInvalidation(record.del_id));
+        sample.setDeletion(createDeletion(record.del_id));
         sample.setSpace(tryCreateGroup(record.spc_code, databaseInstance));
         sample.setDatabaseInstance(tryGetDatabaseInstance(record.spc_code, databaseInstance));
         sample.setPermId(record.perm_id);
@@ -238,14 +238,14 @@ public class SecondaryEntityDAO
         }
     }
 
-    private static Invalidation createInvalidation(Long invalidationIdOrNull)
+    private static Deletion createDeletion(Long deletionIdOrNull)
     {
-        if (invalidationIdOrNull == null)
+        if (deletionIdOrNull == null)
         {
             return null;
         } else
         {
-            return new Invalidation();
+            return new Deletion();
         }
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
index 03bdee18e94..a5d32682dae 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
@@ -66,7 +66,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FileFormatType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria;
@@ -647,7 +647,7 @@ public class DatasetLister extends AbstractLister implements IDatasetLister
 
             if (dataSetOrNull != null)
             {
-                enrichWithInvalidation(dataSetOrNull, record);
+                enrichWithDeletion(dataSetOrNull, record);
                 datasets.put(record.id, dataSetOrNull);
             }
         }
@@ -655,12 +655,12 @@ public class DatasetLister extends AbstractLister implements IDatasetLister
     }
 
     // NOTE: this just marks the data set as invalid without loading any details
-    private void enrichWithInvalidation(final ExternalData dataSet, DatasetRecord row)
+    private void enrichWithDeletion(final ExternalData dataSet, DatasetRecord row)
     {
         if (row.del_id != null)
         {
-            final Invalidation invalidation = new Invalidation();
-            dataSet.setInvalidation(invalidation);
+            final Deletion deletion = new Deletion();
+            dataSet.setDeletion(deletion);
         }
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
index d605201d3c4..4f4ca17f54b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java
@@ -47,7 +47,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListOrSearchSampleCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
@@ -576,7 +576,7 @@ final class SampleListingWorker extends AbstractLister
                 return null;
             }
         }
-        enrichWithInvalidation(sample, row); // this is cheap even for dependent samples
+        enrichWithDeletion(sample, row); // this is cheap even for dependent samples
         // set properties needed for primary samples
         // (dependent samples too if they need to be enriched e.g. for entity tracking)
         if (primarySample || enrichDependentSamples)
@@ -617,12 +617,12 @@ final class SampleListingWorker extends AbstractLister
     }
 
     // NOTE: this just marks the sample as invalid without loading any details
-    private void enrichWithInvalidation(final Sample sample, SampleRecord row)
+    private void enrichWithDeletion(final Sample sample, SampleRecord row)
     {
         if (row.del_id != null)
         {
-            final Invalidation invalidation = new Invalidation();
-            sample.setInvalidation(invalidation);
+            final Deletion deletion = new Deletion();
+            sample.setDeletion(deletion);
         }
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDAOFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDAOFactory.java
index a4d88470eba..6bf82510840 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDAOFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDAOFactory.java
@@ -98,7 +98,7 @@ public interface IDAOFactory extends IAuthorizationDAOFactory
     /** Returns an implementation of {@link IAuthorizationGroupDAO}. */
     public IAuthorizationGroupDAO getAuthorizationGroupDAO();
 
-    /** Returns an implementation of {@link IInvalidationDAO}. */
-    public IInvalidationDAO getInvalidationDAO();
+    /** Returns an implementation of {@link IDeletionDAO}. */
+    public IDeletionDAO getDeletionDAO();
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java
index ed4ca206177..67fb17eb21e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java
@@ -27,9 +27,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
 
 /**
@@ -121,9 +121,8 @@ public interface IDataDAO extends IGenericDAO<DataPE>
     public void updateDataSets(List<DataPE> externalData);
 
     /**
-     * Invalidate given data sets using specified invalidation.
+     * Move given data sets to trash using specified deletion.
      */
-    public void invalidate(List<DataPE> dataSets, InvalidationPE invalidation)
-            throws DataAccessException;
+    public void trash(List<DataPE> dataSets, DeletionPE deletion) throws DataAccessException;
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IInvalidationDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDeletionDAO.java
similarity index 73%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IInvalidationDAO.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDeletionDAO.java
index 1eee382d8db..1e28237ff1e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IInvalidationDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDeletionDAO.java
@@ -18,18 +18,18 @@ package ch.systemsx.cisd.openbis.generic.server.dataaccess;
 
 import org.springframework.dao.DataAccessException;
 
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 
 /**
- * An interface that contains all data access operations on {@link InvalidationPE}s.
+ * An interface that contains all data access operations on {@link DeletionPE}s.
  * 
  * @author Piotr Buczek
  */
-public interface IInvalidationDAO extends IGenericDAO<InvalidationPE>
+public interface IDeletionDAO extends IGenericDAO<DeletionPE>
 {
     /**
-     * Inserts given {@link InvalidationPE} into the database.
+     * Inserts given {@link DeletionPE} into the database.
      */
-    void create(final InvalidationPE invalidation) throws DataAccessException;
+    void create(final DeletionPE deletion) throws DataAccessException;
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java
index dea45408e3b..8a52959b90e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java
@@ -23,9 +23,9 @@ import java.util.Set;
 import org.springframework.dao.DataAccessException;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
 
@@ -107,6 +107,9 @@ public interface IExperimentDAO extends IGenericDAO<ExperimentPE>
      */
     public void createOrUpdateExperiments(List<ExperimentPE> experiments);
 
-    public void invalidate(List<TechId> experimentIds, InvalidationPE invalidation);
+    /**
+     * Move experiments with given ids to trash using specified deletion.
+     */
+    public void trash(List<TechId> experimentIds, DeletionPE deletion);
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java
index 2df1d1e0c8d..b136bfeafa3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java
@@ -24,7 +24,7 @@ import org.springframework.dao.DataAccessException;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
@@ -124,7 +124,7 @@ public interface ISampleDAO extends IGenericDAO<SamplePE>
             throws DataAccessException;
 
     /**
-     * Invalidate samples with given ids using specified invalidation.
+     * Move samples with given ids to trash using specified deletion.
      */
-    void invalidate(List<TechId> sampleIds, InvalidationPE invalidation) throws DataAccessException;
+    void trash(List<TechId> sampleIds, DeletionPE deletion) throws DataAccessException;
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java
index 41de9abe438..f32638c95ed 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java
@@ -34,7 +34,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityTypeDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEventDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IFileFormatTypeDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IHibernateSearchDAO;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IInvalidationDAO;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDeletionDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.ILocatorTypeDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IMaterialDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPropertyTypeDAO;
@@ -102,7 +102,7 @@ public final class DAOFactory extends AuthorizationDAOFactory implements IDAOFac
 
     private final IScriptDAO scriptDAO;
 
-    private final IInvalidationDAO invalidationDAO;
+    private final IDeletionDAO deletionDAO;
 
     public DAOFactory(final DatabaseConfigurationContext context,
             final SessionFactory sessionFactory, HibernateSearchContext hibernateSearchContext,
@@ -130,7 +130,7 @@ public final class DAOFactory extends AuthorizationDAOFactory implements IDAOFac
         eventDAO = new EventDAO(sessionFactory, databaseInstance);
         authorizationGroupDAO = new AuthorizationGroupDAO(sessionFactory, databaseInstance);
         scriptDAO = new ScriptDAO(sessionFactory, databaseInstance);
-        invalidationDAO = new InvalidationDAO(sessionFactory, databaseInstance);
+        deletionDAO = new DeletionDAO(sessionFactory, databaseInstance);
         final EntityKind[] entityKinds = EntityKind.values();
         for (final EntityKind entityKind : entityKinds)
         {
@@ -236,9 +236,9 @@ public final class DAOFactory extends AuthorizationDAOFactory implements IDAOFac
         return scriptDAO;
     }
 
-    public IInvalidationDAO getInvalidationDAO()
+    public IDeletionDAO getDeletionDAO()
     {
-        return invalidationDAO;
+        return deletionDAO;
     }
 
     public IDynamicPropertyEvaluationScheduler getDynamicPropertyEvaluationScheduler()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
index b11fe876754..31b71a2b2db 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
@@ -54,7 +54,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.TableNames;
 import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
@@ -466,15 +466,15 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
         super.delete(entity);
     }
 
-    public void invalidate(List<DataPE> dataSets, InvalidationPE invalidation)
+    public void trash(List<DataPE> dataSets, DeletionPE deletion)
             throws DataAccessException
     {
         // TODO 2011-06-16, Piotr Buczek: could be done faster with bulk update
         for (DataPE dataSet : dataSets)
         {
-            if (dataSet.getInvalidation() == null)
+            if (dataSet.getDeletion() == null)
             {
-                dataSet.setInvalidation(invalidation);
+                dataSet.setDeletion(deletion);
             }
         }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java
index a2f2ed52498..98d6a1632c9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java
@@ -41,7 +41,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPropertyPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
 
@@ -300,16 +300,16 @@ public class ExperimentDAO extends AbstractGenericEntityWithPropertiesDAO<Experi
         }
     }
 
-    public void invalidate(final List<TechId> experimentIds, final InvalidationPE invalidation)
+    public void trash(final List<TechId> experimentIds, final DeletionPE deletion)
             throws DataAccessException
     {
         // TODO 2011-06-16, Piotr Buczek: could be done faster with bulk update
         for (TechId experimentId : experimentIds)
         {
             ExperimentPE experiment = loadByTechId(experimentId);
-            if (experiment.getInvalidation() == null)
+            if (experiment.getDeletion() == null)
             {
-                experiment.setInvalidation(invalidation);
+                experiment.setDeletion(deletion);
             }
         }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InvalidationDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InvalidationDAO.java
index c227d12a442..af281fe5d73 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InvalidationDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InvalidationDAO.java
@@ -24,17 +24,17 @@ import org.springframework.orm.hibernate3.HibernateTemplate;
 
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.IInvalidationDAO;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDeletionDAO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 
 /**
- * <i>Data Access Object</i> implementation for {@link IInvalidationDAO}.
+ * <i>Data Access Object</i> implementation for {@link IDeletionDAO}.
  * 
  * @author Christian Ribeaud
  */
-final class InvalidationDAO extends AbstractGenericEntityDAO<InvalidationPE> implements
-        IInvalidationDAO
+final class DeletionDAO extends AbstractGenericEntityDAO<DeletionPE> implements
+        IDeletionDAO
 {
 
     /**
@@ -42,28 +42,28 @@ final class InvalidationDAO extends AbstractGenericEntityDAO<InvalidationPE> imp
      * appropriate debugging level for class {@link JdbcAccessor}. </p>
      */
     private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
-            InvalidationDAO.class);
+            DeletionDAO.class);
 
-    InvalidationDAO(final SessionFactory sessionFactory, final DatabaseInstancePE databaseInstance)
+    DeletionDAO(final SessionFactory sessionFactory, final DatabaseInstancePE databaseInstance)
     {
-        super(sessionFactory, databaseInstance, InvalidationPE.class);
+        super(sessionFactory, databaseInstance, DeletionPE.class);
     }
 
     //
-    // IInvalidationDAO
+    // IDeletionDAO
     //
 
-    public final void create(final InvalidationPE invalidation) throws DataAccessException
+    public final void create(final DeletionPE deletion) throws DataAccessException
     {
-        assert invalidation != null : "Unspecified invalidation";
-        validatePE(invalidation);
+        assert deletion != null : "Unspecified deletion";
+        validatePE(deletion);
 
         final HibernateTemplate template = getHibernateTemplate();
-        template.save(invalidation);
+        template.save(deletion);
         template.flush();
         if (operationLog.isInfoEnabled())
         {
-            operationLog.info(String.format("ADD: invalidation '%s'.", invalidation));
+            operationLog.info(String.format("ADD: deletion '%s'.", deletion));
         }
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
index a25ec3bb15c..da3f85f4e80 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
@@ -45,7 +45,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EventType;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePropertyPE;
@@ -440,16 +440,16 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
         scheduleRemoveFromFullTextIndex(ids);
     }
 
-    public void invalidate(final List<TechId> sampleIds, final InvalidationPE invalidation)
+    public void trash(final List<TechId> sampleIds, final DeletionPE deletion)
             throws DataAccessException
     {
         // TODO 2011-06-16, Piotr Buczek: could be done faster with bulk update
         for (TechId sampleId : sampleIds)
         {
             SamplePE sample = loadByTechId(sampleId);
-            if (sample.getInvalidation() == null)
+            if (sample.getDeletion() == null)
             {
-                sample.setInvalidation(invalidation);
+                sample.setDeletion(deletion);
             }
         }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/InvalidationUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/DeletionUtils.java
similarity index 66%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/InvalidationUtils.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/DeletionUtils.java
index 70e8d8c8388..aa470182cb7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/InvalidationUtils.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/DeletionUtils.java
@@ -19,19 +19,19 @@ package ch.systemsx.cisd.openbis.generic.shared.basic;
 /**
  * @author Piotr Buczek
  */
-public class InvalidationUtils
+public class DeletionUtils
 {
 
-    public static boolean isInvalid(IInvalidationProvider invalidableOrNull)
+    public static boolean isDeleted(IDeletionProvider deletableOrNull)
     {
-        return invalidableOrNull != null && invalidableOrNull.getInvalidation() != null;
+        return deletableOrNull != null && deletableOrNull.getDeletion() != null;
     }
 
-    public static boolean isInvalid(Object objectOrNull)
+    public static boolean isDeleted(Object objectOrNull)
     {
-        if (objectOrNull != null && objectOrNull instanceof IInvalidationProvider)
+        if (objectOrNull != null && objectOrNull instanceof IDeletionProvider)
         {
-            return isInvalid((IInvalidationProvider) objectOrNull);
+            return isDeleted((IDeletionProvider) objectOrNull);
         } else
         {
             return false;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IInvalidationProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IDeletionProvider.java
similarity index 82%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IInvalidationProvider.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IDeletionProvider.java
index 68d815bcd68..f03c91ec2b5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IInvalidationProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IDeletionProvider.java
@@ -16,12 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic;
 
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 
 /**
  * @author Franz-Josef Elmer
  */
-public interface IInvalidationProvider
+public interface IDeletionProvider
 {
-    public Invalidation getInvalidation();
+    public Deletion getDeletion();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Invalidation.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Deletion.java
similarity index 88%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Invalidation.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Deletion.java
index bbb4c78f759..955d5558877 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Invalidation.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Deletion.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-
 /**
- * Information about invalidation.
+ * Information about deletion.
  * 
  * @author Christian Ribeaud
  */
-public final class Invalidation extends AbstractRegistrationHolder
+public final class Deletion extends AbstractRegistrationHolder
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
-    /** Reason of invalidation. */
+    /** Reason of deletion. */
     private String reasonOrNull;
 
     public final String getReason()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DeletionType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DeletionType.java
index 39c93cbbfc9..28aab935fcb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DeletionType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DeletionType.java
@@ -25,5 +25,5 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
  */
 public enum DeletionType implements ISerializable
 {
-    PERMANENT, INVALIDATION
+    PERMANENT, TRASH
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java
index 6a007476a44..ea4b5161e2b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java
@@ -20,9 +20,9 @@ import java.util.Date;
 import java.util.List;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.IAttachmentHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IDeletionProvider;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithProperties;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder;
 
 /**
@@ -30,7 +30,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder;
  * 
  * @author Tomasz Pylak
  */
-public class Experiment extends CodeWithRegistration<Experiment> implements IInvalidationProvider,
+public class Experiment extends CodeWithRegistration<Experiment> implements IDeletionProvider,
         IEntityInformationHolderWithProperties, IAttachmentHolder, IIdAndCodeHolder, IPermIdHolder
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
@@ -43,7 +43,7 @@ public class Experiment extends CodeWithRegistration<Experiment> implements IInv
 
     private List<IEntityProperty> properties;
 
-    private Invalidation invalidation;
+    private Deletion deletion;
 
     private List<Attachment> attachments;
 
@@ -105,14 +105,14 @@ public class Experiment extends CodeWithRegistration<Experiment> implements IInv
         this.properties = properties;
     }
 
-    public Invalidation getInvalidation()
+    public Deletion getDeletion()
     {
-        return invalidation;
+        return deletion;
     }
 
-    public void setInvalidation(final Invalidation invalidation)
+    public void setDeletion(final Deletion deletion)
     {
-        this.invalidation = invalidation;
+        this.deletion = deletion;
     }
 
     public List<Attachment> getAttachments()
@@ -142,10 +142,9 @@ public class Experiment extends CodeWithRegistration<Experiment> implements IInv
     public String toString()
     {
         return "Experiment [project=" + project + ", experimentType=" + experimentType
-                + ", identifier=" + identifier + ", properties=" + properties + ", invalidation="
-                + invalidation + ", attachments=" + attachments + ", id=" + id
-                + ", modificationDate=" + modificationDate + ", permId=" + permId + ", permlink="
-                + permlink + "]";
+                + ", identifier=" + identifier + ", properties=" + properties + ", deletion="
+                + deletion + ", attachments=" + attachments + ", id=" + id + ", modificationDate="
+                + modificationDate + ", permId=" + permId + ", permlink=" + permlink + "]";
     }
 
     //
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java
index 0a0acf8490c..04fb69cd2a1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java
@@ -23,7 +23,7 @@ import java.util.List;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithProperties;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IDeletionProvider;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder;
 
 /**
@@ -32,7 +32,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder;
  * @author Christian Ribeaud
  */
 public class ExternalData extends CodeWithRegistration<ExternalData> implements
-        IInvalidationProvider, IEntityInformationHolderWithProperties, IIdAndCodeHolder,
+        IDeletionProvider, IEntityInformationHolderWithProperties, IIdAndCodeHolder,
         IPermIdHolder
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
@@ -48,7 +48,7 @@ public class ExternalData extends CodeWithRegistration<ExternalData> implements
 
     private Long id;
 
-    private Invalidation invalidation;
+    private Deletion deletion;
 
     private Experiment experiment;
 
@@ -322,14 +322,14 @@ public class ExternalData extends CodeWithRegistration<ExternalData> implements
     {
     }
 
-    public final Invalidation getInvalidation()
+    public final Deletion getDeletion()
     {
-        return invalidation;
+        return deletion;
     }
 
-    public final void setInvalidation(Invalidation invalidation)
+    public final void setDeletion(Deletion deletion)
     {
-        this.invalidation = invalidation;
+        this.deletion = deletion;
     }
 
     public final Experiment getExperiment()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java
index d286cc1fada..6963f57828d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java
@@ -26,7 +26,7 @@ import ch.systemsx.cisd.common.annotation.CollectionMapping;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IAttachmentHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithProperties;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IDeletionProvider;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder;
 
 /**
@@ -34,7 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder;
  * 
  * @author Izabela Adamczyk
  */
-public final class Sample extends CodeWithRegistration<Sample> implements IInvalidationProvider,
+public final class Sample extends CodeWithRegistration<Sample> implements IDeletionProvider,
         Comparable<Sample>, IEntityInformationHolderWithProperties, IAttachmentHolder,
         IIdAndCodeHolder, IPermIdHolder
 {
@@ -58,7 +58,7 @@ public final class Sample extends CodeWithRegistration<Sample> implements IInval
 
     private List<IEntityProperty> properties;
 
-    private Invalidation invalidation;
+    private Deletion deletion;
 
     private Experiment experiment;
 
@@ -217,9 +217,9 @@ public final class Sample extends CodeWithRegistration<Sample> implements IInval
         this.properties = properties;
     }
 
-    public final void setInvalidation(final Invalidation invalidation)
+    public final void setDeletion(final Deletion deletion)
     {
-        this.invalidation = invalidation;
+        this.deletion = deletion;
     }
 
     public final Experiment getExperiment()
@@ -242,12 +242,12 @@ public final class Sample extends CodeWithRegistration<Sample> implements IInval
     }
 
     //
-    // IInvalidationProvider
+    // IDeletionProvider
     //
 
-    public final Invalidation getInvalidation()
+    public final Deletion getDeletion()
     {
-        return invalidation;
+        return deletion;
     }
 
     //
@@ -315,8 +315,8 @@ public final class Sample extends CodeWithRegistration<Sample> implements IInval
     {
         return "Sample [sampleType=" + sampleType + ", space=" + space + ", databaseInstance="
                 + databaseInstance + ", identifier=" + identifier + ", container=" + container
-                + ", parents=" + parents + ", properties=" + properties + ", invalidation="
-                + invalidation + ", experiment=" + experiment + ", id=" + id
+                + ", parents=" + parents + ", properties=" + properties + ", deletion="
+                + deletion + ", experiment=" + experiment + ", id=" + id
                 + ", modificationDate=" + modificationDate + ", attachments=" + attachments
                 + ", permId=" + permId + ", permlink=" + permlink + ", searchlink=" + searchlink
                 + ", subCode=" + subCode + "]";
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java
index d0767334da4..7705c3ac1e0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java
@@ -53,7 +53,7 @@ public class WebClientConfiguration implements ISerializable
 
     private int maxEntityVisits;
 
-    private boolean enableInvalidation;
+    private boolean enableTrash;
 
     private boolean allowAddingUnofficielTerms;
 
@@ -138,14 +138,14 @@ public class WebClientConfiguration implements ISerializable
         this.allowAddingUnofficielTerms = allowAddingUnofficialTerms;
     }
 
-    public boolean getEnableInvalidation()
+    public boolean getEnableTrash()
     {
-        return enableInvalidation;
+        return enableTrash;
     }
 
-    public void setEnableInvalidation(boolean enableInvalidation)
+    public void setEnableTrash(boolean enableTrash)
     {
-        this.enableInvalidation = enableInvalidation;
+        this.enableTrash = enableTrash;
     }
 
     public WebClientConfiguration()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ColumnNames.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ColumnNames.java
index 565159c282f..f6f9aa026c0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ColumnNames.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ColumnNames.java
@@ -120,7 +120,7 @@ public final class ColumnNames
 
     public static final String ID_COLUMN = "id";
 
-    public static final String INVALIDATION_COLUMN = "del_id";
+    public static final String DELETION_COLUMN = "del_id";
 
     public static final String IS_COMPLETE_COLUMN = "is_complete";
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataPE.java
index 1ddc04fc5ba..e50cd37f1ac 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataPE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataPE.java
@@ -123,12 +123,12 @@ public class DataPE extends AbstractIdAndCodeHolder<DataPE> implements
     private List<DataPE> containedDataSets = new ArrayList<DataPE>();
 
     /**
-     * Invalidation information.
+     * Deletion information.
      * <p>
-     * If not <code>null</code>, then this data set is considered as <i>invalid</i>.
+     * If not <code>null</code>, then this data set is considered <i>deleted</i> (moved to trash).
      * </p>
      */
-    private InvalidationPE invalidation;
+    private DeletionPE deletion;
 
     /**
      * the index of this {@link DataPE} within its virtual parent; null if there is virtual parent
@@ -693,14 +693,14 @@ public class DataPE extends AbstractIdAndCodeHolder<DataPE> implements
     }
 
     @ManyToOne(fetch = FetchType.EAGER)
-    @JoinColumn(name = ColumnNames.INVALIDATION_COLUMN)
-    public InvalidationPE getInvalidation()
+    @JoinColumn(name = ColumnNames.DELETION_COLUMN)
+    public DeletionPE getDeletion()
     {
-        return invalidation;
+        return deletion;
     }
 
-    public void setInvalidation(final InvalidationPE invalidation)
+    public void setDeletion(final DeletionPE deletion)
     {
-        this.invalidation = invalidation;
+        this.deletion = deletion;
     }
 }
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/InvalidationPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DeletionPE.java
similarity index 85%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/InvalidationPE.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DeletionPE.java
index e2ee9d5f0d0..acf01af7d9f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/InvalidationPE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DeletionPE.java
@@ -36,13 +36,13 @@ import ch.systemsx.cisd.openbis.generic.shared.IServer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
 
 /**
- * Class representing invalidation.
+ * Class representing deletion.
  * 
  * @author Franz-Josef Elmer
  */
 @Entity
-@Table(name = TableNames.INVALIDATIONS_TABLE)
-public class InvalidationPE extends HibernateAbstractRegistrationHolder implements IIdHolder,
+@Table(name = TableNames.DELETIONS_TABLE)
+public class DeletionPE extends HibernateAbstractRegistrationHolder implements IIdHolder,
         Serializable
 {
     private static final long serialVersionUID = IServer.VERSION;
@@ -57,8 +57,8 @@ public class InvalidationPE extends HibernateAbstractRegistrationHolder implemen
     }
 
     @Id
-    @SequenceGenerator(name = SequenceNames.INVALIDATION_SEQUENCE, sequenceName = SequenceNames.INVALIDATION_SEQUENCE, allocationSize = 1)
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = SequenceNames.INVALIDATION_SEQUENCE)
+    @SequenceGenerator(name = SequenceNames.DELETION_SEQUENCE, sequenceName = SequenceNames.DELETION_SEQUENCE, allocationSize = 1)
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = SequenceNames.DELETION_SEQUENCE)
     public final Long getId()
     {
         return id;
@@ -82,11 +82,11 @@ public class InvalidationPE extends HibernateAbstractRegistrationHolder implemen
         {
             return true;
         }
-        if (obj instanceof InvalidationPE == false)
+        if (obj instanceof DeletionPE == false)
         {
             return false;
         }
-        final InvalidationPE that = (InvalidationPE) obj;
+        final DeletionPE that = (DeletionPE) obj;
         final EqualsBuilder builder = new EqualsBuilder();
         builder.append(id, that.id);
         return builder.isEquals();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java
index bafd1b71858..c01ffa8a2f7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPE.java
@@ -103,7 +103,7 @@ public class ExperimentPE extends AttachmentHolderPE implements
 
     private ExperimentTypePE experimentType;
 
-    private InvalidationPE invalidation;
+    private DeletionPE deletion;
 
     private Set<ExperimentPropertyPE> properties = new HashSet<ExperimentPropertyPE>();
 
@@ -243,16 +243,15 @@ public class ExperimentPE extends AttachmentHolderPE implements
     }
 
     @ManyToOne(fetch = FetchType.EAGER)
-    @JoinColumn(name = ColumnNames.INVALIDATION_COLUMN)
-    public InvalidationPE getInvalidation()
+    @JoinColumn(name = ColumnNames.DELETION_COLUMN)
+    public DeletionPE getDeletion()
     {
-        return invalidation;
+        return deletion;
     }
 
-    public void setInvalidation(final InvalidationPE invalidation)
+    public void setDeletion(final DeletionPE deletion)
     {
-
-        this.invalidation = invalidation;
+        this.deletion = deletion;
     }
 
     @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "entity")
@@ -470,7 +469,7 @@ public class ExperimentPE extends AttachmentHolderPE implements
         builder.append("code", getCode());
         builder.append("project", getProject());
         builder.append("experimentType", getExperimentType());
-        builder.append("invalidation", getInvalidation());
+        builder.append("deletion", getDeletion());
         return builder.toString();
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPlatesFilter.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPlatesFilter.java
deleted file mode 100644
index 533e0038faa..00000000000
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentPlatesFilter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2008 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.generic.shared.dto;
-
-import java.io.Serializable;
-
-import org.apache.commons.lang.builder.ToStringBuilder;
-
-import ch.systemsx.cisd.common.utilities.ModifiedShortPrefixToStringStyle;
-import ch.systemsx.cisd.openbis.generic.shared.IServer;
-
-/**
- * A filter for all Plates which are assigned to a experiment.
- * 
- * @author Basil Neff
- */
-public final class ExperimentPlatesFilter implements Serializable
-{
-    private static final long serialVersionUID = IServer.VERSION;
-
-    /** If <code>true</code> only experiment with valid samples are returned. */
-    private boolean hideInvalidated;
-
-    public ExperimentPlatesFilter(final boolean hideInvalidated)
-    {
-        setHideInvalidated(hideInvalidated);
-    }
-
-    /**
-     * Returns, if the invalidated plates should filtered out. If <code>true</code> only experiment
-     * with valid samples are returned.
-     */
-    public final boolean isHideInvalidated()
-    {
-        return hideInvalidated;
-    }
-
-    public final void setHideInvalidated(final boolean hideInvalidated)
-    {
-        this.hideInvalidated = hideInvalidated;
-    }
-
-    //
-    // Object
-    //
-
-    @Override
-    public final String toString()
-    {
-        final ToStringBuilder builder =
-                new ToStringBuilder(this,
-                        ModifiedShortPrefixToStringStyle.MODIFIED_SHORT_PREFIX_STYLE);
-        builder.append("hideInvalidated", isHideInvalidated());
-        return builder.toString();
-    }
-}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java
index db9a9fd4280..2b79379cb7c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java
@@ -211,12 +211,12 @@ public class SamplePE extends AttachmentHolderPE implements IIdAndCodeHolder, Co
     }
 
     /**
-     * Invalidation information.
+     * Deletion information.
      * <p>
-     * If not <code>null</code>, then this sample is considered as <i>invalid</i>.
+     * If not <code>null</code>, then this sample is considered as <i>deleted</i> (moved to trash).
      * </p>
      */
-    private InvalidationPE invalidation;
+    private DeletionPE deletion;
 
     private Set<SamplePropertyPE> properties = new HashSet<SamplePropertyPE>();
 
@@ -281,15 +281,15 @@ public class SamplePE extends AttachmentHolderPE implements IIdAndCodeHolder, Co
     // --------------------
 
     @ManyToOne(fetch = FetchType.EAGER)
-    @JoinColumn(name = ColumnNames.INVALIDATION_COLUMN)
-    public InvalidationPE getInvalidation()
+    @JoinColumn(name = ColumnNames.DELETION_COLUMN)
+    public DeletionPE getDeletion()
     {
-        return invalidation;
+        return deletion;
     }
 
-    public void setInvalidation(final InvalidationPE invalidation)
+    public void setDeletion(final DeletionPE deletion)
     {
-        this.invalidation = invalidation;
+        this.deletion = deletion;
     }
 
     @Transient
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SequenceNames.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SequenceNames.java
index ef19c43f757..5902ef776d8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SequenceNames.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SequenceNames.java
@@ -74,7 +74,7 @@ public final class SequenceNames
 
     public static final String SCRIPT_SEQUENCE = "SCRIPT_ID_SEQ";
 
-    public static final String INVALIDATION_SEQUENCE = "DELETION_ID_SEQ";
+    public static final String DELETION_SEQUENCE = "DELETION_ID_SEQ";
 
     public static final String LOCATOR_TYPE_SEQUENCE = "LOCATOR_TYPE_ID_SEQ";
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/TableNames.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/TableNames.java
index 22856f4f557..d41e7e5301f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/TableNames.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/TableNames.java
@@ -72,7 +72,7 @@ public final class TableNames
 
     public static final String SPACES_TABLE = "spaces";
 
-    public static final String INVALIDATIONS_TABLE = "deletions";
+    public static final String DELETIONS_TABLE = "deletions";
 
     public static final String LOCATOR_TYPES_TABLE = "locator_types";
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java
index a49c8630327..8c983621afb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java
@@ -178,7 +178,7 @@ public class DataSetTranslator
         setProperties(dataPE, externalData);
         externalData.setExperiment(ExperimentTranslator.translate(experiment, baseIndexURL,
                 withExperimentFields));
-        externalData.setInvalidation(InvalidationTranslator.translate(dataPE.getInvalidation()));
+        externalData.setDeletion(DeletionTranslator.translate(dataPE.getDeletion()));
         return externalData;
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/InvalidationTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DeletionTranslator.java
similarity index 51%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/InvalidationTranslator.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DeletionTranslator.java
index 8ad4a389151..aa5a8f8f16d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/InvalidationTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DeletionTranslator.java
@@ -16,32 +16,32 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.translator;
 
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 
 /**
- * A <i>static</i> class for translating {@link InvalidationPE} into {@link Invalidation}.
+ * A <i>static</i> class for translating {@link DeletionPE} into {@link Deletion}.
  * 
  * @author Christian Ribeaud
  */
-public final class InvalidationTranslator
+public final class DeletionTranslator
 {
 
-    private InvalidationTranslator()
+    private DeletionTranslator()
     {
         // Can not be instantiated.
     }
 
-    public final static Invalidation translate(final InvalidationPE invalidation)
+    public final static Deletion translate(final DeletionPE deletion)
     {
-        if (invalidation == null)
+        if (deletion == null)
         {
             return null;
         }
-        final Invalidation newInvalidation = new Invalidation();
-        newInvalidation.setReason(invalidation.getReason());
-        newInvalidation.setRegistrationDate(invalidation.getRegistrationDate());
-        newInvalidation.setRegistrator(PersonTranslator.translate(invalidation.getRegistrator()));
-        return newInvalidation;
+        final Deletion newDeletion = new Deletion();
+        newDeletion.setReason(deletion.getReason());
+        newDeletion.setRegistrationDate(deletion.getRegistrationDate());
+        newDeletion.setRegistrator(PersonTranslator.translate(deletion.getRegistrator()));
+        return newDeletion;
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java
index 0b2d95e90c9..ec41ba03f5f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java
@@ -96,7 +96,7 @@ public final class ExperimentTranslator
         result.setProject(ProjectTranslator.translate(experiment.getProject()));
         result.setRegistrationDate(experiment.getRegistrationDate());
         result.setRegistrator(PersonTranslator.translate(experiment.getRegistrator()));
-        result.setInvalidation(InvalidationTranslator.translate(experiment.getInvalidation()));
+        result.setDeletion(DeletionTranslator.translate(experiment.getDeletion()));
         for (final LoadableFields field : withFields)
         {
             switch (field)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java
index 0606c304769..b3eca0dbc92 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java
@@ -149,7 +149,7 @@ public final class SampleTranslator
             }
             result.setContainedSample(containedSamples);
         }
-        result.setInvalidation(InvalidationTranslator.translate(samplePE.getInvalidation()));
+        result.setDeletion(DeletionTranslator.translate(samplePE.getDeletion()));
         return result;
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java
index 28ea7878698..883440ed374 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java
@@ -32,7 +32,7 @@ import org.apache.commons.lang.StringUtils;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
-import ch.systemsx.cisd.openbis.generic.shared.basic.InvalidationUtils;
+import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.SimplePersonRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TableCellUtil;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
@@ -354,7 +354,7 @@ public class TypedTableModelBuilder<T extends ISerializable>
             final EntityTableCell cell =
                     new EntityTableCell(entity.getEntityKind(), entity.getPermId(),
                             entity.getIdentifier());
-            cell.setInvalid(InvalidationUtils.isInvalid(entity));
+            cell.setInvalid(DeletionUtils.isDeleted(entity));
             cell.setLinkText(linkText);
             addValue(cell);
         }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java
index e2e7d8458ef..5d565984e36 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java
@@ -33,7 +33,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.PropertiesPanelUtils;
 
@@ -78,7 +78,7 @@ public class DataSetPropertiesPanel extends ContentPanel
     {
         final Map<String, Object> properties = new LinkedHashMap<String, Object>();
         final DataSetType datasetType = dataset.getDataSetType();
-        final Invalidation invalidation = dataset.getInvalidation();
+        final Deletion deletion = dataset.getDeletion();
         final Sample sample = dataset.getSample();
 
         properties.put(messageProvider.getMessage(Dict.DATA_SET),
@@ -126,9 +126,9 @@ public class DataSetPropertiesPanel extends ContentPanel
         {
             properties.put(messageProvider.getMessage(Dict.SAMPLE), sample);
         }
-        if (invalidation != null)
+        if (deletion != null)
         {
-            properties.put(messageProvider.getMessage(Dict.INVALIDATION), invalidation);
+            properties.put(messageProvider.getMessage(Dict.DELETION), deletion);
         }
         PropertiesPanelUtils.addEntityProperties(viewContext, properties, dataset.getProperties());
         return properties;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java
index 17263caa679..b659daf35e2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java
@@ -146,7 +146,7 @@ abstract public class GenericDataSetViewer extends AbstractViewerWithVerticalSpl
                 public void execute()
                 {
                     new DataSetListDeletionConfirmationDialog(viewContext.getCommonViewContext(),
-                            createDeletionCallback(), createInvalidationCallback(),
+                            createPermanentDeletionCallback(), createPermanentDeletionCallback(),
                             getOriginalData()).show();
                 }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java
index ebea917100c..dd46a793aca 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java
@@ -42,7 +42,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKin
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.PropertiesPanelUtils;
 
@@ -108,7 +108,7 @@ public class ExperimentPropertiesPanel extends ContentPanel
     {
         final Map<String, Object> properties = new LinkedHashMap<String, Object>();
         final ExperimentType experimentType = experiment.getExperimentType();
-        final Invalidation invalidation = experiment.getInvalidation();
+        final Deletion deletion = experiment.getDeletion();
         properties.put(viewContext.getMessage(Dict.EXPERIMENT), experiment.getIdentifier());
         properties.put(viewContext.getMessage(Dict.PERM_ID),
                 new ExternalHyperlink(experiment.getPermId(), experiment.getPermlink()));
@@ -116,9 +116,9 @@ public class ExperimentPropertiesPanel extends ContentPanel
         properties.put(viewContext.getMessage(Dict.REGISTRATOR), experiment.getRegistrator());
         properties.put(viewContext.getMessage(Dict.REGISTRATION_DATE),
                 experiment.getRegistrationDate());
-        if (invalidation != null)
+        if (deletion != null)
         {
-            properties.put(viewContext.getMessage(Dict.INVALIDATION), invalidation);
+            properties.put(viewContext.getMessage(Dict.DELETION), deletion);
         }
         properties.put(viewContext.getMessage(Dict.PROJECT), experiment.getProject());
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
index 44c0c3511d1..7b838c5abba 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
@@ -128,8 +128,8 @@ public class GenericExperimentViewer extends AbstractViewerWithVerticalSplit<Exp
                 public void execute()
                 {
                     new ExperimentListDeletionConfirmationDialog(
-                            viewContext.getCommonViewContext(), createDeletionCallback(),
-                            createInvalidationCallback(), getOriginalData()).show();
+                            viewContext.getCommonViewContext(), createPermanentDeletionCallback(),
+                            createPermanentDeletionCallback(), getOriginalData()).show();
                 }
             }));
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java
index 9b944b747c8..e3f9a6d0b76 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java
@@ -58,8 +58,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
@@ -162,8 +162,8 @@ abstract public class GenericSampleViewer extends AbstractViewerWithVerticalSpli
                 public void execute()
                 {
                     new SampleListDeletionConfirmationDialog(viewContext.getCommonViewContext(),
-                            getOriginalDataAsSingleton(), createDeletionCallback(),
-                            createInvalidationCallback(), getOriginalData()).show();
+                            getOriginalDataAsSingleton(), createPermanentDeletionCallback(),
+                            createDeletionCallback(), getOriginalData()).show();
                 }
             }));
     }
@@ -252,10 +252,10 @@ abstract public class GenericSampleViewer extends AbstractViewerWithVerticalSpli
         properties.put(viewContext.getMessage(Dict.REGISTRATOR), sample.getRegistrator());
         properties
                 .put(viewContext.getMessage(Dict.REGISTRATION_DATE), sample.getRegistrationDate());
-        final Invalidation invalidation = sample.getInvalidation();
-        if (invalidation != null)
+        final Deletion deletion = sample.getDeletion();
+        if (deletion != null)
         {
-            properties.put(viewContext.getMessage(Dict.INVALIDATION), invalidation);
+            properties.put(viewContext.getMessage(Dict.DELETION), deletion);
         }
 
         Experiment experiment = sample.getExperiment();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericBusinessObjectFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericBusinessObjectFactory.java
index 9ecaefa2c61..1a348ecb361 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericBusinessObjectFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericBusinessObjectFactory.java
@@ -22,7 +22,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.IDataBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IDataSetTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentTable;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.IInvalidationBO;
+import ch.systemsx.cisd.openbis.generic.server.business.bo.ITrashBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IMaterialTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IProjectBO;
@@ -95,9 +95,9 @@ public final class GenericBusinessObjectFactory extends AbstractPluginBusinessOb
         return getCommonBusinessObjectFactory().createProjectBO(session);
     }
 
-    public IInvalidationBO createInvalidationBO(Session session)
+    public ITrashBO createTrashBO(Session session)
     {
-        return getCommonBusinessObjectFactory().createInvalidationBO(session);
+        return getCommonBusinessObjectFactory().createTrashBO(session);
     }
 
     public ISampleLister createSampleLister(Session session)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericDataSetTypeSlaveServerPlugin.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericDataSetTypeSlaveServerPlugin.java
index 35f6aa95435..ece3c1d0f9c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericDataSetTypeSlaveServerPlugin.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericDataSetTypeSlaveServerPlugin.java
@@ -25,7 +25,7 @@ import org.springframework.stereotype.Component;
 import ch.systemsx.cisd.openbis.generic.server.batch.BatchOperationExecutor;
 import ch.systemsx.cisd.openbis.generic.server.batch.DataSetBatchUpdate;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IDataSetTable;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.IInvalidationBO;
+import ch.systemsx.cisd.openbis.generic.server.business.bo.ITrashBO;
 import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewDataSet;
@@ -58,11 +58,10 @@ public class GenericDataSetTypeSlaveServerPlugin implements IDataSetTypeSlaveSer
                 dataSetTable.setDataSets(dataSets);
                 dataSetTable.deleteLoadedDataSets(reason);
                 break;
-            case INVALIDATION:
-                IInvalidationBO invalidationBO =
-                        businessObjectFactory.createInvalidationBO(session);
-                invalidationBO.createInvalidation(reason);
-                invalidationBO.invalidateDataSets(dataSets);
+            case TRASH:
+                ITrashBO trashBO = businessObjectFactory.createTrashBO(session);
+                trashBO.createDeletion(reason);
+                trashBO.trashDataSets(dataSets);
                 break;
         }
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/IGenericBusinessObjectFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/IGenericBusinessObjectFactory.java
index eadeb1dd2ae..0c80b0e9cac 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/IGenericBusinessObjectFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/IGenericBusinessObjectFactory.java
@@ -21,7 +21,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.IDataBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IDataSetTable;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentTable;
-import ch.systemsx.cisd.openbis.generic.server.business.bo.IInvalidationBO;
+import ch.systemsx.cisd.openbis.generic.server.business.bo.ITrashBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IProjectBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleBO;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleTable;
@@ -76,7 +76,7 @@ public interface IGenericBusinessObjectFactory extends IAbstractBussinessObjectF
     public ISampleLister createSampleLister(Session session);
 
     /**
-     * Creates a {@link IInvalidationBO} <i>Business Object</i>.
+     * Creates a {@link ITrashBO} <i>Business Object</i>.
      */
-    public IInvalidationBO createInvalidationBO(final Session session);
+    public ITrashBO createTrashBO(final Session session);
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
index 330f569db16..733602f0774 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
@@ -61,18 +61,18 @@ var common = {
   // Deletion
   // 
   
-  invalidate: "Invalidate",
-  invalidation: "Invalidation",
-  invalidation_template: "{0}; {1}<br><i>reason:</i>&nbsp;{2}",
+  delete: "Delete",
+  deletion: "Deletion",
+  deletion_template: "{0}; {1}<br><i>reason:</i>&nbsp;{2}",
   permanent: "Permanent",
   reason: "Reason",
   delete_confirmation_title: "Confirm Deletion",
   delete_confirmation_message: "Are you sure you want to delete [{0}]?",
   delete_confirmation_message_with_reason_template: "You are {0} {1}(s).<br><br>Please enter a reason or cancel the operation.",
   deleting_permanently: "<b>permanently</b> deleting",
-  invalidating: "invalidating",
-  delete_progress_message: "Deleting {0}(s)...",
-  invalidate_progress_message: "Invalidating {0}(s)...",
+  deleting: "Deleting",
+  delete_permanently_progress_message: "Deleting {0}(s)...",
+  delete_progress_message: "Moving to trash {0}(s)...",
 	 
   //
   // Table Modifications
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ExperimentBrowserTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ExperimentBrowserTest.java
index 358c8fa7284..edc18c850f5 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ExperimentBrowserTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ExperimentBrowserTest.java
@@ -57,7 +57,7 @@ public class ExperimentBrowserTest extends AbstractGWTTestCase
         remoteConsole.prepare(new ListExperiments("DEFAULT (CISD)", "SIRNA_HCS"));
         CheckExperimentTable table = new CheckExperimentTable();
         table.expectedRow(new ExperimentRow("EXP-REUSE").valid());
-        table.expectedRow(new ExperimentRow("EXP-X").invalid());
+        table.expectedRow(new ExperimentRow("EXP-X").deleted());
         table.expectedColumnsNumber(14);
         remoteConsole.prepare(table.expectedSize(2));
 
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SampleBrowserTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SampleBrowserTest.java
index dd825d5ef7a..392c7b3e9c8 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SampleBrowserTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SampleBrowserTest.java
@@ -75,7 +75,7 @@ public class SampleBrowserTest extends AbstractGWTTestCase
         CheckSampleTable table = new CheckSampleTable();
         table.expectedColumnHidden(SampleGridColumnIDs.CODE, false);
         table.expectedColumnWidth(SampleGridColumnIDs.REGISTRATOR, DEFAULT_COLUMN_WIDTH);
-        table.expectedRow(new SampleRow("MP001-1").identifier("CISD", "CISD").invalid()
+        table.expectedRow(new SampleRow("MP001-1").identifier("CISD", "CISD").deleted()
                 .noExperiment().withInternalPropertyCell("PLATE_GEOMETRY",
                         DEFAULT_PLATE_GEOMETRY_VALUE));
         table.expectedRow(new SampleRow("MP002-1").identifier("CISD", "CISD").valid()
@@ -134,7 +134,7 @@ public class SampleBrowserTest extends AbstractGWTTestCase
         loginAndGotoListSamplesTab();
         remoteConsole.prepare(new ListSamples("CISD", "CELL_PLATE"));
         CheckSampleTable table = new CheckSampleTable();
-        table.expectedRow(new SampleRow("3VCP1").identifier("CISD", "CISD").invalid().experiment(
+        table.expectedRow(new SampleRow("3VCP1").identifier("CISD", "CISD").deleted().experiment(
                 "CISD", "NEMO", "EXP1").derivedFromAncestors("CISD:/CISD/3V-123"));
         table.expectedColumnsNumber(21);
         remoteConsole.prepare(table.expectedSize(15));
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/columns/DataSetRow.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/columns/DataSetRow.java
index 3d7f312183e..5c98005b31e 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/columns/DataSetRow.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/columns/DataSetRow.java
@@ -35,21 +35,21 @@ public class DataSetRow extends Row
         withCell(CommonExternalDataColDefKind.CODE, code);
     }
 
-    public DataSetRow invalid()
+    public DataSetRow deleted()
     {
-        withInvalidation(true);
+        withDeletion(true);
         return this;
     }
 
     public DataSetRow valid()
     {
-        withInvalidation(false);
+        withDeletion(false);
         return this;
     }
 
-    private void withInvalidation(boolean isInvalid)
+    private void withDeletion(boolean isDeleted)
     {
-        withCell(CommonExternalDataColDefKind.IS_INVALID, SimpleYesNoRenderer.render(isInvalid));
+        withCell(CommonExternalDataColDefKind.IS_DELETED, SimpleYesNoRenderer.render(isDeleted));
     }
 
     public DataSetRow withIsComplete(Boolean complete)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/columns/ExperimentRow.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/columns/ExperimentRow.java
index b5fb96fc461..e9a90fa5479 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/columns/ExperimentRow.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/columns/ExperimentRow.java
@@ -39,21 +39,21 @@ public class ExperimentRow extends RowWithProperties
         withCell(CommonExperimentColDefKind.EXPERIMENT_TYPE.id(), typeCode);
     }
 
-    public ExperimentRow invalid()
+    public ExperimentRow deleted()
     {
-        withInvalidation(true);
+        withDeletion(true);
         return this;
     }
 
     public ExperimentRow valid()
     {
-        withInvalidation(false);
+        withDeletion(false);
         return this;
     }
 
-    private void withInvalidation(boolean isInvalid)
+    private void withDeletion(boolean isDeleted)
     {
-        withCell(CommonExperimentColDefKind.IS_INVALID.id(), SimpleYesNoRenderer.render(isInvalid));
+        withCell(CommonExperimentColDefKind.IS_DELETED.id(), SimpleYesNoRenderer.render(isDeleted));
     }
 
 }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/columns/SampleRow.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/columns/SampleRow.java
index 88106b96707..928a8ca7b60 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/columns/SampleRow.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/columns/SampleRow.java
@@ -105,21 +105,21 @@ public class SampleRow extends RowWithProperties
         return identifier;
     }
 
-    public SampleRow invalid()
+    public SampleRow deleted()
     {
-        withInvalidation(true);
+        withDeletion(true);
         return this;
     }
 
     public SampleRow valid()
     {
-        withInvalidation(false);
+        withDeletion(false);
         return this;
     }
 
-    private void withInvalidation(boolean isInvalid)
+    private void withDeletion(boolean isDeleted)
     {
-        withCell(SampleGridColumnIDs.IS_INVALID, SimpleYesNoRenderer.render(isInvalid));
+        withCell(SampleGridColumnIDs.IS_DELETED, SimpleYesNoRenderer.render(isDeleted));
     }
 
     public SampleRow derivedFromAncestors(final String... ancestorCodes)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractProperty.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractProperty.java
index a2728052102..ef65fab0ecf 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractProperty.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractProperty.java
@@ -19,10 +19,10 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.testframework;
 import junit.framework.Assert;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.ICodeHolder;
-import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.IDeletionProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
 
 /**
  * Abstract superclass of a generic {@link IProperty} which implements convenient property value
@@ -102,8 +102,8 @@ public abstract class AbstractProperty<C extends IPropertyChecker<?>> implements
     }
 
     /**
-     * Sets assertion that the property value is of type {@link ICodeHolder} with a code equals
-     * the specified code.
+     * Sets assertion that the property value is of type {@link ICodeHolder} with a code equals the
+     * specified code.
      */
     public C asCode(final String expectedCode)
     {
@@ -117,34 +117,33 @@ public abstract class AbstractProperty<C extends IPropertyChecker<?>> implements
     }
 
     /**
-     * Sets assertion that the property value is of type {@link IInvalidationProvider} with no
-     * {@link Invalidation} object.
+     * Sets assertion that the property value is of type {@link IDeletionProvider} with no
+     * {@link Deletion} object.
      */
     public C asValidEntity()
     {
-        return by(new IValueAssertion<IInvalidationProvider>()
+        return by(new IValueAssertion<IDeletionProvider>()
             {
-                public void assertValue(final IInvalidationProvider provider)
+                public void assertValue(final IDeletionProvider provider)
                 {
-                    final Invalidation invalidation = provider.getInvalidation();
-                    Assert.assertNull(message + " expected to be a valid entity.", invalidation);
+                    final Deletion deletion = provider.getDeletion();
+                    Assert.assertNull(message + " expected to be a valid entity.", deletion);
                 }
             });
     }
 
     /**
-     * Sets assertion that the property value is of type {@link IInvalidationProvider} with an
-     * {@link Invalidation} object.
+     * Sets assertion that the property value is of type {@link IDeletionProvider} with an
+     * {@link Deletion} object.
      */
-    public C asInvalidEntity()
+    public C asDeletedEntity()
     {
-        return by(new IValueAssertion<IInvalidationProvider>()
+        return by(new IValueAssertion<IDeletionProvider>()
             {
-                public void assertValue(final IInvalidationProvider provider)
+                public void assertValue(final IDeletionProvider provider)
                 {
-                    final Invalidation invalidation = provider.getInvalidation();
-                    Assert.assertNotNull(message + " expected to be an invalid entity.",
-                            invalidation);
+                    final Deletion deletion = provider.getDeletion();
+                    Assert.assertNotNull(message + " expected to be a deleted entity.", deletion);
                 }
             });
     }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProviderTest.java
index 9e8e9f34d79..7ce8fd58add 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProviderTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProviderTest.java
@@ -58,7 +58,7 @@ public class ExperimentProviderTest extends AbstractProviderTest
                         .code("E1")
                         .identifier("DB:/A/B/E1")
                         .date(new Date(1000123456))
-                        .invalidate()
+                        .markDeleted()
                         .permID("123-45")
                         .type("1")
                         .registrator(
@@ -84,7 +84,7 @@ public class ExperimentProviderTest extends AbstractProviderTest
         TypedTableModel<Experiment> tableModel =
                 new ExperimentProvider(server, SESSION_TOKEN, criteria).getTableModel(100);
         assertEquals("[CODE, EXPERIMENT_TYPE, EXPERIMENT_IDENTIFIER, DATABASE_INSTANCE, SPACE, "
-                + "PROJECT, REGISTRATOR, REGISTRATION_DATE, IS_INVALID, PERM_ID, "
+                + "PROJECT, REGISTRATOR, REGISTRATION_DATE, IS_DELETED, PERM_ID, "
                 + "SHOW_DETAILS_LINK, property-USER-NUMBER, property-USER-TEXT]",
                 getHeaderIDs(tableModel).toString());
         assertEquals("[null, VARCHAR, null, VARCHAR, VARCHAR, VARCHAR, VARCHAR, TIMESTAMP, "
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProviderTest.java
index ba6175cc1b4..45748f3b40f 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProviderTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleProviderTest.java
@@ -84,7 +84,7 @@ public class SampleProviderTest extends AbstractProviderTest
 
         assertEquals(
                 "[CODE, SUBCODE, DATABASE_INSTANCE, SPACE, SAMPLE_IDENTIFIER, SAMPLE_TYPE, "
-                        + "IS_INSTANCE_SAMPLE, IS_INVALID, REGISTRATOR, REGISTRATION_DATE, "
+                        + "IS_INSTANCE_SAMPLE, IS_DELETED, REGISTRATOR, REGISTRATION_DATE, "
                         + "EXPERIMENT, EXPERIMENT_IDENTIFIER, PROJECT, "
                         + "PERM_ID, SHOW_DETAILS_LINK, generatedFromParent, containerParent, "
                         + "property-USER-NUMBER, property-USER-TIMESTAMP, property-USER-NAME, property-USER-MY-MATERIAL, property-USER-TEXT]",
@@ -119,7 +119,7 @@ public class SampleProviderTest extends AbstractProviderTest
         SampleProvider sampleProvider = new SampleProvider(server, SESSION_TOKEN, listCriteria);
         final SampleBuilder s1 = new SampleBuilder("DB:/S1").id(1).type("ALPHA").permID("123-45");
         s1.registrator(new PersonBuilder().name("Albert", "Einstein").getPerson());
-        s1.invalidate().date(new Date(4711));
+        s1.markDeleted().date(new Date(4711));
         Sample p1 = new SampleBuilder("/AB/CD").permID("p-123").getSample();
         s1.property("NAME", "hello").permLink("http").childOf(p1);
         final SampleBuilder s2 =
@@ -140,7 +140,7 @@ public class SampleProviderTest extends AbstractProviderTest
 
         assertEquals(
                 "[CODE, SUBCODE, DATABASE_INSTANCE, SPACE, SAMPLE_IDENTIFIER, SAMPLE_TYPE, "
-                        + "IS_INSTANCE_SAMPLE, IS_INVALID, REGISTRATOR, REGISTRATION_DATE, "
+                        + "IS_INSTANCE_SAMPLE, IS_DELETED, REGISTRATOR, REGISTRATION_DATE, "
                         + "EXPERIMENT, EXPERIMENT_IDENTIFIER, PROJECT, "
                         + "PERM_ID, SHOW_DETAILS_LINK, generatedFromParent, containerParent, "
                         + "property-USER-NAME, property-USER-TIMESTAMP, property-USER-NUMBER, property-USER-TEXT]",
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
index f2bf7d76806..e7723b0d5f4 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
@@ -1347,7 +1347,7 @@ public final class CommonServerTest extends AbstractServerTestCase
     @Test
     public void testDeleteDataSets()
     {
-        // TODO write invalidation test
+        // TODO write deletion test
         final DeletionType deletionType = DeletionType.PERMANENT;
         prepareGetSession();
         final List<String> dataSetCodes = Arrays.asList("ds1", "ds2", "ds3");
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java
index f9d4cab2f45..0d5d35322f6 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceTest.java
@@ -81,9 +81,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServerInfo;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatastoreServiceDescriptions;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
@@ -710,7 +710,7 @@ public class ETLServiceTest extends AbstractServerTestCase
         SampleIdentifier sampleIdentifier =
                 new SampleIdentifier(new DatabaseInstanceIdentifier("db"), "s1");
         ExperimentPE experiment = createExperiment("TYPE", "EXP1", "G1");
-        experiment.setInvalidation(new InvalidationPE());
+        experiment.setDeletion(new DeletionPE());
         prepareTryToLoadSample(sampleIdentifier, createSampleWithExperiment(experiment));
 
         try
@@ -720,7 +720,7 @@ public class ETLServiceTest extends AbstractServerTestCase
         } catch (UserFailureException e)
         {
             assertEquals(
-                    "Data set can not be registered because experiment 'DB:/G1/P/EXP1' is invalid.",
+                    "Data set can not be registered because experiment 'DB:/G1/P/EXP1' is in trash.",
                     e.getMessage());
         }
 
@@ -951,12 +951,11 @@ public class ETLServiceTest extends AbstractServerTestCase
 
         context.checking(new Expectations()
             {
-            {
+                {
                     allowing(daoFactory).getEntityTypeDAO(EntityKind.MATERIAL);
                     will(returnValue(entityTypeDAO));
 
-                    allowing(entityTypeDAO).tryToFindEntityTypeByCode(
-                            materialType.getCode());
+                    allowing(entityTypeDAO).tryToFindEntityTypeByCode(materialType.getCode());
                     will(returnValue(materialType));
 
                     final List<NewMaterial> newMaterials = Arrays.asList(newMaterial);
@@ -983,7 +982,7 @@ public class ETLServiceTest extends AbstractServerTestCase
                     one(sampleTable).save();
                     one(sampleTable).getSamples();
                     will(returnValue(Arrays.asList(newSamplePE)));
-                    
+
                     one(boFactory).createSampleBO(SESSION);
                     will(returnValue(sampleBO));
 
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java
index 48073f9072c..c450cbc0867 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java
@@ -234,12 +234,12 @@ public class SampleListingQueryTest extends AbstractDAOTest
             {
                 assertEquals(msg, samplePE.getExperiment().getId(), sample.expe_id);
             }
-            if (samplePE.getInvalidation() == null)
+            if (samplePE.getDeletion() == null)
             {
                 assertNull(msg, sample.del_id);
             } else
             {
-                assertEquals(msg, samplePE.getInvalidation().getId(), sample.del_id);
+                assertEquals(msg, samplePE.getDeletion().getId(), sample.del_id);
             }
             if (samplePE.getContainer() == null)
             {
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAOTest.java
index 1053e4c03e8..7355cf145b4 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAOTest.java
@@ -461,7 +461,7 @@ public final class DataDAOTest extends AbstractDAOTest
         List<ExperimentPE> experiments = daoFactory.getExperimentDAO().listExperiments();
         for (ExperimentPE experimentPE : experiments)
         {
-            if (experimentPE.getInvalidation() == null)
+            if (experimentPE.getDeletion() == null)
             {
                 return experimentPE;
             }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java
index 6681b0a6f03..4cc1d5ca841 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java
@@ -24,7 +24,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
@@ -89,9 +89,9 @@ public class ExperimentBuilder
         return this;
     }
     
-    public ExperimentBuilder invalidate()
+    public ExperimentBuilder markDeleted()
     {
-        experiment.setInvalidation(new Invalidation());
+        experiment.setDeletion(new Deletion());
         return this;
     }
     
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java
index 828cbeb1dde..f61d9131d0e 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/SampleBuilder.java
@@ -25,7 +25,7 @@ import java.util.List;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
@@ -105,9 +105,9 @@ public class SampleBuilder
         return this;
     }
     
-    public SampleBuilder invalidate()
+    public SampleBuilder markDeleted()
     {
-        sample.setInvalidation(new Invalidation());
+        sample.setDeletion(new Deletion());
         return this;
     }
     
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslatorTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslatorTest.java
index e150ed1a0cc..d9208951b16 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslatorTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslatorTest.java
@@ -36,7 +36,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.FileFormatTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DeletionPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
@@ -114,14 +114,14 @@ public class DataSetTranslatorTest extends AssertJUnit
         sampleTypePE.setCode("sampleTypeCode");
         sampleTypePE.setDescription("sampleTypeDescription");
         samplePE.setSampleType(sampleTypePE);
-        InvalidationPE invalidationPE = new InvalidationPE();
-        invalidationPE.setReason("reason");
-        invalidationPE.setRegistrationDate(new Date(3));
+        DeletionPE deletionPE = new DeletionPE();
+        deletionPE.setReason("reason");
+        deletionPE.setRegistrationDate(new Date(3));
         PersonPE personPE = new PersonPE();
         personPE.setUserId("user");
         personPE.setDatabaseInstance(databaseInstancePE);
-        invalidationPE.setRegistrator(personPE);
-        externalDataPE.setInvalidation(invalidationPE);
+        deletionPE.setRegistrator(personPE);
+        externalDataPE.setDeletion(deletionPE);
         externalDataPE.setSampleAcquiredFrom(samplePE);
         ExternalData data = DataSetTranslator.translate(externalDataPE, BASE_INDEX_URL);
 
@@ -149,9 +149,9 @@ public class DataSetTranslatorTest extends AssertJUnit
         assertEquals("sampleTypeCode", translated.getSampleType().getCode());
         assertEquals("sampleTypeDescription", translated.getSampleType().getDescription());
         assertEquals(false, translated.isDerived());
-        assertEquals("reason", translated.getInvalidation().getReason());
-        assertEquals(3, translated.getInvalidation().getRegistrationDate().getTime());
-        assertEquals("user", translated.getInvalidation().getRegistrator().getUserId());
+        assertEquals("reason", translated.getDeletion().getReason());
+        assertEquals(3, translated.getDeletion().getRegistrationDate().getTime());
+        assertEquals("user", translated.getDeletion().getRegistrator().getUserId());
     }
 
     @Test
@@ -186,7 +186,7 @@ public class DataSetTranslatorTest extends AssertJUnit
         assertEquals(true, parentCodes.contains("parent-1"));
         assertEquals(true, parentCodes.contains("parent-2"));
         assertEquals(true, externalData.isDerived());
-        assertEquals(null, externalData.getInvalidation());
+        assertEquals(null, externalData.getDeletion());
     }
 
     private Set<String> extractParentCodes(ExternalData externalData)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewerTest.java
index 47fe9da7fec..1de48fde3d0 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewerTest.java
@@ -44,7 +44,7 @@ import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.Row;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 
 /**
  * A {@link AbstractGWTTestCase} extension to test {@link GenericExperimentViewer}.
@@ -174,7 +174,7 @@ public class GenericExperimentViewerTest extends AbstractGWTTestCase
         launchTest();
     }
 
-    public final void testShowInvalidExperimentDetails()
+    public final void testShowDeletedExperimentDetails()
     {
         prepareShowExperiment(DEFAULT, SIRNA_HCS, EXP_X);
         final CheckExperiment checkExperiment = new CheckExperiment();
@@ -183,12 +183,12 @@ public class GenericExperimentViewerTest extends AbstractGWTTestCase
                 ".*<a .* href=\".*permId=" + EXP_X_PERM_ID + ".*>" + EXP_X_PERM_ID + "</a>.*");
         checkExperiment.property("Experiment Type").asCode(SIRNA_HCS);
         checkExperiment.property("Registrator").asPerson(DOE_JOHN);
-        checkExperiment.property("Invalidation").by(new IValueAssertion<Invalidation>()
+        checkExperiment.property("Deletion").by(new IValueAssertion<Deletion>()
             {
-                public void assertValue(final Invalidation invalidation)
+                public void assertValue(final Deletion deletion)
                 {
-                    assertEquals("Doe", invalidation.getRegistrator().getLastName());
-                    assertNull(invalidation.getReason());
+                    assertEquals("Doe", deletion.getRegistrator().getLastName());
+                    assertNull(deletion.getReason());
                 }
             });
         checkExperiment.property("Description").asProperty(A_SIMPLE_EXPERIMENT);
@@ -286,7 +286,7 @@ public class GenericExperimentViewerTest extends AbstractGWTTestCase
         final CheckTableCommand datasetTable =
                 checkExperiment.createDataSetTableCheck().expectedSize(2);
         datasetTable.expectedRow(new DataSetRow("20081105092159188-3").valid().derived());
-        datasetTable.expectedRow(new DataSetRow("20081105092158673-1").invalid()
+        datasetTable.expectedRow(new DataSetRow("20081105092158673-1").deleted()
                 .withSample("CISD:/CISD/3VCP1").withSampleType("CELL_PLATE").notDerived()
                 .withIsComplete(null));
         datasetTable.expectedColumnsNumber(25);
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewerTest.java
index 373f8310fd0..cf9de5b366c 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewerTest.java
@@ -33,7 +33,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.CheckTab
 import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.GWTTestUtil;
 import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.IValueAssertion;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Invalidation;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion;
 
 /**
  * A {@link AbstractGWTTestCase} extension to test {@link GenericSampleViewer}.
@@ -128,16 +128,16 @@ public class GenericSampleViewerTest extends AbstractGWTTestCase
                 ".*<a href=\".*permId=" + CELL_PLATE_EXAMPLE_PERM_ID + ".*>"
                         + CELL_PLATE_EXAMPLE_PERM_ID + "</a>.*");
         checkSample.property("Sample Type").asCode("CELL_PLATE");
-        checkSample.property("Invalidation").by(new IValueAssertion<Invalidation>()
+        checkSample.property("Deletion").by(new IValueAssertion<Deletion>()
             {
-                public void assertValue(final Invalidation invalidation)
+                public void assertValue(final Deletion deletion)
                 {
-                    assertEquals("Doe", invalidation.getRegistrator().getLastName());
-                    assertEquals("wrong-code", invalidation.getReason());
+                    assertEquals("Doe", deletion.getRegistrator().getLastName());
+                    assertEquals("wrong-code", deletion.getReason());
                 }
             });
         checkSample.property("Parent").asCode(parentCode1);
-        checkSample.property("Parent").asInvalidEntity();
+        checkSample.property("Parent").asDeletedEntity();
         remoteConsole.prepare(checkSample);
 
         activateTab(createSectionsTabPanelId(),
@@ -153,7 +153,7 @@ public class GenericSampleViewerTest extends AbstractGWTTestCase
         activateTab(createSectionsTabPanelId(),
                 createSectionId(DisplayTypeIDGenerator.DATA_SETS_SECTION));
         final CheckTableCommand checkDataTable = checkSample.createDataTableCheck().expectedSize(1);
-        checkDataTable.expectedRow(new DataSetRow(DIRECTLY_CONNECTED_DATA_SET_CODE).invalid()
+        checkDataTable.expectedRow(new DataSetRow(DIRECTLY_CONNECTED_DATA_SET_CODE).deleted()
                 .withFileFormatType("TIFF"));
         checkDataTable.expectedColumnsNumber(26);
         final String commentColIdent = GridTestUtils.getPropertyColumnIdentifier("COMMENT", false);
@@ -184,7 +184,7 @@ public class GenericSampleViewerTest extends AbstractGWTTestCase
                 new CheckTableCommand(SampleDataSetBrowser.createGridId(WILDCARD_ID));
         checkDirectlyConnectedDataTable.expectedSize(1);
         checkDirectlyConnectedDataTable
-                .expectedRow(new DataSetRow(DIRECTLY_CONNECTED_DATA_SET_CODE).invalid()
+                .expectedRow(new DataSetRow(DIRECTLY_CONNECTED_DATA_SET_CODE).deleted()
                         .withFileFormatType("TIFF").withSample(CELL_PLATE_EXAMPLE_ID)
                         .withExperiment(CELL_PLATE_EXAMPLE_EXPERIMENT_ID));
         remoteConsole.prepare(checkDirectlyConnectedDataTable);
@@ -206,7 +206,7 @@ public class GenericSampleViewerTest extends AbstractGWTTestCase
                 new CheckTableCommand(SampleDataSetBrowser.createGridId(WILDCARD_ID));
         checkIndirectlyConnectedDataTable.expectedSize(6);
         checkIndirectlyConnectedDataTable
-                .expectedRow(new DataSetRow(DIRECTLY_CONNECTED_DATA_SET_CODE).invalid()
+                .expectedRow(new DataSetRow(DIRECTLY_CONNECTED_DATA_SET_CODE).deleted()
                         .withFileFormatType("TIFF").withSample(CELL_PLATE_EXAMPLE_ID)
                         .withExperiment(CELL_PLATE_EXAMPLE_EXPERIMENT_ID));
         checkIndirectlyConnectedDataTable.expectedRow(new DataSetRow(
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java
index debf1c9353e..6a0f8e484e4 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/ExperimentBrowsingTest.java
@@ -75,9 +75,9 @@ public class ExperimentBrowsingTest extends SystemTestCase
         criteria.setProject(project);
         TypedTableResultSet<Experiment> resultSet = commonClientService.listExperiments(criteria);
         Experiment e1 = getOriginalObjectByCode(resultSet, "EXP-REUSE");
-        assertEquals(null, e1.getInvalidation());
+        assertEquals(null, e1.getDeletion());
         Experiment e2 = getOriginalObjectByCode(resultSet, "EXP-X");
-        assertEquals(null, e2.getInvalidation().getReason());
+        assertEquals(null, e2.getDeletion().getReason());
         assertEquals(false, resultSet.getResultSet().isPartial());
         assertEquals(3, resultSet.getResultSet().getTotalLength());
         assertEquals(3, resultSet.getResultSet().getList().size());
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleBrowsingTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleBrowsingTest.java
index 590813f606d..684ae547cc8 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleBrowsingTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleBrowsingTest.java
@@ -125,12 +125,12 @@ public class SampleBrowsingTest extends GenericSystemTestCase
 
         Sample s1 = getSample(list, createSampleIdentifier("MP001-1"));
         checkInternalProperty(s1.getProperties(), "PLATE_GEOMETRY", DEFAULT_PLATE_GEOMETRY_VALUE);
-        assertNotNull(s1.getInvalidation());
+        assertNotNull(s1.getDeletion());
         assertNull(s1.getExperiment());
 
         Sample s2 = getSample(list, createSampleIdentifier("MP002-1"));
         checkInternalProperty(s2.getProperties(), "PLATE_GEOMETRY", DEFAULT_PLATE_GEOMETRY_VALUE);
-        assertNull(s2.getInvalidation());
+        assertNull(s2.getDeletion());
         assertNull(s2.getExperiment());
     }
 
@@ -152,7 +152,7 @@ public class SampleBrowsingTest extends GenericSystemTestCase
 
         Sample s = getSample(list, createSharedSampleIdentifier("MP"));
         checkInternalProperty(s.getProperties(), "PLATE_GEOMETRY", DEFAULT_PLATE_GEOMETRY_VALUE);
-        assertNull(s.getInvalidation());
+        assertNull(s.getDeletion());
         assertNull(s.getExperiment());
     }
 
@@ -174,7 +174,7 @@ public class SampleBrowsingTest extends GenericSystemTestCase
         GridRowModels<Sample> list = samples.getResultSet().getList();
 
         Sample s = getSample(list, createSampleIdentifier("3VCP1"));
-        assertNotNull(s.getInvalidation());
+        assertNotNull(s.getDeletion());
         assertEquals("/CISD/NEMO/EXP1", s.getExperiment().getIdentifier());
         assertEquals("/CISD/3V-123", s.getGeneratedFrom().getIdentifier());
         assertNull(s.getGeneratedFrom().getGeneratedFrom());
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleDetailsTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleDetailsTest.java
index 8d2389e0cdd..5573ce832bc 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleDetailsTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/plugin/generic/SampleDetailsTest.java
@@ -154,13 +154,13 @@ public class SampleDetailsTest extends GenericSystemTestCase
                 .getIdentifier());
         assertEquals(CELL_PLATE_EXAMPLE_EXPERIMENT_ID, sDetails.getExperiment().getIdentifier());
 
-        assertEquals("Doe", sDetails.getInvalidation().getRegistrator().getLastName());
-        assertEquals("wrong-code", sDetails.getInvalidation().getReason());
+        assertEquals("Doe", sDetails.getDeletion().getRegistrator().getLastName());
+        assertEquals("wrong-code", sDetails.getDeletion().getReason());
 
         assertEquals(1, sDetails.getParents().size());
         final Sample parent = sDetails.getParents().iterator().next();
         assertEquals("3V-123", parent.getCode());
-        assertNotNull(parent.getInvalidation());
+        assertNotNull(parent.getDeletion());
 
         assertEquals(sListed.getProperties().size(), sDetails.getProperties().size());
 
-- 
GitLab