- Reverted newly introduced constructor for AbstractRowInsertionBuilder. - Refactored HBaseUpdateCallback so it more strictly adheres to the MetaModel UpdateCallback interface. It is no longer public. - Removed some of the overabundant constructors for HBaseColumn and changed the ID column's column type to ColumnType.BINARY. - Refactored the HBaseRowInsertionBuilder, so it can be instantiated without the columns for the update. Move all possible "value" methods there, because it can't determine based on the Table which columns are available for updating (because Big Table doesn't work in that manner), you can use the "value" method to dynamically add HBase columns for inserting. - Updated unit tests accordingly.
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/909cb48f Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/909cb48f Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/909cb48f Branch: refs/heads/master Commit: 909cb48ff31be6476b71e9565826f6579446acce Parents: 5313a49 Author: Arjan Seijkens <[email protected]> Authored: Thu Jun 7 17:10:41 2018 +0200 Committer: Arjan Seijkens <[email protected]> Committed: Thu Jun 7 17:10:41 2018 +0200 ---------------------------------------------------------------------- .../insert/AbstractRowInsertionBuilder.java | 6 - .../org/apache/metamodel/hbase/HBaseColumn.java | 22 +--- .../hbase/HBaseRowInsertionBuilder.java | 112 ++++++++++++----- .../metamodel/hbase/HBaseUpdateCallback.java | 20 +--- .../apache/metamodel/hbase/DeleteRowTest.java | 7 +- .../hbase/HBaseUpdateCallbackTest.java | 11 +- .../apache/metamodel/hbase/InsertRowTest.java | 120 ++----------------- 7 files changed, 104 insertions(+), 194 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/909cb48f/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java b/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java index bf6dcd9..58c0da8 100644 --- a/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java +++ b/core/src/main/java/org/apache/metamodel/insert/AbstractRowInsertionBuilder.java @@ -44,12 +44,6 @@ public abstract class AbstractRowInsertionBuilder<U extends UpdateCallback> exte _table = table; } - public AbstractRowInsertionBuilder(final U updateCallback, final Table table, final List<Column> columns) { - super(columns); - _updateCallback = updateCallback; - _table = table; - } - @Override public Table getTable() { return _table; http://git-wip-us.apache.org/repos/asf/metamodel/blob/909cb48f/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java index 45e7f4f..d07c477 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseColumn.java @@ -19,38 +19,27 @@ package org.apache.metamodel.hbase; import org.apache.metamodel.schema.ColumnType; -import org.apache.metamodel.schema.ColumnTypeImpl; import org.apache.metamodel.schema.MutableColumn; -import org.apache.metamodel.schema.SuperColumnType; import org.apache.metamodel.schema.Table; public final class HBaseColumn extends MutableColumn { - public static final ColumnType DEFAULT_COLUMN_TYPE_FOR_ID_COLUMN = new ColumnTypeImpl("BYTE[]", - SuperColumnType.LITERAL_TYPE); + public static final ColumnType DEFAULT_COLUMN_TYPE_FOR_ID_COLUMN = ColumnType.BINARY; public static final ColumnType DEFAULT_COLUMN_TYPE_FOR_COLUMN_FAMILIES = ColumnType.LIST; private final String columnFamily; private final String qualifier; public HBaseColumn(final String columnFamily, final Table table) { - this(columnFamily, null, table, -1); + this(columnFamily, null, table, -1, null); } public HBaseColumn(final String columnFamily, final String qualifier, final Table table) { - this(columnFamily, qualifier, table, -1); - } - - public HBaseColumn(final String columnFamily, final Table table, final int columnNumber) { - this(columnFamily, null, table, columnNumber); - } - - public HBaseColumn(final String columnFamily, final String qualifier, final Table table, final int columnNumber) { - this(columnFamily, qualifier, table, columnNumber, null); + this(columnFamily, qualifier, table, -1, null); } public HBaseColumn(final String columnFamily, final String qualifier, final Table table, final int columnNumber, final ColumnType columnType) { - super(columnFamily, table); + super(getName(columnFamily, qualifier), table); if (columnFamily == null) { throw new IllegalArgumentException("Column family isn't allowed to be null."); } else if (table == null || !(table instanceof HBaseTable)) { @@ -83,8 +72,7 @@ public final class HBaseColumn extends MutableColumn { return qualifier; } - @Override - public String getName() { + private static String getName(final String columnFamily, final String qualifier) { if (qualifier == null) { return columnFamily; } http://git-wip-us.apache.org/repos/asf/metamodel/blob/909cb48f/hbase/src/main/java/org/apache/metamodel/hbase/HBaseRowInsertionBuilder.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseRowInsertionBuilder.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseRowInsertionBuilder.java index b6f797a..0a3a4a3 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseRowInsertionBuilder.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseRowInsertionBuilder.java @@ -18,6 +18,7 @@ */ package org.apache.metamodel.hbase; +import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.LinkedHashSet; @@ -26,16 +27,19 @@ import java.util.Set; import java.util.stream.Collectors; import org.apache.metamodel.MetaModelException; +import org.apache.metamodel.data.Style; import org.apache.metamodel.insert.AbstractRowInsertionBuilder; +import org.apache.metamodel.insert.RowInsertionBuilder; import org.apache.metamodel.schema.Column; /** * A builder-class to insert rows in a HBase datastore. */ -// TODO: Possible future improvement: Make it possible to change the columns for each execute. -// Now each row will get exactly the same columns. public class HBaseRowInsertionBuilder extends AbstractRowInsertionBuilder<HBaseUpdateCallback> { - private final int _indexOfIdColumn; + private List<HBaseColumn> columns = new ArrayList<>(); + private List<Object> values = new ArrayList<>(); + + private int _indexOfIdColumn = -1; /** * Creates a {@link HBaseRowInsertionBuilder}. The table and the column's columnFamilies are checked to exist in the schema. @@ -45,33 +49,10 @@ public class HBaseRowInsertionBuilder extends AbstractRowInsertionBuilder<HBaseU * @throws IllegalArgumentException the columns list can't be null or empty * @throws MetaModelException when no ID-column is found. */ - public HBaseRowInsertionBuilder(final HBaseUpdateCallback updateCallback, final HBaseTable table, - final List<HBaseColumn> columns) { - super(updateCallback, table, columns.stream().map(column -> (Column) column).collect(Collectors.toList())); - - this._indexOfIdColumn = getIndexOfIdColumn(columns); - if (_indexOfIdColumn == -1) { - throw new MetaModelException("The ID-Column was not found"); - } + public HBaseRowInsertionBuilder(final HBaseUpdateCallback updateCallback, final HBaseTable table) { + super(updateCallback, table); checkTable(updateCallback, table); - // The columns parameter should match the table's columns, just to be sure, this is checked again - checkColumnFamilies(table, getColumnFamilies(columns)); - } - - /** - * Returns the index of the ID-column (see {@link HBaseDataContext#FIELD_ID}) in an array of HBaseColumns. - * - * @param columns - * @return index of the ID-column - */ - private static int getIndexOfIdColumn(final List<HBaseColumn> columns) { - for (int i = 0; i < columns.size(); i++) { - if (HBaseDataContext.FIELD_ID.equals(columns.get(i).getColumnFamily())) { - return i; - } - } - return -1; } /** @@ -121,19 +102,84 @@ public class HBaseRowInsertionBuilder extends AbstractRowInsertionBuilder<HBaseU * @param columns * @return {@link LinkedHashSet} */ - private static Set<String> getColumnFamilies(final List<HBaseColumn> columns) { - return columns.stream().map(HBaseColumn::getColumnFamily).distinct().collect(Collectors.toSet()); + private static Set<String> getColumnFamilies(final HBaseColumn[] columns) { + return Arrays.stream(columns).map(HBaseColumn::getColumnFamily).distinct().collect(Collectors.toSet()); } @Override public synchronized void execute() { + if (_indexOfIdColumn == -1) { + throw new MetaModelException("The ID-Column was not found"); + } + + // The columns parameter should match the table's columns, just to be sure, this is checked again + checkColumnFamilies((HBaseTable) getTable(), getColumnFamilies(getColumns())); + ((HBaseDataContext) getUpdateCallback().getDataContext()).getHBaseClient().insertRow(getTable().getName(), getColumns(), getValues(), _indexOfIdColumn); } @Override - public HBaseColumn[] getColumns() { - return Arrays.stream(super.getColumns()).map(column -> (HBaseColumn) column).toArray( - size -> new HBaseColumn[size]); + protected HBaseColumn[] getColumns() { + return columns.toArray(new HBaseColumn[columns.size()]); + } + + @Override + protected Object[] getValues() { + return values.toArray(new Object[values.size()]); + } + + @Override + public RowInsertionBuilder value(final Column column, final Object value, final Style style) { + if (column == null) { + throw new IllegalArgumentException("Column cannot be null."); + } + if (!(column instanceof HBaseColumn)) { + throw new IllegalArgumentException("Column is not an HBaseColumn."); + } + + for (int i = 0; i < columns.size(); i++) { + if (columns.get(i).equals(column)) { + values.set(i, value); + return this; + } + } + + if (column.isPrimaryKey()) { + _indexOfIdColumn = columns.size(); + } + + columns.add((HBaseColumn) column); + values.add(value); + + return this; + } + + @Override + public RowInsertionBuilder value(final int columnIndex, final Object value) { + values.set(columnIndex, value); + return this; + } + + @Override + public RowInsertionBuilder value(final String columnName, final Object value) { + for (Column column : columns) { + if (column.getName().equals(columnName)) { + return value(column, value, null); + } + } + + throw new IllegalArgumentException("No such column in table: " + columnName + ", available columns are: " + + columns); + } + + @Override + public boolean isSet(final Column column) { + for (int i = 0; i < columns.size(); i++) { + if (columns.get(i).equals(column)) { + return values.get(i) != null; + } + } + return false; } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/909cb48f/hbase/src/main/java/org/apache/metamodel/hbase/HBaseUpdateCallback.java ---------------------------------------------------------------------- diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseUpdateCallback.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseUpdateCallback.java index 9c17ddd..5f44200 100644 --- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseUpdateCallback.java +++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseUpdateCallback.java @@ -18,7 +18,6 @@ */ package org.apache.metamodel.hbase; -import java.util.List; import java.util.Set; import org.apache.metamodel.AbstractUpdateCallback; @@ -33,7 +32,7 @@ import org.apache.metamodel.schema.Table; /** * This class is used to build objects to do client-operations on a HBase datastore */ -public class HBaseUpdateCallback extends AbstractUpdateCallback implements UpdateCallback { +final class HBaseUpdateCallback extends AbstractUpdateCallback implements UpdateCallback { public HBaseUpdateCallback(final HBaseDataContext dataContext) { super(dataContext); @@ -71,23 +70,8 @@ public class HBaseUpdateCallback extends AbstractUpdateCallback implements Updat */ @Override public RowInsertionBuilder insertInto(final Table table) { - throw new UnsupportedOperationException( - "We need an explicit list of columns when inserting into an HBase table."); - } - - /** - * Initiates the building of a row insertion operation. - * @param table Table to get inserts. - * @param columns List of {@link HBaseColumn} to insert on. - * @return {@link HBaseRowInsertionBuilder} - * @throws IllegalArgumentException The table must be an {@link HBaseTable} and the columns list can't be null or empty - */ - public HBaseRowInsertionBuilder insertInto(final Table table, final List<HBaseColumn> columns) { - if (columns == null || columns.isEmpty()) { - throw new IllegalArgumentException("The hbaseColumns list is null or empty"); - } if (table instanceof HBaseTable) { - return new HBaseRowInsertionBuilder(this, (HBaseTable) table, columns); + return new HBaseRowInsertionBuilder(this, (HBaseTable) table); } else { throw new IllegalArgumentException("Not an HBase table: " + table); } http://git-wip-us.apache.org/repos/asf/metamodel/blob/909cb48f/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java index 7aeb938..5a95032 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java @@ -18,13 +18,13 @@ */ package org.apache.metamodel.hbase; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; import java.io.IOException; -import java.util.List; import java.util.Map; import org.apache.metamodel.MetaModelException; +import org.apache.metamodel.insert.RowInsertionBuilder; import org.apache.metamodel.schema.MutableTable; import org.junit.Rule; import org.junit.Test; @@ -152,10 +152,9 @@ public class DeleteRowTest extends HBaseUpdateCallbackTest { final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR); final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); checkRows(false, false); - final HBaseRowInsertionBuilder rowInsertionBuilder = getUpdateCallback().insertInto(existingTable, columns); + final RowInsertionBuilder rowInsertionBuilder = getUpdateCallback().insertInto(existingTable); setValuesInInsertionBuilder(row, rowInsertionBuilder); rowInsertionBuilder.execute(); checkRows(true, false); http://git-wip-us.apache.org/repos/asf/metamodel/blob/909cb48f/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java index 0d279b8..14205fb 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java @@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.metamodel.insert.RowInsertionBuilder; import org.apache.metamodel.schema.ColumnType; import org.apache.metamodel.schema.MutableSchema; import org.apache.metamodel.schema.Table; @@ -84,7 +85,7 @@ public abstract class HBaseUpdateCallbackTest extends HBaseTestCase { /** * Check if the table has been inserted successfully. Checks are performed in the schema and the datastore. - * + * * @throws IOException because the admin object needs to be created */ protected void checkSuccesfullyInsertedTable() throws IOException { @@ -212,12 +213,8 @@ public abstract class HBaseUpdateCallbackTest extends HBaseTestCase { * @param enoughMatchingValues if true, the amount of columns match the amount of values */ protected void setValuesInInsertionBuilder(final Map<HBaseColumn, Object> row, - final HBaseRowInsertionBuilder rowInsertionBuilder) { - int i = 0; - for (Object value : row.values()) { - rowInsertionBuilder.value(i, value); - i++; - } + final RowInsertionBuilder rowInsertionBuilder) { + row.entrySet().forEach(entry -> rowInsertionBuilder.value(entry.getKey(), entry.getValue())); } /** http://git-wip-us.apache.org/repos/asf/metamodel/blob/909cb48f/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java index 61e8f9c..31a33d0 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java @@ -21,12 +21,12 @@ package org.apache.metamodel.hbase; import static org.junit.Assert.*; import java.io.IOException; -import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import org.apache.metamodel.MetaModelException; +import org.apache.metamodel.insert.RowInsertionBuilder; import org.apache.metamodel.schema.MutableTable; import org.junit.Rule; import org.junit.Test; @@ -47,21 +47,6 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { } /** - * Using only the table parameter, should throw an exception - * - * @throws IOException - */ - @Test - public void testOnlyUsingTableParameter() throws IOException { - exception.expect(UnsupportedOperationException.class); - exception.expectMessage("We need an explicit list of columns when inserting into an HBase table."); - - final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - CF_BAR); - getUpdateCallback().insertInto(existingTable); - } - - /** * Having the table type wrong, should throw an exception * * @throws IOException @@ -72,40 +57,7 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { exception.expect(IllegalArgumentException.class); exception.expectMessage("Not an HBase table: " + mutableTable); - final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - CF_BAR); - final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); - getUpdateCallback().insertInto(mutableTable, columns); - } - - /** - * Having the columns parameter null at the updateCallBack, should throw an exception - * - * @throws IOException - */ - @Test - public void testColumnsNullAtUpdateCallBack() throws IOException { - exception.expect(IllegalArgumentException.class); - exception.expectMessage("The hbaseColumns list is null or empty"); - - final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - CF_BAR); - getUpdateCallback().insertInto(existingTable, null); - } - - /** - * Having the columns parameter empty at the updateCallBack, should throw an exception - * - * @throws IOException - */ - @Test - public void testColumnsEmptyAtUpdateCallBack() throws IOException { - exception.expect(IllegalArgumentException.class); - exception.expectMessage("The hbaseColumns list is null or empty"); - final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - CF_BAR); - getUpdateCallback().insertInto(existingTable, new ArrayList<HBaseColumn>()); + getUpdateCallback().insertInto(mutableTable); } /** @@ -121,11 +73,9 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { exception.expectMessage("Trying to insert data into table: " + wrongTable.getName() + ", which doesn't exist yet"); - final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - CF_BAR); - final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); - getUpdateCallback().insertInto(wrongTable, columns); + createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR); + + getUpdateCallback().insertInto(wrongTable); } /** @@ -139,54 +89,10 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { exception.expectMessage("The ID-Column was not found"); final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - CF_BAR); - final Map<HBaseColumn, Object> row = createRow(existingTable, null, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); - getUpdateCallback().insertInto(existingTable, columns); - } - - /** - * If the column family doesn't exist in the table (wrong columnFamily), then a exception should be thrown - * - * @throws IOException - */ - @Test - public void testColumnFamilyDoesntExistsBecauseItsNull() throws IOException { - final String wrongColumnFamily = "wrongColumnFamily"; - - exception.expect(MetaModelException.class); - exception.expectMessage(String.format("ColumnFamily: %s doesn't exist in the schema of the table", - wrongColumnFamily)); - - final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR); - final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); - final HBaseTable wrongTable = createHBaseTable(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - wrongColumnFamily); - getUpdateCallback().insertInto(wrongTable, columns); - } - /** - * If the column family doesn't exist in the table (new columnFamily), then a exception should be thrown - * - * @throws IOException - */ - @Test - public void testColumnFamilyDoesntExistsBecauseItsNew() throws IOException { - final String wrongColumnFamily = "newColumnFamily"; - - exception.expect(MetaModelException.class); - exception.expectMessage(String.format("ColumnFamily: %s doesn't exist in the schema of the table", - wrongColumnFamily)); - - final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, - CF_BAR); - final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); - final HBaseTable wrongTable = createHBaseTable(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, - wrongColumnFamily); - getUpdateCallback().insertInto(wrongTable, columns); + final RowInsertionBuilder rowInsertionBuilder = getUpdateCallback().insertInto(existingTable); + rowInsertionBuilder.execute(); } /** @@ -300,9 +206,7 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { public void testInsertIntoWithoutExecute() throws IOException { final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR); - final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); - getUpdateCallback().insertInto(existingTable, columns); + getUpdateCallback().insertInto(existingTable); } /** @@ -311,14 +215,13 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { * @throws IOException */ @Test - public void testQaulifierNull() throws IOException { + public void testQualifierNull() throws IOException { final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR); final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, true); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); checkRows(false, true); - final HBaseRowInsertionBuilder rowInsertionBuilder = getUpdateCallback().insertInto(existingTable, columns); + final RowInsertionBuilder rowInsertionBuilder = getUpdateCallback().insertInto(existingTable); setValuesInInsertionBuilder(row, rowInsertionBuilder); rowInsertionBuilder.execute(); checkRows(true, true); @@ -334,10 +237,9 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { final HBaseTable existingTable = createAndAddTableToDatastore(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR); final Map<HBaseColumn, Object> row = createRow(existingTable, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR, false); - final List<HBaseColumn> columns = getHBaseColumnsFromRow(row); checkRows(false, false); - final HBaseRowInsertionBuilder rowInsertionBuilder = getUpdateCallback().insertInto(existingTable, columns); + final RowInsertionBuilder rowInsertionBuilder = getUpdateCallback().insertInto(existingTable); setValuesInInsertionBuilder(row, rowInsertionBuilder); rowInsertionBuilder.execute(); checkRows(true, false);
