Author: [email protected]
Date: Fri Sep 16 14:27:54 2011
New Revision: 1385
Log:
[AMDATUCASSANDRA-82] Implemented getSuperRow on the CPM mock.
Added:
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
Removed:
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/Row.java
Modified:
trunk/amdatu-cassandra/cassandra-gadgetstore/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
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/ColumnFamily.java
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/HectorUtil.java
Modified:
trunk/amdatu-cassandra/cassandra-gadgetstore/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-gadgetstore/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
(original)
+++
trunk/amdatu-cassandra/cassandra-gadgetstore/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
Fri Sep 16 14:27:54 2011
@@ -31,7 +31,7 @@
public void test() {
// Create the mock objects
LogServiceMock logService = new LogServiceMock();
- CassandraPersistenceManagerMock<String, Object> pm = new
CassandraPersistenceManagerMock<String, Object>("Default");
+ CassandraPersistenceManagerMock<String, String, Object> pm = new
CassandraPersistenceManagerMock<String, String, Object>("Default");
ColumnFamilyDefinition[] colDefs = new
GadgetColumnFamilyProvider().getColumnFamilies();
pm.addColumnFamily(colDefs);
@@ -51,6 +51,7 @@
GadgetDefinition gadget2 = new GadgetDefinition("http://gadget2",
cat1, false);
gadgetStore.addGadget(gadget1);
gadgetStore.addGadget(gadget2);
+
Assert.assertEquals("http://gadget1",
gadgetStore.getGadget("http://gadget1").getUrl());
Assert.assertEquals("http://gadget2",
gadgetStore.getGadget("http://gadget2").getUrl());
Assert.assertEquals(2, gadgetStore.getGadgets().length);
Modified:
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
Fri Sep 16 14:27:54 2011
@@ -34,7 +34,7 @@
ConsumerNotFoundException {
// Create the mock objects
LogServiceMock logService = new LogServiceMock();
- CassandraPersistenceManagerMock pm = new
CassandraPersistenceManagerMock("Default");
+ CassandraPersistenceManagerMock<String, String, Object> pm = new
CassandraPersistenceManagerMock<String, String, Object>("Default");
ColumnFamilyDefinition[] colDefs = new
ConsumerColumnFamilyProvider().getColumnFamilies();
pm.addColumnFamily(colDefs);
@@ -64,7 +64,7 @@
// Retrieve the consumer we just created
Assert.assertTrue(consumer.equals(consumerStore.getConsumer("ckey")));
-
+
// Now try to add some properties
consumer.getProperties().put("key1", "value1");
consumer.getProperties().put("key2", "value2");
Modified:
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
Fri Sep 16 14:27:54 2011
@@ -30,7 +30,7 @@
public void test() throws Exception {
// Create the mock objects
LogServiceMock logService = new LogServiceMock();
- CassandraPersistenceManagerMock pm = new
CassandraPersistenceManagerMock("Default");
+ CassandraPersistenceManagerMock<String, String, Object> pm = new
CassandraPersistenceManagerMock<String, String, Object>("Default");
ColumnFamilyDefinition[] colDefs = new
TokenColumnFamilyProvider().getColumnFamilies();
pm.addColumnFamily(colDefs);
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:27:54 2011
@@ -22,6 +22,7 @@
import me.prettyprint.cassandra.model.HColumnImpl;
import me.prettyprint.hector.api.beans.HColumn;
import me.prettyprint.hector.api.beans.HSuperColumn;
+import me.prettyprint.hector.api.beans.Row;
import me.prettyprint.hector.api.beans.SuperRow;
import me.prettyprint.hector.api.exceptions.HInvalidRequestException;
@@ -85,16 +86,17 @@
}
public boolean exists(String columnFamilyName, String rowKey) {
+ if (!exists(columnFamilyName)) {
+ return false;
+ }
if (columnFamilyName == null || rowKey == null) {
throw new IllegalArgumentException("ColumnFamily or row key may
not be null");
}
ColumnFamily<SN, N, V> cf =
m_keyspace.getColumnFamily(columnFamilyName);
- if (cf != null) {
- List<Row<SN, N, V>> rows = cf.getRows();
- for (Row<SN, N, V> row : rows) {
- if (row.getKey().equals(rowKey)) {
- return true;
- }
+ List<String> rowKeys = cf.getRowKeys();
+ for (String cRowKey : rowKeys) {
+ if (cRowKey.equals(rowKey)) {
+ return true;
}
}
return false;
@@ -130,12 +132,8 @@
if (!exists(columnFamilyName)) {
throw new HInvalidRequestException("ColumnFamily '" +
columnFamilyName + "' does not exist");
}
- List<Row<SN, N, V>> rows =
m_keyspace.getColumnFamily(columnFamilyName).getRows();
- List<String> rowKeys = new ArrayList<String>();
- for (Row<SN, N, V> row : rows) {
- rowKeys.add(row.getKey());
- }
- return rowKeys;
+ ColumnFamily<SN, N, V> cf =
m_keyspace.getColumnFamily(columnFamilyName);
+ return cf.getRowKeys();
}
public List<String> getRowKeys(String columnFamilyName, String column,
String superColumn) {
@@ -143,7 +141,13 @@
}
public List<String> getColumnNames(String columnFamilyName, String rowKey)
{
- throw new IllegalArgumentException("This method is not yet implemented
by this mock object");
+ ColumnFamily<SN, N, V> cf = getExpectedColumnFamily(columnFamilyName,
ColumnType.STANDARD);
+ List<HColumn<N, V>> columns = cf.getColumns(rowKey);
+ List<String> columnNames = new ArrayList<String>();
+ for (HColumn<N, V> column : columns) {
+ columnNames.add(column.getName().toString());
+ }
+ return columnNames;
}
@SuppressWarnings("unchecked")
@@ -152,37 +156,41 @@
throw new HInvalidRequestException("ColumnFamily '" + columnFamily
+ "' does not exist");
}
ColumnFamily<SN, N, V> cf = m_keyspace.getColumnFamily(columnFamily);
- if (cf != null) {
- Row<SN, N, V> row = cf.getRow(rowKey);
+ if (superColumn != null) {
+ // Super Column case
+ SuperRowImpl<SN, N, V> superRow = cf.getSuperRow(rowKey);
+ if (superRow == null) {
+ superRow = new SuperRowImpl<SN, N, V>(rowKey);
+ cf.addSuperRow(superRow);
+ }
+ HSuperColumn<SN, N, V> hSuperColumn =
superRow.getSuperColumn(superColumn);
+ if (hSuperColumn == null) {
+ hSuperColumn = HectorUtil.createSuperColumn(superColumn,
column, value);
+ superRow.addSuperColumn(hSuperColumn);
+
+ }
+ HColumn<N, V> hColumn = HectorUtil.getColumn(hSuperColumn, column);
+ if (hColumn == null) {
+ HectorUtil.addColumn(hSuperColumn, column, value);
+ }
+ else {
+ hColumn.setValue((V) value);
+ }
+ }
+ else {
+ // Column case
+ RowImpl<SN, N, V> row = cf.getRow(rowKey);
if (row == null) {
- row = new Row<SN, N, V>(cf, rowKey);
+ row = new RowImpl<SN, N, V>(rowKey);
cf.addRow(row);
}
- if (superColumn != null) {
- // Super Column case
- HSuperColumn<SN, N, V> hSuperColumn =
row.getSuperColumn(superColumn);
- if (hSuperColumn == null) {
- hSuperColumn = HectorUtil.createHSuperColumn(superColumn,
column, value);
- row.addSuperColumn(hSuperColumn);
- }
- HColumn<N, V> hColumn = HectorUtil.getHColumn(hSuperColumn,
column);
- if (hColumn == null) {
- HectorUtil.addHColumn(hSuperColumn, column, value);
- }
- else {
- hColumn.setValue((V) value);
- }
+ HColumn<N, V> col = row.getColumn(column);
+ if (col == null) {
+ col = new HColumnImpl<N, V>((N) column, (V) value,
System.currentTimeMillis());
+ row.addColumn(col);
}
else {
- // Column case
- HColumn<N, V> col = row.getColumn(column);
- if (col == null) {
- col = new HColumnImpl<N, V>((N) column, (V) value,
System.currentTimeMillis());
- row.addColumn(col);
- }
- else {
- col.setValue((V) value);
- }
+ col.setValue((V) value);
}
}
}
@@ -223,36 +231,51 @@
return null;
}
- @Override
public <T> Iterator<SuperRow<String, String, String, T>>
getSuperRows(String columnFamily, Class<T> clazz) {
- 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);
}
@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");
}
- @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");
+ 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 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<me.prettyprint.hector.api.beans.Row<String, String,
T>> getRows(String columnFamily,
+ public <T> Iterator<Row<String, String, T>> getRows(String columnFamily,
Class<T> clazz) {
- throw new IllegalArgumentException("This method is not yet implemented
by this mock object");
+ ColumnFamily<SN, N, V> cf = m_keyspace.getColumnFamily(columnFamily);
+ if (cf == null) {
+ throw new IllegalArgumentException("The ColumnFamily '" +
columnFamily + "' does not exist");
+ }
+ 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");
}
@@ -261,6 +284,10 @@
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);
if (columns != null) {
List<HColumn<String, T>> hColumns = new ArrayList<HColumn<String,
T>>();
@@ -274,20 +301,40 @@
return null;
}
- @Override
public void deleteRow(String columnFamily, String rowKey) {
- m_keyspace.getColumnFamily(columnFamily).removeRow(rowKey);
+ 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) {
+ cf.removeRow(rowKey);
+ }
+ else {
+ cf.removeSuperRow(rowKey);
+ }
}
@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");
}
@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");
}
-
-
+
+ private ColumnFamily<SN, N, V> getExpectedColumnFamily(String
columnFamily, ColumnType type) {
+ if (!exists(columnFamily)) {
+ throw new HInvalidRequestException("ColumnFamily '" + columnFamily
+ "' does not exist");
+ }
+ ColumnFamily<SN, N, V> cf = m_keyspace.getColumnFamily(columnFamily);
+ if (!cf.getType().equals(type)) {
+ throw new IllegalArgumentException("The ColumnFamily '" +
columnFamily + "' is of unexpected type "
+ + cf.getType());
+ }
+ return cf;
+ }
}
Modified:
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/ColumnFamily.java
==============================================================================
---
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/ColumnFamily.java
(original)
+++
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/ColumnFamily.java
Fri Sep 16 14:27:54 2011
@@ -38,7 +38,8 @@
private ColumnFamilyDefinition.ColumnType m_type;
// Rows contained by the column family
- private List<Row<SN, N, V>> m_rows = new ArrayList<Row<SN, N, V>>();
+ private List<RowImpl<SN, N, V>> m_rows = new ArrayList<RowImpl<SN, N,
V>>();
+ private List<SuperRowImpl<SN, N, V>> m_superRows = new
ArrayList<SuperRowImpl<SN, N, V>>();
public ColumnFamily(String name, ColumnFamilyDefinition.ColumnType type) {
m_name = name;
@@ -52,17 +53,70 @@
public ColumnFamilyDefinition.ColumnType getType() {
return m_type;
}
+
+ public List<String> getRowKeys() {
+ List<String> rowKeys = new ArrayList<String>();
+ if (m_type == ColumnType.STANDARD) {
+ List<RowImpl<SN, N, V>> rows = getRows();
+ for (RowImpl<SN, N, V> row : rows) {
+ rowKeys.add(row.getKey());
+ }
+ }
+ else {
+ List<SuperRowImpl<SN, N, V>> superRows = getSuperRows();
+ for (SuperRowImpl<SN, N, V> row : superRows) {
+ rowKeys.add(row.getKey());
+ }
+ }
+ return rowKeys;
+ }
- public void addRow(Row<SN, N, V> row) {
+ public void addRow(RowImpl<SN, N, V> row) {
+ if (m_type == ColumnType.SUPER) {
+ throw new HInvalidRequestException(
+ "Cannot append rows to a ColumnFamily of type super, add super
rows instead");
+ }
m_rows.add(row);
}
- public List<Row<SN, N, V>> getRows() {
+ public void addSuperRow(SuperRowImpl<SN, N, V> superRow) {
+ if (m_type == ColumnType.STANDARD) {
+ throw new HInvalidRequestException(
+ "Cannot append super rows to a ColumnFamily of type standard,
add rows instead");
+ }
+ m_superRows.add(superRow);
+ }
+
+ public List<RowImpl<SN, N, V>> getRows() {
+ if (m_type == ColumnType.SUPER) {
+ throw new HInvalidRequestException(
+ "Cannot retrieve rows from a ColumnFamily of type super,
retrieve super rows instead");
+ }
return m_rows;
}
+ public List<SuperRowImpl<SN, N, V>> getSuperRows() {
+ if (m_type == ColumnType.STANDARD) {
+ throw new HInvalidRequestException(
+ "Cannot retrieve super rows from a ColumnFamily of type
standard, retrieve rows instead");
+ }
+ return m_superRows;
+ }
+
+ public List<SuperRowImpl<SN, N, V>> getSuperRows(String superColumn) {
+ if (m_type == ColumnType.STANDARD) {
+ throw new HInvalidRequestException(
+ "Cannot retrieve super rows from a ColumnFamily of type
standard, retrieve rows instead");
+ }
+ return m_superRows;
+ }
+
public void removeRow(String rowKey) {
- for (Row<SN, N, V> row : m_rows) {
+ if (m_type == ColumnType.SUPER) {
+ throw new HInvalidRequestException(
+ "Cannot remove rows from a ColumnFamily of type super, remove
super rows instead");
+ }
+ for (RowImpl<SN, N, V> row : m_rows) {
if (row.getKey().equals(rowKey)) {
m_rows.remove(row);
break;
@@ -70,8 +124,38 @@
}
}
- public Row<SN, N, V> getRow(String rowKey) {
- for (Row<SN, N, V> row : m_rows) {
+ public void removeSuperRow(String rowKey) {
+ if (m_type == ColumnType.STANDARD) {
+ throw new HInvalidRequestException(
+ "Cannot remove super rows from a ColumnFamily of type
standard, remove rows instead");
+ }
+ for (SuperRowImpl<SN, N, V> superRow : m_superRows) {
+ if (superRow.getKey().equals(rowKey)) {
+ m_rows.remove(superRow);
+ break;
+ }
+ }
+ }
+
+ public RowImpl<SN, N, V> getRow(String rowKey) {
+ if (m_type == ColumnType.SUPER) {
+ throw new HInvalidRequestException(
+ "Cannot retrieve row from a ColumnFamily of type super,
retrieve rows instead");
+ }
+ for (RowImpl<SN, N, V> row : m_rows) {
+ if (row.getKey().equals(rowKey)) {
+ return row;
+ }
+ }
+ return null;
+ }
+
+ public SuperRowImpl<SN, N, V> getSuperRow(String rowKey) {
+ if (m_type == ColumnType.STANDARD) {
+ throw new HInvalidRequestException(
+ "Cannot retrieve super rows from a ColumnFamily of type
standard, retrieve rows instead");
+ }
+ for (SuperRowImpl<SN, N, V> row : m_superRows) {
if (row.getKey().equals(rowKey)) {
return row;
}
@@ -81,9 +165,9 @@
public List<HSuperColumn<SN, N, V>> getSuperColumns(String rowKey) {
if (m_type == ColumnType.SUPER) {
- for (Row<SN, N, V> row : m_rows) {
- if (row.getKey().equals(rowKey)) {
- return row.getSuperColumns();
+ for (SuperRowImpl<SN, N, V> superRow : m_superRows) {
+ if (superRow.getKey().equals(rowKey)) {
+ return superRow.getSuperColumns();
}
}
return null;
@@ -96,7 +180,7 @@
public List<HColumn<N, V>> getColumns(String rowKey) {
if (m_type == ColumnType.STANDARD) {
- for (Row<SN, N, V> row : m_rows) {
+ for (RowImpl<SN, N, V> row : m_rows) {
if (row.getKey().equals(rowKey)) {
return row.getColumns();
}
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:27:54 2011
@@ -16,6 +16,7 @@
package org.amdatu.cassandra.test.unit.framework.mock;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import me.prettyprint.cassandra.model.HColumnImpl;
@@ -23,12 +24,16 @@
import me.prettyprint.cassandra.serializers.SerializerTypeInferer;
import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.hector.api.Serializer;
+import me.prettyprint.hector.api.beans.ColumnSlice;
import me.prettyprint.hector.api.beans.HColumn;
import me.prettyprint.hector.api.beans.HSuperColumn;
+import me.prettyprint.hector.api.beans.Row;
+import me.prettyprint.hector.api.beans.SuperRow;
+import me.prettyprint.hector.api.beans.SuperSlice;
public class HectorUtil {
@SuppressWarnings("unchecked")
- public static <SN, N, V> HSuperColumn<SN, N, V> createHSuperColumn(String
superColumn, String column, Object value) {
+ public static <SN, N, V> HSuperColumn<SN, N, V> createSuperColumn(String
superColumn, String column, Object value) {
// First initialize the serializers
Serializer<SN> snSer = (Serializer<SN>) StringSerializer.get();
Serializer<N> nSer = (Serializer<N>) StringSerializer.get();
@@ -45,14 +50,14 @@
}
@SuppressWarnings("unchecked")
- public static <SN, N, V> void addHColumn(HSuperColumn<SN, N, V>
hSuperColumn, String column, Object value) {
+ public static <SN, N, V> void addColumn(HSuperColumn<SN, N, V>
hSuperColumn, String column, Object value) {
List<HColumn<N, V>> hColumns = hSuperColumn.getColumns();
HColumn<N, V> hColumn = new HColumnImpl<N, V>((N) column, (V) value,
System.currentTimeMillis());
hColumns.add(hColumn);
hSuperColumn.setSubcolumns(hColumns);
}
- public static <SN, N, V> HColumn<N, V> getHColumn(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;
@@ -60,4 +65,117 @@
}
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)) {
+ return col;
+ }
+ }
+ return null;
+ }
+
+ };
+ }
+ };
+ }
+
+ public static <T, SN, N, V> SuperRow<String, String, String, T>
convertSuperRow(final SuperRowImpl<SN,N,V> superRow) {
+ 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());
+ }
+
+ public HSuperColumn<String, String, T>
getColumnByName(String columnName) {
+ for (HSuperColumn<String, String, T> col :
getSuperColumns()) {
+ if (col.getName().equals(columnName)) {
+ return col;
+ }
+ }
+ return null;
+ }
+ };
+ }
+ };
+ }
+
+ @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>>();
+ for (HColumn<N, V> col : hColumns) {
+ HColumn<String, T> ccol = (HColumn<String, T>) col;
+ cols.add(ccol);
+ }
+ return cols;
+ }
+
+ @SuppressWarnings("unchecked")
+ 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;
+ 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();
+ }
+
+ public Row<String, String, T> next() {
+ if (!hasNext()) {
+ return null;
+ }
+ RowImpl<SN, N, V> row = rows.get(index++);
+ return convertRow(row);
+ }
+
+ public void remove() {
+ throw new IllegalArgumentException("Not implemented");
+ }
+ };
+ }
+
+ public static <T, SN, N, V> Iterator<SuperRow<String, String, String, T>>
getSuperRowIterator(final List<SuperRowImpl<SN, N, V>> rows) {
+ return new Iterator<SuperRow<String, String, String, T>>() {
+ int index = 0;
+
+ public boolean hasNext() {
+ return index < rows.size();
+ }
+
+ public SuperRow<String, String, String, T> next() {
+ if (!hasNext()) {
+ return null;
+ }
+ SuperRowImpl<SN,N,V> row = rows.get(index++);
+ return convertSuperRow(row);
+ }
+
+ public void remove() {
+ throw new IllegalArgumentException("Not implemented");
+ }
+ };
+ }
}
Added:
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/RowImpl.java
==============================================================================
--- (empty file)
+++
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/RowImpl.java
Fri Sep 16 14:27:54 2011
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010, 2011 The Amdatu Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.amdatu.cassandra.test.unit.framework.mock;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import me.prettyprint.hector.api.beans.HColumn;
+
+public class RowImpl<SN, N, V> {
+ private String m_key;
+ private List<HColumn<N, V>> m_columns = new ArrayList<HColumn<N, V>>();
+
+ public RowImpl(String key) {
+ m_key = key;
+ }
+
+ public String getKey() {
+ return m_key;
+ }
+
+ public void addColumn(HColumn<N, V> column) {
+ m_columns.add(column);
+ }
+
+ public List<HColumn<N, V>> getColumns() {
+ return m_columns;
+ }
+
+ public HColumn<N, V> getColumn(String name) {
+ for (HColumn<N, V> column : m_columns) {
+ if (column.getName().equals(name)) {
+ return column;
+ }
+ }
+ return null;
+ }
+}
Added:
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/SuperRowImpl.java
==============================================================================
--- (empty file)
+++
trunk/amdatu-cassandra/test-unit/src/main/java/org/amdatu/cassandra/test/unit/framework/mock/SuperRowImpl.java
Fri Sep 16 14:27:54 2011
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010, 2011 The Amdatu Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.amdatu.cassandra.test.unit.framework.mock;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import me.prettyprint.hector.api.beans.HSuperColumn;
+
+public class SuperRowImpl<SN, N, V> {
+ private String m_key;
+ private List<HSuperColumn<SN, N, V>> m_superColumns = new
ArrayList<HSuperColumn<SN, N, V>>();
+
+ public SuperRowImpl(String key) {
+ m_key = key;
+ }
+
+ public String getKey() {
+ return m_key;
+ }
+
+ public void addSuperColumn(HSuperColumn<SN, N, V> superColumn) {
+ m_superColumns.add(superColumn);
+ }
+
+ public List<HSuperColumn<SN, N, V>> getSuperColumns() {
+ return m_superColumns;
+ }
+
+ public HSuperColumn<SN, N, V> getSuperColumn(String name) {
+ for (HSuperColumn<SN, N, V> column : m_superColumns) {
+ if (column.getName().equals(name)) {
+ return column;
+ }
+ }
+ return null;
+ }
+}
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits