You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluo.apache.org by kt...@apache.org on 2016/07/26 21:21:06 UTC

incubator-fluo git commit: Added Append Method for BytesBuilder to take byte[], offset, and length. Added unit test to test method.

Repository: incubator-fluo
Updated Branches:
  refs/heads/master 19b64c115 -> 5ed9f2d86


Added Append Method for BytesBuilder to take byte[], offset, and length.
Added unit test to test method.


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

Branch: refs/heads/master
Commit: 5ed9f2d8624a4c07f5d22718ca13af5c1f1d2b1d
Parents: 19b64c1
Author: Christopher McTague <cj...@vwc.edu>
Authored: Tue Jul 26 14:57:32 2016 -0400
Committer: Christopher McTague <cj...@vwc.edu>
Committed: Tue Jul 26 14:58:10 2016 -0400

----------------------------------------------------------------------
 .../org/apache/fluo/api/data/BytesBuilder.java     | 17 +++++++++++++++++
 .../apache/fluo/core/data/BytesBuilderTest.java    | 14 ++++++++++++++
 2 files changed, 31 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/5ed9f2d8/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
----------------------------------------------------------------------
diff --git a/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java b/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
index 549b9e9..1ca721c 100644
--- a/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
+++ b/modules/api/src/main/java/org/apache/fluo/api/data/BytesBuilder.java
@@ -90,6 +90,23 @@ public class BytesBuilder {
   }
 
   /**
+   * Append a section of bytes from array
+   * 
+   * @param bytes - bytes to be appended
+   * @param offset - start of bytes to be appended
+   * @param length - how many bytes from 'offset' to be appended
+   * @return self
+   */
+  public BytesBuilder append(byte[] bytes, int offset, int length) {
+    ensureCapacity(len + length);
+    System.arraycopy(bytes, offset, ba, len, length);
+    len += length;
+
+    return this;
+  }
+
+
+  /**
    * Sets the point at which appending will start. This method can shrink or grow the ByteBuilder
    * from its current state. If it grows it will zero pad.
    */

http://git-wip-us.apache.org/repos/asf/incubator-fluo/blob/5ed9f2d8/modules/core/src/test/java/org/apache/fluo/core/data/BytesBuilderTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/fluo/core/data/BytesBuilderTest.java b/modules/core/src/test/java/org/apache/fluo/core/data/BytesBuilderTest.java
index e543863..37c011f 100644
--- a/modules/core/src/test/java/org/apache/fluo/core/data/BytesBuilderTest.java
+++ b/modules/core/src/test/java/org/apache/fluo/core/data/BytesBuilderTest.java
@@ -71,6 +71,20 @@ public class BytesBuilderTest {
   }
 
   @Test
+  public void testArraySection() {
+    BytesBuilder bb = Bytes.newBuilder();
+
+    byte[] testing = new byte[] {'a', 'b', 'c', 'd', 'e'};
+
+    bb.append(testing, 0, 3);
+    bb.append(testing, 1, 3);
+    bb.append(testing, 2, 2);
+
+    Bytes bytes = bb.toBytes();
+    Assert.assertEquals(Bytes.of("abcbcdcd"), bytes);
+  }
+
+  @Test
   public void testIncreaseCapacity() {
 
     // test appending 3 chars at a time