Author: [email protected]
Date: Fri Sep 16 14:54:47 2011
New Revision: 1386

Log:
[AMDATUCASSANDRA-82] Implemented remaining methods of mocked CPM.

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/HectorUtil.java
   
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/RowImpl.java
   
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/SuperRowImpl.java

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
   Fri Sep 16 14:54:47 2011
@@ -232,63 +232,48 @@
     }
 
     public <T> Iterator<SuperRow<String, String, String, T>> 
getSuperRows(String columnFamily, Class<T> clazz) {
-        ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamily, 
ColumnType.SUPER);
-        List<SuperRowImpl<SN, N, V>> superRows = cf.getSuperRows();
-        return HectorUtil.getSuperRowIterator(superRows);
+        return getSuperRows(columnFamily, null, clazz);
     }
 
-    @Override
     public <T> Iterator<SuperRow<String, String, String, T>> 
getSuperRows(String columnFamily, String superColumn,
         Class<T> clazz) {
-        // TODO: implement
-        throw new IllegalArgumentException("This method is not (yet) 
implemented by this mock object");
+        ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamily, 
ColumnType.SUPER);
+        List<SuperRowImpl<SN, N, V>> superRows = cf.getSuperRows();
+        return HectorUtil.getSuperRowIterator(superRows, superColumn);
     }
 
     public <T> SuperRow<String, String, String, T> getSuperRow(String 
columnFamily, String rowKey, Class<T> clazz) {
+        return getSuperRow(columnFamily, rowKey, null, clazz);
+    }
+
+    public <T> SuperRow<String, String, String, T> getSuperRow(String 
columnFamily, String rowKey,
+        String superColumn, Class<T> clazz) {
         ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamily, 
ColumnType.SUPER);
         List<SuperRowImpl<SN, N, V>> superRows = cf.getSuperRows();
         for (SuperRowImpl<SN, N, V> superRow : superRows) {
             if (superRow.getKey().equals(rowKey)) {
-                return HectorUtil.convertSuperRow(superRow);
+                return HectorUtil.convertSuperRow(superRow, superColumn);
             }
         }
         return null;
     }
 
-    @Override
-    public <T> SuperRow<String, String, String, T> getSuperRow(String 
columnFamily, String rowKey,
-        String superColumn, Class<T> clazz) {
-        // TODO: implement
-        throw new IllegalArgumentException("This method is not (yet) 
implemented by this mock object");
-    }
-
-    @Override
-    public <T> Iterator<Row<String, String, T>> getRows(String columnFamily,
-        Class<T> clazz) {
-        ColumnFamily<SN, N, V> cf = m_keyspace.getColumnFamily(columnFamily);
-        if (cf == null) {
-            throw new IllegalArgumentException("The ColumnFamily '" + 
columnFamily + "' does not exist");
-        }
+    public <T> Iterator<Row<String, String, T>> getRows(String columnFamily, 
Class<T> clazz) {
+        ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamily, 
ColumnType.STANDARD);
         List<RowImpl<SN, N, V>> rows = cf.getRows();
         return HectorUtil.getRowIterator(rows);
     }
 
-    @Override
     public <T> List<HSuperColumn<String, String, T>> getSuperColumns(String 
columnFamily, String rowKey, Class<T> clazz) {
-        // TODO: implement
-        throw new IllegalArgumentException("This method is not yet implemented 
by this mock object");
+        ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamily, 
ColumnType.SUPER);
+        List<HSuperColumn<SN, N, V>> superColumns = cf.getSuperColumns(rowKey);
+        return HectorUtil.convertSuperColumns(superColumns);
     }
 
     @SuppressWarnings("unchecked")
     public <T> List<HColumn<String, T>> getColumns(String columnFamily, String 
rowKey, Class<T> clazz) {
-        if (!exists(columnFamily)) {
-            throw new IllegalArgumentException("Specified ColumnFamily '" + 
columnFamily + "' does not exist");
-        }
-        ColumnFamily<SN, N, V> cf = m_keyspace.getColumnFamily(columnFamily);
-        if (cf.getType() == ColumnType.SUPER) {
-            throw new IllegalArgumentException("Specified ColumnFamily '" + 
columnFamily + "' is of type super");
-        }
-        List<HColumn<N, V>> columns = 
m_keyspace.getColumnFamily(columnFamily).getColumns(rowKey);
+        ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamily, 
ColumnType.STANDARD);
+        List<HColumn<N, V>> columns = cf.getColumns(rowKey);
         if (columns != null) {
             List<HColumn<String, T>> hColumns = new ArrayList<HColumn<String, 
T>>();
             for (HColumn<?, ?> column : columns) {
@@ -314,16 +299,50 @@
         }
     }
 
-    @Override
     public void deleteSuperColumn(String columnFamily, String rowKey, String 
superColumn) {
-        // TODO: implement
-        throw new IllegalArgumentException("This method is not yet implemented 
by this mock object");
+        ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamily, 
ColumnType.SUPER);
+        SuperRowImpl<SN, N, V> superRow = cf.getSuperRow(rowKey);
+        if (superRow != null) {
+            superRow.deleteSuperColumn(superColumn);
+        }
     }
 
-    @Override
     public void deleteColumn(String columnFamily, String rowKey, String 
superColumn, String column) {
-        // TODO: implement
-        throw new IllegalArgumentException("This method is not yet implemented 
by this mock object");
+        if (!exists(columnFamily)) {
+            throw new HInvalidRequestException("ColumnFamily '" + columnFamily 
+ "' does not exist");
+        }
+        ColumnFamily<SN, N, V> cf = m_keyspace.getColumnFamily(columnFamily);
+        if (cf.getType() == ColumnType.STANDARD) {
+            if (superColumn != null) {
+                throw new HInvalidRequestException("Super column should be 
null for ColumnFamily '" + columnFamily + "', as it is of type standard");
+            }
+            RowImpl<SN, N, V> row = cf.getRow(rowKey);
+            if (row != null) {
+                row.deleteColumn(column);
+            }
+        }
+        else {
+            if (superColumn != null) {
+                throw new HInvalidRequestException("Super column should not be 
null for ColumnFamily '" + columnFamily + "', as it is of type super");
+            }
+            SuperRowImpl<SN, N, V> row = cf.getSuperRow(rowKey);
+            if (row != null) {
+                HSuperColumn<SN, N, V> sc = row.getSuperColumn(column);
+                if (sc != null) {
+                    List<HColumn<N, V>> cols = sc.getColumns();
+                    HColumn<N, V> colToRemove = null;
+                    for (HColumn<N, V> col : cols) {
+                        if (col.getName().toString().equals(column)) {
+                            colToRemove = col;
+                        }
+                    }
+                    if (colToRemove != null) {
+                        cols.remove(colToRemove);
+                        sc.setSubcolumns(cols);
+                    }
+                }
+            }
+        }
     }
 
     private ColumnFamily<SN, N, V> getExpectedColumnFamily(String 
columnFamily, ColumnType type) {

Modified: 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/HectorUtil.java
==============================================================================
--- 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/HectorUtil.java
        (original)
+++ 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/HectorUtil.java
        Fri Sep 16 14:54:47 2011
@@ -38,17 +38,17 @@
         Serializer<SN> snSer = (Serializer<SN>) StringSerializer.get();
         Serializer<N> nSer = (Serializer<N>) StringSerializer.get();
         Serializer<V> vSer = (Serializer<V>) 
SerializerTypeInferer.getSerializer(value);
-        
+
         // Create the hColumns
         HColumn<N, V> hColumn = new HColumnImpl<N, V>((N) column, (V) value, 
System.currentTimeMillis());
         List<HColumn<N, V>> hColumns = new ArrayList<HColumn<N, V>>();
         hColumns.add(hColumn);
-        
+
         // Now create the hSuperColumn and return it
         long clock = System.currentTimeMillis();
         return new HSuperColumnImpl<SN, N, V>((SN) superColumn, hColumns, 
clock, snSer, nSer, vSer);
     }
-    
+
     @SuppressWarnings("unchecked")
     public static <SN, N, V> void addColumn(HSuperColumn<SN, N, V> 
hSuperColumn, String column, Object value) {
         List<HColumn<N, V>> hColumns = hSuperColumn.getColumns();
@@ -56,8 +56,8 @@
         hColumns.add(hColumn);
         hSuperColumn.setSubcolumns(hColumns);
     }
-    
-    public static <SN, N, V>  HColumn<N, V> getColumn(HSuperColumn<SN, N, V> 
hSuperColumn, String column) {
+
+    public static <SN, N, V> HColumn<N, V> getColumn(HSuperColumn<SN, N, V> 
hSuperColumn, String column) {
         for (HColumn<N, V> hColumn : hSuperColumn.getColumns()) {
             if (hColumn.getName().equals(column)) {
                 return hColumn;
@@ -65,17 +65,19 @@
         }
         return null;
     }
-    
+
     public static <T, SN, N, V> Row<String, String, T> convertRow(final 
RowImpl<SN, N, V> row) {
         return new Row<String, String, T>() {
             public String getKey() {
                 return row.getKey();
             }
+
             public ColumnSlice<String, T> getColumnSlice() {
                 return new ColumnSlice<String, T>() {
                     public List<HColumn<String, T>> getColumns() {
                         return convertColumns(row.getColumns());
                     }
+
                     public HColumn<String, T> getColumnByName(String 
columnName) {
                         for (HColumn<String, T> col : getColumns()) {
                             if (col.getName().equals(columnName)) {
@@ -84,22 +86,28 @@
                         }
                         return null;
                     }
-                    
+
                 };
             }
         };
     }
-    
-    public static <T, SN, N, V> SuperRow<String, String, String, T> 
convertSuperRow(final SuperRowImpl<SN,N,V>  superRow) {
+
+    public static <T, SN, N, V> SuperRow<String, String, String, T> 
convertSuperRow(
+        final SuperRowImpl<SN, N, V> superRow, final String superColumn) {
         return new SuperRow<String, String, String, T>() {
             public String getKey() {
                 return superRow.getKey();
             }
-          
+
             public SuperSlice<String, String, T> getSuperSlice() {
                 return new SuperSlice<String, String, T>() {
                     public List<HSuperColumn<String, String, T>> 
getSuperColumns() {
-                        return convertSuperColumns(superRow.getSuperColumns());
+                        if (superColumn != null) {
+                            return 
convertSuperColumns(superRow.getSuperColumnAsList(superColumn));
+                        }
+                        else {
+                            return 
convertSuperColumns(superRow.getSuperColumns());
+                        }
                     }
 
                     public HSuperColumn<String, String, T> 
getColumnByName(String columnName) {
@@ -114,7 +122,7 @@
             }
         };
     }
-    
+
     @SuppressWarnings("unchecked")
     public static <T, N, V> List<HColumn<String, T>> 
convertColumns(List<HColumn<N, V>> hColumns) {
         List<HColumn<String, T>> cols = new ArrayList<HColumn<String, T>>();
@@ -124,21 +132,22 @@
         }
         return cols;
     }
-    
+
     @SuppressWarnings("unchecked")
-    public static <T, SN, N, V> List<HSuperColumn<String, String, T>> 
convertSuperColumns(List<HSuperColumn<SN, N, V>> hSuperColumns) {
+    public static <T, SN, N, V> List<HSuperColumn<String, String, T>> 
convertSuperColumns(
+        List<HSuperColumn<SN, N, V>> hSuperColumns) {
         List<HSuperColumn<String, String, T>> cols = new 
ArrayList<HSuperColumn<String, String, T>>();
         for (HSuperColumn<SN, N, V> col : hSuperColumns) {
-            HSuperColumn<String, String, T> ccol = (HSuperColumn<String, 
String, T>)  col;
+            HSuperColumn<String, String, T> ccol = (HSuperColumn<String, 
String, T>) col;
             cols.add(ccol);
         }
         return cols;
     }
-    
+
     public static <T, SN, N, V> Iterator<Row<String, String, T>> 
getRowIterator(final List<RowImpl<SN, N, V>> rows) {
         return new Iterator<Row<String, String, T>>() {
             int index = 0;
-            
+
             public boolean hasNext() {
                 return index < rows.size();
             }
@@ -156,11 +165,12 @@
             }
         };
     }
-    
-    public static <T, SN, N, V> Iterator<SuperRow<String, String, String, T>> 
getSuperRowIterator(final List<SuperRowImpl<SN, N, V>> rows) {
+
+    public static <T, SN, N, V> Iterator<SuperRow<String, String, String, T>> 
getSuperRowIterator(
+        final List<SuperRowImpl<SN, N, V>> rows, final String superColumn) {
         return new Iterator<SuperRow<String, String, String, T>>() {
             int index = 0;
-            
+
             public boolean hasNext() {
                 return index < rows.size();
             }
@@ -169,8 +179,8 @@
                 if (!hasNext()) {
                     return null;
                 }
-                SuperRowImpl<SN,N,V> row = rows.get(index++);
-                return convertSuperRow(row);
+                SuperRowImpl<SN, N, V> row = rows.get(index++);
+                return convertSuperRow(row, superColumn);
             }
 
             public void remove() {

Modified: 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/RowImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/RowImpl.java
   (original)
+++ 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/RowImpl.java
   Fri Sep 16 14:54:47 2011
@@ -48,4 +48,17 @@
         }
         return null;
     }
+    
+    public void deleteColumn(String name) {
+        HColumn<N, V> columnToRemove = null;
+        for (HColumn<N, V> column : m_columns) {
+            if (column.getName().toString().equals(name)) {
+                columnToRemove = column;
+                break;
+            }
+        }
+        if (columnToRemove != null) {
+            m_columns.remove(columnToRemove);
+        }
+    }
 }

Modified: 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/SuperRowImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/SuperRowImpl.java
      (original)
+++ 
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/SuperRowImpl.java
      Fri Sep 16 14:54:47 2011
@@ -40,6 +40,16 @@
         return m_superColumns;
     }
 
+    public List<HSuperColumn<SN, N, V>> getSuperColumnAsList(String name) {
+        HSuperColumn<SN, N, V> superColumn = getSuperColumn(name);
+        if (superColumn == null) {
+            return null;
+        }
+        List<HSuperColumn<SN, N, V>> superColumns = new 
ArrayList<HSuperColumn<SN, N, V>>();
+        superColumns.add(superColumn);
+        return m_superColumns;
+    }
+    
     public HSuperColumn<SN, N, V> getSuperColumn(String name) {
         for (HSuperColumn<SN, N, V> column : m_superColumns) {
             if (column.getName().equals(name)) {
@@ -48,4 +58,17 @@
         }
         return null;
     }
+    
+    public void deleteSuperColumn(String name) {
+        HSuperColumn<SN, N, V> superColumnToRemove = null;
+        for (HSuperColumn<SN, N, V> superColumn : m_superColumns) {
+            if (superColumn.getName().toString().equals(name)) {
+                superColumnToRemove = superColumn;
+                break;
+            }
+        }
+        if (superColumnToRemove != null) {
+            m_superColumns.remove(superColumnToRemove);
+        }
+    }
 }
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to