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