Repository: hbase
Updated Branches:
  refs/heads/branch-2.1 9ac26b80b -> 8461e8588


HBASE-20853 Polish "Add defaults to Table Interface so Implementors don't have 
to"

Signed-off-by: Chia-Ping Tsai <chia7...@gmail.com>
Signed-off-by: Michael Stack <st...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/36c4f62d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/36c4f62d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/36c4f62d

Branch: refs/heads/branch-2.1
Commit: 36c4f62dafcede4cae20c939f72fa11443ab5bd6
Parents: 9ac26b8
Author: Balazs Meszaros <balazs.mesza...@cloudera.com>
Authored: Wed Jul 11 15:23:15 2018 +0200
Committer: Chia-Ping Tsai <chia7...@gmail.com>
Committed: Thu Jul 19 20:48:32 2018 +0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/client/Table.java   | 69 ++++++++++++++------
 1 file changed, 49 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/36c4f62d/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Table.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Table.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Table.java
index 191d359..6f779cf 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Table.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Table.java
@@ -20,21 +20,24 @@ package org.apache.hadoop.hbase.client;
 
 import java.io.Closeable;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CompareOperator;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.io.TimeRange;
 import org.apache.yetus.audience.InterfaceAudience;
+
 import org.apache.hadoop.hbase.client.coprocessor.Batch;
 import org.apache.hadoop.hbase.filter.CompareFilter;
 import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;
-
+import org.apache.hadoop.hbase.util.Bytes;
 import com.google.protobuf.Descriptors;
 import com.google.protobuf.Message;
 import com.google.protobuf.Service;
@@ -73,7 +76,15 @@ public interface Table extends Closeable {
    *             use {@link #getDescriptor()}
    */
   @Deprecated
-  HTableDescriptor getTableDescriptor() throws IOException;
+  default HTableDescriptor getTableDescriptor() throws IOException {
+    TableDescriptor descriptor = getDescriptor();
+
+    if (descriptor instanceof HTableDescriptor) {
+      return (HTableDescriptor)descriptor;
+    } else {
+      return new HTableDescriptor(descriptor);
+    }
+  }
 
   /**
    * Gets the {@link org.apache.hadoop.hbase.client.TableDescriptor table 
descriptor} for this table.
@@ -96,7 +107,7 @@ public interface Table extends Closeable {
    * @throws IOException e
    */
   default boolean exists(Get get) throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    return exists(Collections.singletonList(get))[0];
   }
 
   /**
@@ -176,7 +187,7 @@ public interface Table extends Closeable {
    * @since 0.20.0
    */
   default Result get(Get get) throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    return get(Collections.singletonList(get))[0];
   }
 
   /**
@@ -240,7 +251,6 @@ public interface Table extends Closeable {
     throw new NotImplementedException("Add an implementation!");
   }
 
-
   /**
    * Puts some data in the table.
    *
@@ -249,7 +259,7 @@ public interface Table extends Closeable {
    * @since 0.20.0
    */
   default void put(Put put) throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    put(Collections.singletonList(put));
   }
 
   /**
@@ -289,7 +299,7 @@ public interface Table extends Closeable {
   @Deprecated
   default boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, 
byte[] value, Put put)
       throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    return checkAndPut(row, family, qualifier, CompareOperator.EQUAL, value, 
put);
   }
 
   /**
@@ -315,7 +325,10 @@ public interface Table extends Closeable {
   @Deprecated
   default boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier,
       CompareFilter.CompareOp compareOp, byte[] value, Put put) throws 
IOException {
-    throw new NotImplementedException("Add an implementation!");
+    RowMutations mutations = new RowMutations(put.getRow(), 1);
+    mutations.add(put);
+
+    return checkAndMutate(row, family, qualifier, compareOp, value, mutations);
   }
 
   /**
@@ -341,7 +354,10 @@ public interface Table extends Closeable {
   @Deprecated
   default boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, 
CompareOperator op,
       byte[] value, Put put) throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    RowMutations mutations = new RowMutations(put.getRow(), 1);
+    mutations.add(put);
+
+    return checkAndMutate(row, family, qualifier, op, value, mutations);
   }
 
   /**
@@ -360,7 +376,7 @@ public interface Table extends Closeable {
    * <p>
    * If a specified row does not exist, {@link Delete} will report as though 
sucessful
    * delete; no exception will be thrown. If there are any failures even after 
retries,
-   * a * {@link RetriesExhaustedWithDetailsException} will be thrown.
+   * a {@link RetriesExhaustedWithDetailsException} will be thrown.
    * RetriesExhaustedWithDetailsException contains lists of failed {@link 
Delete}s and
    * corresponding remote exceptions.
    *
@@ -399,7 +415,7 @@ public interface Table extends Closeable {
   @Deprecated
   default boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier,
     byte[] value, Delete delete) throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    return checkAndDelete(row, family, qualifier, CompareOperator.EQUAL, 
value, delete);
   }
 
   /**
@@ -425,7 +441,10 @@ public interface Table extends Closeable {
   @Deprecated
   default boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier,
     CompareFilter.CompareOp compareOp, byte[] value, Delete delete) throws 
IOException {
-    throw new NotImplementedException("Add an implementation!");
+    RowMutations mutations = new RowMutations(delete.getRow(), 1);
+    mutations.add(delete);
+
+    return checkAndMutate(row, family, qualifier, compareOp, value, mutations);
   }
 
   /**
@@ -451,7 +470,10 @@ public interface Table extends Closeable {
   @Deprecated
   default boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier,
                          CompareOperator op, byte[] value, Delete delete) 
throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    RowMutations mutations = new RowMutations(delete.getRow(), 1);
+    mutations.add(delete);
+
+    return checkAndMutate(row, family, qualifier, op, value, mutations);
   }
 
   /**
@@ -580,7 +602,9 @@ public interface Table extends Closeable {
    */
   default long incrementColumnValue(byte[] row, byte[] family, byte[] 
qualifier, long amount)
       throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    Increment increment = new Increment(row).addColumn(family, qualifier, 
amount);
+    Cell cell = increment(increment).getColumnLatestCell(family, qualifier);
+    return Bytes.toLong(cell.getValueArray(), cell.getValueOffset(), 
cell.getValueLength());
   }
 
   /**
@@ -602,7 +626,11 @@ public interface Table extends Closeable {
    */
   default long incrementColumnValue(byte[] row, byte[] family, byte[] 
qualifier,
     long amount, Durability durability) throws IOException {
-    throw new NotImplementedException("Add an implementation!");
+    Increment increment = new Increment(row)
+        .addColumn(family, qualifier, amount)
+        .setDurability(durability);
+    Cell cell = increment(increment).getColumnLatestCell(family, qualifier);
+    return Bytes.toLong(cell.getValueArray(), cell.getValueOffset(), 
cell.getValueLength());
   }
 
   /**
@@ -833,7 +861,7 @@ public interface Table extends Closeable {
    */
   @Deprecated
   default int getRpcTimeout() {
-    throw new NotImplementedException("Add an implementation!");
+    return (int)getRpcTimeout(TimeUnit.MILLISECONDS);
   }
 
   /**
@@ -850,7 +878,8 @@ public interface Table extends Closeable {
    */
   @Deprecated
   default void setRpcTimeout(int rpcTimeout) {
-    throw new NotImplementedException("Add an implementation!");
+    setReadRpcTimeout(rpcTimeout);
+    setWriteRpcTimeout(rpcTimeout);
   }
 
   /**
@@ -869,7 +898,7 @@ public interface Table extends Closeable {
    */
   @Deprecated
   default int getReadRpcTimeout() {
-    throw new NotImplementedException("Add an implementation!");
+    return (int)getReadRpcTimeout(TimeUnit.MILLISECONDS);
   }
 
   /**
@@ -902,7 +931,7 @@ public interface Table extends Closeable {
    */
   @Deprecated
   default int getWriteRpcTimeout() {
-    throw new NotImplementedException("Add an implementation!");
+    return (int)getWriteRpcTimeout(TimeUnit.MILLISECONDS);
   }
 
   /**
@@ -935,7 +964,7 @@ public interface Table extends Closeable {
    */
   @Deprecated
   default int getOperationTimeout() {
-    throw new NotImplementedException("Add an implementation!");
+    return (int)getOperationTimeout(TimeUnit.MILLISECONDS);
   }
 
   /**

Reply via email to