From 1dc24adbacded4abb980d2b1000f85ce564a0b8c Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Thu, 4 Oct 2012 13:21:27 +0000
Subject: [PATCH] BIS-222 - Make STORAGE_CONFIRMED available in dataset search
 for admins: - improve javadoc - make ISearchFieldAvailability and
 ISearchFieldCriterionFactory interfaces more consistent

SVN: 26991
---
 .../ui/search/DetailedSearchFieldsSelectionWidget.java   | 2 +-
 .../shared/basic/dto/ISearchFieldAvailability.java       | 7 ++++++-
 .../shared/basic/dto/ISearchFieldCriterionFactory.java   | 6 +++++-
 .../generic/shared/basic/dto/ISearchFieldKind.java       | 9 ++++++++-
 .../shared/basic/dto/SearchFieldAvailableForAdmins.java  | 4 +++-
 .../basic/dto/SearchFieldBooleanCriterionFactory.java    | 4 +++-
 .../basic/dto/SearchFieldDateCriterionFactory.java       | 4 +++-
 7 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java
index 146bfda22aa..3da7e0d2cb6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java
@@ -235,7 +235,7 @@ public final class DetailedSearchFieldsSelectionWidget extends
                     field.getKind() != null ? field.getKind().getAvailability() : null;
 
             if (availability != null
-                    && availability.isAvailable(getPerson(), getPersonRoles()) == false)
+                    && availability.isAvailable(field.getField(), getPerson(), getPersonRoles()) == false)
             {
                 iterator.remove();
             }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldAvailability.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldAvailability.java
index 082e444482b..bada2002dc1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldAvailability.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldAvailability.java
@@ -17,11 +17,16 @@
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
 /**
+ * Controls availability of a search field.
+ * 
  * @author pkupczyk
  */
 public interface ISearchFieldAvailability
 {
 
-    public boolean isAvailable(Person person, PersonRoles personRoles);
+    /**
+     * Returns true if the search field should be available for the specified person and roles.
+     */
+    public boolean isAvailable(DetailedSearchField field, Person person, PersonRoles personRoles);
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldCriterionFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldCriterionFactory.java
index fc1a08a2827..be817317804 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldCriterionFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldCriterionFactory.java
@@ -16,13 +16,17 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-
 /**
+ * Creates a criterion for a search field.
+ * 
  * @author pkupczyk
  */
 public interface ISearchFieldCriterionFactory
 {
 
+    /**
+     * Creates a criterion for the search field and value.
+     */
     public DetailedSearchCriterion createCriterion(DetailedSearchField field, String value);
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldKind.java
index 0e798ae0c81..3a97d4d1f59 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISearchFieldKind.java
@@ -16,15 +16,22 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-
 /**
+ * Kind of field that can be used in detailed text queries.
+ * 
  * @author pkupczyk
  */
 public interface ISearchFieldKind
 {
 
+    /**
+     * Returns availability of the search field.
+     */
     ISearchFieldAvailability getAvailability();
 
+    /**
+     * Returns criterion factory of the search field.
+     */
     ISearchFieldCriterionFactory getCriterionFactory();
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldAvailableForAdmins.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldAvailableForAdmins.java
index 137458b6b8b..ba2ac1b1ce9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldAvailableForAdmins.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldAvailableForAdmins.java
@@ -17,13 +17,15 @@
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
 /**
+ * Makes a search field available for an admin used.
+ * 
  * @author pkupczyk
  */
 public class SearchFieldAvailableForAdmins implements ISearchFieldAvailability
 {
 
     @Override
-    public boolean isAvailable(Person person, PersonRoles personRoles)
+    public boolean isAvailable(DetailedSearchField field, Person person, PersonRoles personRoles)
     {
         return personRoles.isAdmin();
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldBooleanCriterionFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldBooleanCriterionFactory.java
index a4169059816..f6a4ca36af3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldBooleanCriterionFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldBooleanCriterionFactory.java
@@ -16,8 +16,10 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-
 /**
+ * Creates a criterion for a boolean field. Accepts following values: "true", "yes", "false", "no".
+ * For other values is returns null.
+ * 
  * @author pkupczyk
  */
 public class SearchFieldBooleanCriterionFactory implements ISearchFieldCriterionFactory
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldDateCriterionFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldDateCriterionFactory.java
index a02493ee12a..44281809a4e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldDateCriterionFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchFieldDateCriterionFactory.java
@@ -16,8 +16,10 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-
 /**
+ * Creates a criterion for a date field. Supports registration and modification dates with equals,
+ * from and until versions.
+ * 
  * @author pkupczyk
  */
 public class SearchFieldDateCriterionFactory implements ISearchFieldCriterionFactory
-- 
GitLab