Author: [email protected]
Date: Wed Sep 14 15:49:35 2011
New Revision: 1362

Log:
[AMDATUCASSANDRA-83] Also added method <T> SuperRow<String, String, String, T> 
getSuperRow(String columnFamily, String rowKey, Class<T> clazz);

Modified:
   
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
   
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
   
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/CassandraPersistenceManagerTest.java
   
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/CassandraPersistenceManagerMock.java

Modified: 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
  (original)
+++ 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/CassandraPersistenceManager.java
  Wed Sep 14 15:49:35 2011
@@ -203,6 +203,25 @@
 
     /**
      * Returns the super row with the specified row key in the specified 
Column Family (which must be of type "Super")
+     * which contains all Super Columns. This method assumes that the values 
stored in all Columns are of type T. 
+     * If the specified ColumnFamily does not exist, an unchecked exception * 
will be thrown.
+     * 
+     * @param <T>
+     *        The expected return type of the value contained by the specified 
column
+     * @param rowKey
+     *        The key of the row to retrieve
+     * @param superColumn
+     *        The name of the superColumns to retrieve
+     * @param clazz
+     *        The generic type T of all values being retrieved (i.e. 
String.class).
+     * @return Super row with the specified row key in the specified 
ColumnFamily containing all SuperColumns
+     *         and assuming all values are of type T.
+     *         Returns null if there is no row with the specified row key.
+     */
+    <T> SuperRow<String, String, String, T> getSuperRow(String columnFamily, 
String rowKey, Class<T> clazz);
+    
+    /**
+     * Returns the super row with the specified row key in the specified 
Column Family (which must be of type "Super")
      * which contains only the Super Columns matching the specified name. This 
method assumes that the values
      * stored in all Columns are of type T. If the specified ColumnFamily does 
not exist, an unchecked exception
      * will be thrown.
@@ -210,7 +229,7 @@
      * @param <T>
      *        The expected return type of the value contained by the specified 
column
      * @param rowKey
-     *        
+     *        The key of the row to retrieve
      * @param columnFamily
      *        The name of the ColumnFamily to retrieve all super rows for.
      * @param superColumn
@@ -223,7 +242,7 @@
      */
     <T> SuperRow<String, String, String, T> getSuperRow(String columnFamily, 
String rowKey, String superColumn,
         Class<T> clazz);
-    
+
     /**
      * Returns an iterator over all super rows in the specified Column Family 
(which must be of type "Super")
      * which contains all Super Columns and Columns. This method assumes that 
the values stored in all Columns are of

Modified: 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
        (original)
+++ 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
        Wed Sep 14 15:49:35 2011
@@ -304,6 +304,15 @@
         }
     }
     
+    public <T> SuperRow<String, String, String, T> getSuperRow(String 
columnFamily, String rowKey, Class<T> clazz) {
+        Iterator<SuperRow<String, String, String, T>> superRows = 
getSuperRows(columnFamily, rowKey, clazz, COLUMN_LIMIT, null, null);
+        if (superRows.hasNext()) {
+            return superRows.next();
+        } else {
+            return null;
+        }
+    }
+    
     public <T> SuperRow<String, String, String, T> getSuperRow(String 
columnFamilyName, String rowKey,
         String superColumn, Class<T> clazz) {
         Iterator<SuperRow<String, String, String, T>> superRows = 
getSuperRows(columnFamilyName, rowKey, clazz, COLUMN_LIMIT, null, superColumn);

Modified: 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/CassandraPersistenceManagerTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/CassandraPersistenceManagerTest.java
        (original)
+++ 
trunk/amdatu-cassandra/test-integration/tests/src/test/java/org/amdatu/cassandra/test/integration/tests/CassandraPersistenceManagerTest.java
        Wed Sep 14 15:49:35 2011
@@ -124,10 +124,15 @@
             count++;
         }
         
-        // Verify getSuperRow
+        // Verify getSuperRow for a single super column
         SuperRow<String, String, String, String> superRow = 
m_pm.getSuperRow(COLUMNFAMILY, rowKey, "SuperColumn_" + (colSize-1), 
String.class);
         Assert.assertTrue(superRow != null);
         Assert.assertTrue(superRow.getSuperSlice().getSuperColumns().size() == 
1);
+        
+        // Verify getSuperRow for all super columns
+        superRow = m_pm.getSuperRow(COLUMNFAMILY, rowKey, String.class);
+        Assert.assertTrue(superRow != null);
+        Assert.assertTrue(superRow.getSuperSlice().getSuperColumns().size() == 
5);
     }
 
     /**

Modified: 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/CassandraPersistenceManagerMock.java
==============================================================================
--- 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/CassandraPersistenceManagerMock.java
   (original)
+++ 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/CassandraPersistenceManagerMock.java
   Wed Sep 14 15:49:35 2011
@@ -190,6 +190,11 @@
     }
     
     @Override
+    public <T> SuperRow<String, String, String, T> getSuperRow(String 
columnFamily, String rowKey, Class<T> clazz) {
+        throw new IllegalArgumentException("This method is not (yet) 
implemented by this mock object");
+    }
+    
+    @Override
     public <T> SuperRow<String, String, String, T> getSuperRow(String 
columnFamily, String rowKey,
         String superColumn, Class<T> clazz) {
         throw new IllegalArgumentException("This method is not (yet) 
implemented by this mock object");
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to