From c88c8b3d0695b43bc8b6badb66312d5dbfa948a3 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Thu, 14 Oct 2010 12:19:40 +0000
Subject: [PATCH] [LMS-1833] fixed testing queries with parameters

SVN: 18303
---
 .../application/ui/field/IParameterField.java |  2 +-
 .../application/ui/field/ParameterField.java  |  5 +-
 .../expressions/filter/FilterToolbar.java     |  4 +-
 .../application/util/IDelegatedAction.java    |  7 +++
 .../web/client/dto/CustomFilterInfo.java      |  4 +-
 .../calculator/GridExpressionUtils.java       |  2 +-
 .../web/server/calculator/RowCalculator.java  |  2 +-
 .../basic}/dto/ParameterWithValue.java        |  2 +-
 .../application/module/QueryEditor.java       | 57 ++++++++++++-------
 .../module/RunCannedQueryToolbar.java         | 30 +++++-----
 .../basic/dto/QueryParameterBindings.java     |  6 ++
 .../server/calculator/RowCalculatorTest.java  |  2 +-
 .../resultset/CachedResultSetManagerTest.java | 29 +++++-----
 .../web/server/util/FilterUtilsTest.java      |  2 +-
 .../openbis/systemtest/FilterSystemTest.java  | 10 ++--
 15 files changed, 97 insertions(+), 67 deletions(-)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/{client/web/client => shared/basic}/dto/ParameterWithValue.java (93%)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/IParameterField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/IParameterField.java
index 657f2f35ad0..3a2d5e626ab 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/IParameterField.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/IParameterField.java
@@ -18,7 +18,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field;
 
 import com.extjs.gxt.ui.client.widget.form.Field;
 
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 
 /**
  * @author Piotr Buczek
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/ParameterField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/ParameterField.java
index c0a30d2072f..467096418fa 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/ParameterField.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/ParameterField.java
@@ -41,9 +41,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil;
 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.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterValue;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 
 /**
  * {@link TriggerField} extension for providing values for parameters.
@@ -68,7 +68,7 @@ public class ParameterField extends TriggerField<ModelData> implements IParamete
     private final String initialValueOrNull;
 
     public static IParameterField create(IViewContext<?> viewContextOrNull, String parameterName,
-            IDelegatedAction onValueChangeAction, String initialValueOrNull,
+            String initialValueOrNull, IDelegatedAction onValueChangeAction,
             IParameterValuesLoader loaderOrNull)
     {
         String[] split = parameterName.split(PARAMETER_NAME_SEPARATOR);
@@ -190,6 +190,7 @@ public class ParameterField extends TriggerField<ModelData> implements IParamete
             setValidateOnBlur(true);
             setWidth(100);
             add(values);
+            getPropertyEditor().setList(store.getModels());
 
             addSelectionChangedListener(new SelectionChangedListener<SimpleComboValue<String>>()
                 {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java
index 71092394fa8..ac237f9a819 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterToolbar.java
@@ -36,10 +36,10 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ColumnDistinctValu
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomFilterInfo;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridColumnFilterInfo;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridFilters;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 
 /**
  * Toolbar with filters.
@@ -256,7 +256,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
         for (String parameter : filter.getParameters())
         {
             IParameterField parameterField =
-                    ParameterField.create(null, parameter, updateApplyButtonAction, null, null);
+                    ParameterField.create(null, parameter, null, updateApplyButtonAction, null);
             parameterFields.add(parameterField);
             filterWidgets.add(parameterField.asWidget());
         }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java
index 6f52fd5ba45..251481906a5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/IDelegatedAction.java
@@ -26,5 +26,12 @@ import com.google.gwt.user.client.Command;
  */
 public interface IDelegatedAction extends Command
 {
+    public static IDelegatedAction DO_NOTHING = new IDelegatedAction()
+        {
+            public void execute()
+            {
+            }
+        };
+
     void execute();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/CustomFilterInfo.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/CustomFilterInfo.java
index 6db45bd2040..0c67090b2ae 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/CustomFilterInfo.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/CustomFilterInfo.java
@@ -20,6 +20,8 @@ import java.util.Set;
 
 import com.google.gwt.user.client.rpc.IsSerializable;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
+
 /**
  * Stores information about selected custom filter.
  * 
@@ -28,7 +30,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
 public class CustomFilterInfo<T> implements IsSerializable
 {
     private String name;
-    
+
     private String expression;
 
     private Set<ParameterWithValue> parameters;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java
index 0aaf03cd7c0..10ac390cac2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java
@@ -27,10 +27,10 @@ import ch.systemsx.cisd.common.evaluator.EvaluatorException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomFilterInfo;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.shared.basic.PrimitiveValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomColumn;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.util.DataTypeUtils;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java
index 8f589ed3e90..a5613538846 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculator.java
@@ -24,8 +24,8 @@ import java.util.Set;
 import ch.systemsx.cisd.common.evaluator.Evaluator;
 import ch.systemsx.cisd.common.evaluator.EvaluatorException;
 import ch.systemsx.cisd.common.utilities.Template;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.PrimitiveValue;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 
 /**
  * @author Franz-Josef Elmer
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ParameterWithValue.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterWithValue.java
similarity index 93%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ParameterWithValue.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterWithValue.java
index 3df1cb5497f..b90a4592178 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ParameterWithValue.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterWithValue.java
@@ -1,4 +1,4 @@
-package ch.systemsx.cisd.openbis.generic.client.web.client.dto;
+package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
 import java.io.Serializable;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java
index 0ff4fc26285..7f72ae4ea81 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java
@@ -16,12 +16,9 @@
 
 package ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.module;
 
-import static ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog.createTextField;
-
+import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 import com.extjs.gxt.ui.client.Style.LayoutRegion;
@@ -52,6 +49,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetTypeSelectionWidget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentTypeSelectionWidget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CheckBoxField;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.IParameterField;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.IParameterValuesLoader;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ParameterField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.material.MaterialTypeSelectionWidget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.report.ReportGeneratedCallback;
@@ -67,6 +67,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.ExpressionUtil;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IReportInformationProvider;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryType;
 import ch.systemsx.cisd.openbis.plugin.query.client.web.client.IQueryClientServiceAsync;
 import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Constants;
@@ -105,12 +106,13 @@ public class QueryEditor extends Dialog
 
     private static final class BindingsDialog extends Dialog
     {
-        private final Map<String, TextField<String>> parameterFields;
+        private final List<IParameterField> parameterFields;
 
         private final QueryExecutor queryExecutor;
 
-        public BindingsDialog(IViewContext<IQueryClientServiceAsync> viewContext,
-                List<String> parameters, QueryExecutor queryExecutor)
+        public BindingsDialog(final IViewContext<IQueryClientServiceAsync> viewContext,
+                final List<String> parameters, final QueryDatabase queryDatabase,
+                final QueryExecutor queryExecutor)
         {
             this.queryExecutor = queryExecutor;
             setHeading(viewContext.getMessage(Dict.QUERY_PARAMETERS_BINDINGS_DIALOG_TITLE));
@@ -125,13 +127,25 @@ public class QueryEditor extends Dialog
             form.setLabelWidth(150);
             form.setFieldWidth(250);
 
-            parameterFields = new HashMap<String, TextField<String>>();
+            parameterFields = new ArrayList<IParameterField>();
+            final IParameterValuesLoader parameterValuesloader = new IParameterValuesLoader()
+                {
+                    public void loadData(String queryExpression,
+                            AbstractAsyncCallback<List<ParameterValue>> listParameterValuesCallback)
+                    {
+                        viewContext.getService().listParameterValues(queryDatabase,
+                                queryExpression, listParameterValuesCallback);
+                    }
+                };
             for (String parameter : parameters)
             {
-                TextField<String> field = createTextField(parameter, true);
-                parameterFields.put(parameter, field);
-                form.add(field);
+                final IParameterField parameterField =
+                        ParameterField.create(viewContext, parameter, null,
+                                IDelegatedAction.DO_NOTHING, parameterValuesloader);
+                parameterFields.add(parameterField);
+                form.add(parameterField.asWidget());
             }
+
             add(form, new BorderLayoutData(LayoutRegion.CENTER));
             addButton(new Button(viewContext.getMessage(Dict.BUTTON_SUBMIT),
                     new SelectionListener<ButtonEvent>()
@@ -153,9 +167,9 @@ public class QueryEditor extends Dialog
         private void prepareBindingsAndExecuteQuery()
         {
             QueryParameterBindings bindings = new QueryParameterBindings();
-            for (Map.Entry<String, TextField<String>> entry : parameterFields.entrySet())
+            for (IParameterField field : parameterFields)
             {
-                bindings.addBinding(entry.getKey(), entry.getValue().getValue());
+                bindings.addBinding(field.getParameterWithValue());
             }
             queryExecutor.execute(bindings);
         }
@@ -430,18 +444,21 @@ public class QueryEditor extends Dialog
                 {
                     if (form.isValid())
                     {
+                        QueryDatabase queryDatabase = queryDatabaseSelectionWidget.tryGetSelected();
                         List<String> parameters =
                                 ExpressionUtil.extractParameters(statementField.getValue());
                         parameters = ExpressionUtil.createDistinctParametersList(parameters);
                         if (parameters.size() > 0)
                         {
-                            new BindingsDialog(viewContext, parameters, new QueryExecutor()
-                                {
-                                    public void execute(QueryParameterBindings parameterBindings)
-                                    {
-                                        runQuery(parameterBindings);
-                                    }
-                                }).show();
+                            new BindingsDialog(viewContext, parameters, queryDatabase,
+                                    new QueryExecutor()
+                                        {
+                                            public void execute(
+                                                    QueryParameterBindings parameterBindings)
+                                            {
+                                                runQuery(parameterBindings);
+                                            }
+                                        }).show();
                         } else
                         {
                             runQuery(new QueryParameterBindings());
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/RunCannedQueryToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/RunCannedQueryToolbar.java
index 6599ea17429..7d6a6f51cc5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/RunCannedQueryToolbar.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/RunCannedQueryToolbar.java
@@ -39,7 +39,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.I
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ParameterField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterValue;
@@ -172,13 +171,22 @@ public class RunCannedQueryToolbar extends AbstractQueryProviderToolbar
     private void createAndAddQueryParameterFields(final QueryExpression query)
     {
         parameterContainer.hide();
-        IDelegatedAction updateExecuteButtonAction = new IDelegatedAction()
+        final IDelegatedAction updateExecuteButtonAction = new IDelegatedAction()
             {
                 public void execute()
                 {
                     updateExecuteButtonEnabledState();
                 }
             };
+        final IParameterValuesLoader parameterValuesloader = new IParameterValuesLoader()
+            {
+                public void loadData(String queryExpression,
+                        AbstractAsyncCallback<List<ParameterValue>> listParameterValuesCallback)
+                {
+                    viewContext.getService().listParameterValues(query.getQueryDatabase(),
+                            queryExpression, listParameterValuesCallback);
+                }
+            };
         for (String parameter : query.getParameters())
         {
             final QueryParameterValue initialValueOrNull = tryGetInitialValue(parameter);
@@ -188,19 +196,8 @@ public class RunCannedQueryToolbar extends AbstractQueryProviderToolbar
             } else
             {
                 addParameterField(ParameterField.create(viewContext, parameter,
-                        updateExecuteButtonAction, initialValueOrNull == null ? null
-                                : initialValueOrNull.getValue(), new IParameterValuesLoader()
-                            {
-
-                                public void loadData(
-                                        String queryExpression,
-                                        AbstractAsyncCallback<List<ParameterValue>> listParameterValuesCallback)
-                                {
-                                    viewContext.getService().listParameterValues(
-                                            query.getQueryDatabase(), queryExpression,
-                                            listParameterValuesCallback);
-                                }
-                            }));
+                        initialValueOrNull == null ? null : initialValueOrNull.getValue(),
+                        updateExecuteButtonAction, parameterValuesloader));
             }
         }
     }
@@ -290,8 +287,7 @@ public class RunCannedQueryToolbar extends AbstractQueryProviderToolbar
         }
         for (IParameterField field : parameterFields)
         {
-            ParameterWithValue parameterWithValue = field.getParameterWithValue();
-            bindings.addBinding(parameterWithValue.getParameter(), parameterWithValue.getValue());
+            bindings.addBinding(field.getParameterWithValue());
         }
         return bindings;
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryParameterBindings.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryParameterBindings.java
index d77edc8e55f..2f3e418edf7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryParameterBindings.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/shared/basic/dto/QueryParameterBindings.java
@@ -23,6 +23,7 @@ import java.util.Map.Entry;
 
 import com.google.gwt.user.client.rpc.IsSerializable;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
 
 /**
@@ -51,6 +52,11 @@ public class QueryParameterBindings implements IsSerializable, Serializable
         bindings.put(parameter, value);
     }
 
+    public void addBinding(ParameterWithValue parameterWithValue)
+    {
+        bindings.put(parameterWithValue.getParameter(), parameterWithValue.getValue());
+    }
+
     public String tryGetParameterValue(String parameter)
     {
         return bindings.get(parameter);
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculatorTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculatorTest.java
index 6b74e2f4b3a..3b81a329a74 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculatorTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowCalculatorTest.java
@@ -28,7 +28,7 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.common.evaluator.EvaluatorException;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 
 /**
  * @author Franz-Josef Elmer
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java
index 402a4655de8..580da9f834a 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManagerTest.java
@@ -41,7 +41,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridCustomColumnIn
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridFilters;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridRowModels;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetFetchConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.server.calculator.GridExpressionUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.server.calculator.IColumnCalculator;
@@ -52,6 +51,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
 import ch.systemsx.cisd.openbis.generic.shared.basic.PrimitiveValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomColumn;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SortInfo.SortDir;
@@ -255,8 +255,8 @@ public final class CachedResultSetManagerTest extends AssertJUnit
         ArrayList<ColumnDistinctValues> columnDistinctValues =
                 new ArrayList<ColumnDistinctValues>();
         GridRowModels<T> rowModels =
-                new GridRowModels<T>(TSVRendererTest.asRowModel(entities), null, customColumnsMetadata,
-                        columnDistinctValues);
+                new GridRowModels<T>(TSVRendererTest.asRowModel(entities), null,
+                        customColumnsMetadata, columnDistinctValues);
         return rowModels;
     }
 
@@ -412,7 +412,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit
 
                     one(originalDataProvider).getOriginalData();
                     will(returnValue(Arrays.asList()));
-                    
+
                     one(originalDataProvider).getHeaders();
                     will(returnValue(Arrays.asList()));
                 }
@@ -593,14 +593,15 @@ public final class CachedResultSetManagerTest extends AssertJUnit
     @Test
     public void testCustomColumnWithExpressionBasedOnColumnProperties()
     {
-        final GridCustomColumn c1 = customColumn("$c1", "toInt(row.colDefs('a')[0].property('a'))/6");
+        final GridCustomColumn c1 =
+                customColumn("$c1", "toInt(row.colDefs('a')[0].property('a'))/6");
         prepareDataAndCustomColumnDefinitions(3, c1);
         ResultSetConfigBuilder builder = new ResultSetConfigBuilder(COL_DEFS);
         builder.displayID(GRID_DISPLAY_ID).visibleColumns("$c1");
-        
+
         IResultSet<Long, String> resultSet =
-            resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider);
-        
+                resultSetManager.getResultSet(SESSION_TOKEN, builder.get(), originalDataProvider);
+
         GridRowModels<String> list = resultSet.getList();
         assertEquals(3, list.size());
         assertEquals("0-a0 7", render(list.get(0)));
@@ -608,10 +609,10 @@ public final class CachedResultSetManagerTest extends AssertJUnit
         assertEquals("2-a0 7", render(list.get(2)));
         assertEquals(DataTypeCode.INTEGER, list.getCustomColumnsMetadata().get(0).getDataType());
         assertEquals("[$c1]", columnCalculator.toString());
-        
+
         context.assertIsSatisfied();
     }
-    
+
     @Test
     public void testSortCustomColumn()
     {
@@ -808,7 +809,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit
 
                     one(originalDataProvider).getOriginalData();
                     will(returnValue(data));
-                    
+
                     one(originalDataProvider).getHeaders();
                     will(returnValue(Arrays.asList()));
                 }
@@ -839,7 +840,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit
 
                     one(originalDataProvider).getOriginalData();
                     will(returnValue(Arrays.asList("alpha", "beta")));
-                    
+
                     one(originalDataProvider).getHeaders();
                     will(returnValue(Arrays.asList()));
                 }
@@ -864,7 +865,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit
 
                     one(originalDataProvider).getOriginalData();
                     will(returnValue(Arrays.asList("a", "b")));
-                    
+
                     one(originalDataProvider).getHeaders();
                     will(returnValue(Arrays.asList()));
                 }
@@ -898,7 +899,7 @@ public final class CachedResultSetManagerTest extends AssertJUnit
                         rows[i] = i + "-a" + i % 2;
                     }
                     will(returnValue(Arrays.asList(rows)));
-                    
+
                     one(originalDataProvider).getHeaders();
                     will(returnValue(Arrays.asList()));
 
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtilsTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtilsTest.java
index 1dba3c24555..9c1a723482a 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtilsTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtilsTest.java
@@ -26,9 +26,9 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomFilterInfo;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.client.web.server.calculator.GridExpressionUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.server.calculator.ITableDataProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 
 /**
  * @author Franz-Josef Elmer
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java
index 287a35bb381..59c0e408887 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java
@@ -29,11 +29,11 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.lang.
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomFilterInfo;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GridFilters;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ParameterWithValue;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewColumnOrFilter;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue;
 
 /**
  * @author Franz-Josef Elmer
@@ -57,8 +57,8 @@ public class FilterSystemTest extends SystemTestCase
         assertEquals(1, filters.size());
         assertEquals(filter.getName(), filters.get(0).getName());
         assertEquals(filter.getDescription(), filters.get(0).getDescription());
-        assertEquals(filter.getExpression(), StringEscapeUtils.unescapeHtml(filters.get(0)
-                .getExpression()));
+        assertEquals(filter.getExpression(),
+                StringEscapeUtils.unescapeHtml(filters.get(0).getExpression()));
         assertEquals(filter.isPublic(), filters.get(0).isPublic());
         assertEquals("[threshold]", filters.get(0).getParameters().toString());
 
@@ -84,8 +84,8 @@ public class FilterSystemTest extends SystemTestCase
         assertEquals(1, filters.size());
         assertEquals(filter.getName(), filters.get(0).getName());
         assertEquals(filter.getDescription(), filters.get(0).getDescription());
-        assertEquals(filter.getExpression(), StringEscapeUtils.unescapeHtml(filters.get(0)
-                .getExpression()));
+        assertEquals(filter.getExpression(),
+                StringEscapeUtils.unescapeHtml(filters.get(0).getExpression()));
         assertEquals(filter.isPublic(), filters.get(0).isPublic());
         List<String> parameters = new ArrayList<String>(filters.get(0).getParameters());
         Collections.sort(parameters);
-- 
GitLab