From ceb593acb04bc192162e110f3c8f84e4a21f2a45 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Tue, 29 Sep 2009 13:01:46 +0000
Subject: [PATCH] LMS-1187 allow null argument for Row.colDefs()

SVN: 12764
---
 .../generic/client/web/server/calculator/Row.java   | 13 +++++++------
 .../client/web/server/calculator/RowTest.java       | 11 +++++++++++
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/Row.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/Row.java
index 2f46ca99bc0..78e51adfe6b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/Row.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/Row.java
@@ -69,15 +69,17 @@ public final class Row<T>
         }
         return columnDefinition.getComparableValue(row);
     }
-    
+
     /**
      * Returns all column definitions which have a property with specified key.
      * 
+     * @param propertyKeyOrNull The key of the property. If <code>null</code> all column definitions
+     *            are returned.
      * @return an empty list if no column definition found.
      */
-    public List<ColumnDefinition> colDefs(String propertyKey)
+    public List<ColumnDefinition> colDefs(String propertyKeyOrNull)
     {
-        List<ColumnDefinition> definitions = definitionsByProperties.get(propertyKey);
+        List<ColumnDefinition> definitions = definitionsByProperties.get(propertyKeyOrNull);
         if (definitions == null)
         {
             definitions = new ArrayList<ColumnDefinition>();
@@ -85,13 +87,12 @@ public final class Row<T>
             for (Entry<String, IColumnDefinition<T>> entry : entries)
             {
                 IColumnDefinition<T> columnDefinition = entry.getValue();
-                String property = columnDefinition.tryToGetProperty(propertyKey);
-                if (property != null)
+                if (propertyKeyOrNull == null || columnDefinition.tryToGetProperty(propertyKeyOrNull) != null)
                 {
                     definitions.add(new ColumnDefinition(columnDefinition));
                 }
             }
-            definitionsByProperties.put(propertyKey, definitions);
+            definitionsByProperties.put(propertyKeyOrNull, definitions);
         }
         return Collections.unmodifiableList(definitions);
     }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowTest.java
index e1ff6eb9105..e23c84612de 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/RowTest.java
@@ -175,6 +175,17 @@ public class RowTest extends AssertJUnit
         context.assertIsSatisfied();
     }
     
+    @Test
+    public void testColDefsWithNullArgument()
+    {
+        List<ColumnDefinition> defs = row.colDefs(null);
+        
+        assertEquals(2, defs.size());
+        assertUnmodifiable(defs);
+        
+        context.assertIsSatisfied();
+    }
+    
     @Test
     public void testCols()
     {
-- 
GitLab