fixes #771 added default string tx methods

Project: http://git-wip-us.apache.org/repos/asf/incubator-fluo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fluo/commit/20d12a8a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fluo/tree/20d12a8a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fluo/diff/20d12a8a

Branch: refs/heads/master
Commit: 20d12a8ad24194295ae3b6df70f0bea554cb9f21
Parents: 7fa5296
Author: Keith Turner <ke...@deenlo.com>
Authored: Thu Sep 15 14:04:45 2016 -0400
Committer: Keith Turner <ke...@deenlo.com>
Committed: Thu Sep 15 14:04:45 2016 -0400

----------------------------------------------------------------------
 .../apache/fluo/api/client/SnapshotBase.java    | 34 +++++++++--
 .../apache/fluo/api/client/TransactionBase.java | 12 +++-
 .../apache/fluo/core/impl/TransactionImpl.java  | 36 -----------
 .../org/apache/fluo/core/impl/TxStringUtil.java | 64 --------------------
 .../fluo/core/log/TracingTransaction.java       | 37 -----------
 .../fluo/integration/TestTransaction.java       | 36 -----------
 6 files changed, 39 insertions(+), 180 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/20d12a8a/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
----------------------------------------------------------------------
diff --git 
a/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java 
b/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
index 0bc3837..e08132a 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/SnapshotBase.java
@@ -16,10 +16,14 @@
 package org.apache.fluo.api.client;
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
+import java.util.Map.Entry;
 
+import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Maps;
 import org.apache.fluo.api.client.scanner.ScannerBuilder;
 import org.apache.fluo.api.data.Bytes;
 import org.apache.fluo.api.data.Column;
@@ -118,13 +122,26 @@ public interface SnapshotBase {
    * Wrapper for {@link #get(Collection)} that uses Strings. All strings are 
encoded and decoded
    * using UTF-8.
    */
-  Map<RowColumn, String> gets(Collection<RowColumn> rowColumns);
+  default Map<RowColumn, String> gets(Collection<RowColumn> rowColumns) {
+    Map<RowColumn, Bytes> bytesMap = get(rowColumns);
+    return Maps.transformValues(bytesMap, b -> b.toString());
+  }
 
   /**
    * Wrapper for {@link #get(Collection, Set)} that uses Strings. All strings 
are encoded and
    * decoded using UTF-8.
    */
-  Map<String, Map<Column, String>> gets(Collection<? extends CharSequence> 
rows, Set<Column> columns);
+  default Map<String, Map<Column, String>> gets(Collection<? extends 
CharSequence> rows,
+      Set<Column> columns) {
+    Map<Bytes, Map<Column, Bytes>> rcvs =
+        get(Collections2.transform(rows, s -> Bytes.of(s)), columns);
+    Map<String, Map<Column, String>> ret = new HashMap<>(rcvs.size());
+
+    for (Entry<Bytes, Map<Column, Bytes>> entry : rcvs.entrySet()) {
+      ret.put(entry.getKey().toString(), 
Maps.transformValues(entry.getValue(), b -> b.toString()));
+    }
+    return ret;
+  }
 
   /**
    * Wrapper for {@link #get(Collection, Set)} that uses Strings. All strings 
are encoded and
@@ -139,13 +156,22 @@ public interface SnapshotBase {
    * Wrapper for {@link #get(Bytes, Column)} that uses Strings. All strings 
are encoded and decoded
    * using UTF-8.
    */
-  String gets(CharSequence row, Column column);
+  default String gets(CharSequence row, Column column) {
+    Bytes val = get(Bytes.of(row), column);
+    if (val == null) {
+      return null;
+    }
+    return val.toString();
+  }
 
   /**
    * Wrapper for {@link #get(Bytes, Set)} that uses Strings. All strings are 
encoded and decoded
    * using UTF-8.
    */
-  Map<Column, String> gets(CharSequence row, Set<Column> columns);
+  default Map<Column, String> gets(CharSequence row, Set<Column> columns) {
+    Map<Column, Bytes> values = get(Bytes.of(row), columns);
+    return Maps.transformValues(values, b -> b.toString());
+  }
 
   /**
    * Wrapper for {@link #get(Bytes, Set)} that uses Strings. All strings are 
encoded and decoded

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/20d12a8a/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
----------------------------------------------------------------------
diff --git 
a/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java 
b/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
index 8167b72..57a0e1e 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/client/TransactionBase.java
@@ -36,7 +36,9 @@ public interface TransactionBase extends SnapshotBase {
    * Wrapper for {@link #delete(Bytes, Column)} that uses Strings. All String 
are encoded using
    * UTF-8.
    */
-  void delete(CharSequence row, Column col);
+  default void delete(CharSequence row, Column col) {
+    delete(Bytes.of(row), col);
+  }
 
   /**
    * Sets a value (in {@link Bytes}) at the given row and {@link Column}
@@ -47,7 +49,9 @@ public interface TransactionBase extends SnapshotBase {
    * Wrapper for {@link #set(Bytes, Column, Bytes)} that uses Strings. All 
String are encoded using
    * UTF-8.
    */
-  void set(CharSequence row, Column col, CharSequence value) throws 
AlreadySetException;
+  default void set(CharSequence row, Column col, CharSequence value) throws 
AlreadySetException {
+    set(Bytes.of(row), col, Bytes.of(value));
+  }
 
   /**
    * Sets a weak notification at the given row and {@link Column}
@@ -58,5 +62,7 @@ public interface TransactionBase extends SnapshotBase {
    * Wrapper for {@link #setWeakNotification(Bytes, Column)} that uses 
Strings. All String are
    * encoded using UTF-8.
    */
-  void setWeakNotification(CharSequence row, Column col);
+  default void setWeakNotification(CharSequence row, Column col) {
+    setWeakNotification(Bytes.of(row), col);
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/20d12a8a/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java 
b/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java
index ebf06a7..2591a57 100644
--- a/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java
+++ b/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java
@@ -307,11 +307,6 @@ public class TransactionImpl implements AsyncTransaction, 
Snapshot {
   }
 
   @Override
-  public void set(CharSequence row, Column col, CharSequence value) throws 
AlreadySetException {
-    set(Bytes.of(row), col, Bytes.of(value));
-  }
-
-  @Override
   public void setWeakNotification(Bytes row, Column col) {
     checkIfOpen();
     Objects.requireNonNull(row);
@@ -333,11 +328,6 @@ public class TransactionImpl implements AsyncTransaction, 
Snapshot {
   }
 
   @Override
-  public void setWeakNotification(CharSequence row, Column col) {
-    setWeakNotification(Bytes.of(row), col);
-  }
-
-  @Override
   public void delete(Bytes row, Column col) throws AlreadySetException {
     checkIfOpen();
     Objects.requireNonNull(row);
@@ -345,11 +335,6 @@ public class TransactionImpl implements AsyncTransaction, 
Snapshot {
     set(row, col, DELETE);
   }
 
-  @Override
-  public void delete(CharSequence row, Column col) {
-    delete(Bytes.of(row), col);
-  }
-
   private ConditionalFlutation prewrite(ConditionalFlutation cm, Bytes row, 
Column col, Bytes val,
       Bytes primaryRow, Column primaryColumn, boolean isTriggerRow) {
     IteratorSetting iterConf = new IteratorSetting(10, PrewriteIterator.class);
@@ -658,27 +643,6 @@ public class TransactionImpl implements AsyncTransaction, 
Snapshot {
     return startTs;
   }
 
-  @Override
-  public String gets(CharSequence row, Column column) {
-    return TxStringUtil.gets(this, row, column);
-  }
-
-  @Override
-  public Map<Column, String> gets(CharSequence row, Set<Column> columns) {
-    return TxStringUtil.gets(this, row, columns);
-  }
-
-  @Override
-  public Map<String, Map<Column, String>> gets(Collection<? extends 
CharSequence> rows,
-      Set<Column> columns) {
-    return TxStringUtil.gets(this, rows, columns);
-  }
-
-  @Override
-  public Map<RowColumn, String> gets(Collection<RowColumn> rowColumns) {
-    return TxStringUtil.gets(this, rowColumns);
-  }
-
   // async experiment
 
   private abstract static class CommitCallback<V> implements FutureCallback<V> 
{

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/20d12a8a/modules/core/src/main/java/org/apache/fluo/core/impl/TxStringUtil.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/fluo/core/impl/TxStringUtil.java 
b/modules/core/src/main/java/org/apache/fluo/core/impl/TxStringUtil.java
deleted file mode 100644
index c9874c0..0000000
--- a/modules/core/src/main/java/org/apache/fluo/core/impl/TxStringUtil.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
- * agreements. See the NOTICE file distributed with this work for additional 
information regarding
- * copyright ownership. The ASF licenses this file to you 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.apache.fluo.core.impl;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Maps;
-import org.apache.fluo.api.client.SnapshotBase;
-import org.apache.fluo.api.data.Bytes;
-import org.apache.fluo.api.data.Column;
-import org.apache.fluo.api.data.RowColumn;
-
-public class TxStringUtil {
-  private static Map<String, Map<Column, String>> transform(Map<Bytes, 
Map<Column, Bytes>> rcvs) {
-    Map<String, Map<Column, String>> ret = new HashMap<>(rcvs.size());
-
-    for (Entry<Bytes, Map<Column, Bytes>> entry : rcvs.entrySet()) {
-      ret.put(entry.getKey().toString(), 
Maps.transformValues(entry.getValue(), b -> b.toString()));
-    }
-    return ret;
-  }
-
-  public static String gets(SnapshotBase snapshot, CharSequence row, Column 
column) {
-    Bytes val = snapshot.get(Bytes.of(row), column);
-    if (val == null) {
-      return null;
-    }
-    return val.toString();
-  }
-
-  public static Map<Column, String> gets(SnapshotBase snapshot, CharSequence 
row,
-      Set<Column> columns) {
-    Map<Column, Bytes> values = snapshot.get(Bytes.of(row), columns);
-    return Maps.transformValues(values, b -> b.toString());
-  }
-
-  public static Map<String, Map<Column, String>> gets(SnapshotBase snapshot,
-      Collection<? extends CharSequence> rows, Set<Column> columns) {
-    return transform(snapshot.get(Collections2.transform(rows, s -> 
Bytes.of(s)), columns));
-  }
-
-  public static Map<RowColumn, String> gets(SnapshotBase snapshot, 
Collection<RowColumn> rowColumns) {
-    Map<RowColumn, Bytes> bytesMap = snapshot.get(rowColumns);
-    return Maps.transformValues(bytesMap, b -> b.toString());
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/20d12a8a/modules/core/src/main/java/org/apache/fluo/core/log/TracingTransaction.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/fluo/core/log/TracingTransaction.java 
b/modules/core/src/main/java/org/apache/fluo/core/log/TracingTransaction.java
index 34cd61e..6c52c9a 100644
--- 
a/modules/core/src/main/java/org/apache/fluo/core/log/TracingTransaction.java
+++ 
b/modules/core/src/main/java/org/apache/fluo/core/log/TracingTransaction.java
@@ -32,7 +32,6 @@ import org.apache.fluo.core.async.AsyncCommitObserver;
 import org.apache.fluo.core.async.AsyncTransaction;
 import org.apache.fluo.core.impl.Notification;
 import org.apache.fluo.core.impl.TxStats;
-import org.apache.fluo.core.impl.TxStringUtil;
 import org.apache.fluo.core.util.Hex;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -169,11 +168,6 @@ public class TracingTransaction implements 
AsyncTransaction, Snapshot {
   }
 
   @Override
-  public void setWeakNotification(CharSequence row, Column col) {
-    setWeakNotification(Bytes.of(row), col);
-  }
-
-  @Override
   public void set(Bytes row, Column col, Bytes value) throws 
AlreadySetException {
     if (log.isTraceEnabled()) {
       log.trace("txid: {} set({}, {}, {})", txid, enc(row), enc(col), 
enc(value));
@@ -182,11 +176,6 @@ public class TracingTransaction implements 
AsyncTransaction, Snapshot {
   }
 
   @Override
-  public void set(CharSequence row, Column col, CharSequence value) throws 
AlreadySetException {
-    set(Bytes.of(row), col, Bytes.of(value));
-  }
-
-  @Override
   public void delete(Bytes row, Column col) throws AlreadySetException {
     if (log.isTraceEnabled()) {
       log.trace("txid: {} delete({}, {})", txid, enc(row), enc(col));
@@ -195,11 +184,6 @@ public class TracingTransaction implements 
AsyncTransaction, Snapshot {
   }
 
   @Override
-  public void delete(CharSequence row, Column col) {
-    delete(Bytes.of(row), col);
-  }
-
-  @Override
   public void commit() throws CommitException {
     try {
       tx.commit();
@@ -254,27 +238,6 @@ public class TracingTransaction implements 
AsyncTransaction, Snapshot {
     return tx.getStartTimestamp();
   }
 
-  @Override
-  public String gets(CharSequence row, Column column) {
-    return TxStringUtil.gets(this, row, column);
-  }
-
-  @Override
-  public Map<Column, String> gets(CharSequence row, Set<Column> columns) {
-    return TxStringUtil.gets(this, row, columns);
-  }
-
-  @Override
-  public Map<String, Map<Column, String>> gets(Collection<? extends 
CharSequence> rows,
-      Set<Column> columns) {
-    return TxStringUtil.gets(this, rows, columns);
-  }
-
-  @Override
-  public Map<RowColumn, String> gets(Collection<RowColumn> rowColumns) {
-    return TxStringUtil.gets(this, rowColumns);
-  }
-
   public class LoggingCommitObserver implements AsyncCommitObserver {
 
     AsyncCommitObserver aco;

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/20d12a8a/modules/integration/src/test/java/org/apache/fluo/integration/TestTransaction.java
----------------------------------------------------------------------
diff --git 
a/modules/integration/src/test/java/org/apache/fluo/integration/TestTransaction.java
 
b/modules/integration/src/test/java/org/apache/fluo/integration/TestTransaction.java
index c4c2088..6a214c8 100644
--- 
a/modules/integration/src/test/java/org/apache/fluo/integration/TestTransaction.java
+++ 
b/modules/integration/src/test/java/org/apache/fluo/integration/TestTransaction.java
@@ -160,31 +160,16 @@ public class TestTransaction implements TransactionBase {
   }
 
   @Override
-  public void delete(CharSequence row, Column col) {
-    tx.delete(row, col);
-  }
-
-  @Override
   public void set(Bytes row, Column col, Bytes value) throws 
AlreadySetException {
     tx.set(row, col, value);
   }
 
   @Override
-  public void set(CharSequence row, Column col, CharSequence value) throws 
AlreadySetException {
-    tx.set(row, col, value);
-  }
-
-  @Override
   public void setWeakNotification(Bytes row, Column col) {
     tx.setWeakNotification(row, col);
   }
 
   @Override
-  public void setWeakNotification(CharSequence row, Column col) {
-    tx.setWeakNotification(row, col);
-  }
-
-  @Override
   public Bytes get(Bytes row, Column column) {
     return tx.get(row, column);
   }
@@ -210,27 +195,6 @@ public class TestTransaction implements TransactionBase {
   }
 
   @Override
-  public Map<RowColumn, String> gets(Collection<RowColumn> rowColumns) {
-    return tx.gets(rowColumns);
-  }
-
-  @Override
-  public Map<String, Map<Column, String>> gets(Collection<? extends 
CharSequence> rows,
-      Set<Column> columns) {
-    return tx.gets(rows, columns);
-  }
-
-  @Override
-  public String gets(CharSequence row, Column column) {
-    return tx.gets(row, column);
-  }
-
-  @Override
-  public Map<Column, String> gets(CharSequence row, Set<Column> columns) {
-    return tx.gets(row, columns);
-  }
-
-  @Override
   public long getStartTimestamp() {
     return tx.getStartTimestamp();
   }

Reply via email to