Merge pull request #668 from keith-turner/append-byte
added method to append byte to BytesBuilder
diff --git a/modules/api/src/main/java/io/fluo/api/data/BytesBuilder.java b/modules/api/src/main/java/io/fluo/api/data/BytesBuilder.java
index 33ac267..8c1dade 100644
--- a/modules/api/src/main/java/io/fluo/api/data/BytesBuilder.java
+++ b/modules/api/src/main/java/io/fluo/api/data/BytesBuilder.java
@@ -74,6 +74,19 @@
}
/**
+ * Append a single byte.
+ *
+ * @param b take the lower 8 bits and appends it.
+ * @return self
+ */
+ public BytesBuilder append(int b) {
+ ensureCapacity(len + 1);
+ ba[len] = (byte) b;
+ len += 1;
+ 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.
*/
diff --git a/modules/core/src/test/java/io/fluo/core/data/BytesBuilderTest.java b/modules/core/src/test/java/io/fluo/core/data/BytesBuilderTest.java
index 432995a..f7a3819 100644
--- a/modules/core/src/test/java/io/fluo/core/data/BytesBuilderTest.java
+++ b/modules/core/src/test/java/io/fluo/core/data/BytesBuilderTest.java
@@ -56,6 +56,20 @@
}
@Test
+ public void testSingleByte() {
+ BytesBuilder bb = Bytes.newBuilder();
+
+ bb.append('c');
+ bb.append(0);
+ bb.append(127);
+ bb.append(128);
+ bb.append(255);
+
+ Bytes bytes = bb.toBytes();
+ Assert.assertEquals(Bytes.of(new byte[] {'c', 0, 127, (byte) 128, (byte) 0xff}), bytes);
+ }
+
+ @Test
public void testIncreaseCapacity() {
// test appending 3 chars at a time