Make -java compatible with Memory 2.0
diff --git a/src/test/java/org/apache/datasketches/hll/DirectAuxHashMapTest.java b/src/test/java/org/apache/datasketches/hll/DirectAuxHashMapTest.java
index 0a83ec0..55bbd92 100644
--- a/src/test/java/org/apache/datasketches/hll/DirectAuxHashMapTest.java
+++ b/src/test/java/org/apache/datasketches/hll/DirectAuxHashMapTest.java
@@ -31,7 +31,7 @@
 import org.testng.annotations.Test;
 
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.SketchesStateException;
 
@@ -49,7 +49,7 @@
     int n = 8; //put lgConfigK == 4 into HLL mode
     int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgConfigK, tgtHllType);
     HllSketch hllSketch;
-    try (WritableDirectHandle handle = WritableMemory.allocateDirect(bytes)) {
+    try (WritableHandle handle = WritableMemory.allocateDirect(bytes)) {
       WritableMemory wmem = handle.getWritable();
       hllSketch = new HllSketch(lgConfigK, tgtHllType, wmem);
       for (int i = 0; i < n; i++) {
diff --git a/src/test/java/org/apache/datasketches/hll/DirectCouponListTest.java b/src/test/java/org/apache/datasketches/hll/DirectCouponListTest.java
index d0927e3..0625094 100644
--- a/src/test/java/org/apache/datasketches/hll/DirectCouponListTest.java
+++ b/src/test/java/org/apache/datasketches/hll/DirectCouponListTest.java
@@ -28,7 +28,7 @@
 import org.testng.annotations.Test;
 
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 
 /**
@@ -71,7 +71,7 @@
     //println("DIRECT");
     byte[] barr1;
     WritableMemory wmem = null;
-    try (WritableDirectHandle hand = WritableMemory.allocateDirect(bytes)) {
+    try (WritableHandle hand = WritableMemory.allocateDirect(bytes)) {
       wmem = hand.getWritable();
       //byte[] byteArr = new byte[bytes];
       //WritableMemory wmem = WritableMemory.wrap(byteArr);
diff --git a/src/test/java/org/apache/datasketches/quantiles/DebugUnionTest.java b/src/test/java/org/apache/datasketches/quantiles/DebugUnionTest.java
index cb6096c..d718741 100644
--- a/src/test/java/org/apache/datasketches/quantiles/DebugUnionTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/DebugUnionTest.java
@@ -27,7 +27,7 @@
 
 import org.testng.annotations.Test;
 
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 
 /**
@@ -62,7 +62,7 @@
     DoublesSketch.setRandom(1); //make deterministic for test
     DoublesUnion dUnion;
     DoublesSketch dSketch;
-    try ( WritableDirectHandle wdh = WritableMemory.allocateDirect(10_000_000) ) {
+    try ( WritableHandle wdh = WritableMemory.allocateDirect(10_000_000) ) {
       WritableMemory wmem = wdh.getWritable();
       dUnion = DoublesUnion.builder().setMaxK(8).build(wmem);
       for (int s = 0; s < numSketches; s++) { dUnion.update(sketchArr[s]); }
diff --git a/src/test/java/org/apache/datasketches/quantiles/DirectQuantilesMemoryRequestTest.java b/src/test/java/org/apache/datasketches/quantiles/DirectQuantilesMemoryRequestTest.java
index 93ac0fd..5285892 100644
--- a/src/test/java/org/apache/datasketches/quantiles/DirectQuantilesMemoryRequestTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/DirectQuantilesMemoryRequestTest.java
@@ -27,7 +27,7 @@
 import org.testng.annotations.Test;
 
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 
 /**
@@ -46,7 +46,7 @@
 
     //########## Owning Implementation
     // This part would actually be part of the Memory owning implemention so it is faked here
-    try (WritableDirectHandle wdh = WritableMemory.allocateDirect(initBytes)) {
+    try (WritableHandle wdh = WritableMemory.allocateDirect(initBytes)) {
       final WritableMemory wmem = wdh.getWritable();
       println("Initial mem size: " + wmem.getCapacity());
 
@@ -81,7 +81,7 @@
     final int u = 32; // don't need the BB to fill here
     final int initBytes = (4 + (u / 2)) << 3; // not enough to hold everything
 
-    try (WritableDirectHandle memHandler = WritableMemory.allocateDirect(initBytes)) {
+    try (WritableHandle memHandler = WritableMemory.allocateDirect(initBytes)) {
       //final MemoryManager memMgr = new MemoryManager();
       //final WritableMemory mem1 = memMgr.request(initBytes);
       final WritableMemory mem1 = memHandler.getWritable();
@@ -104,7 +104,7 @@
     final int u = (2 * k) - 1; //just to fill the BB
     final int initBytes = ((2 * k) + 4) << 3; //just room for BB
 
-    try (WritableDirectHandle memHandler = WritableMemory.allocateDirect(initBytes)) {
+    try (WritableHandle memHandler = WritableMemory.allocateDirect(initBytes)) {
       //final MemoryManager memMgr = new MemoryManager();
       //final WritableMemory mem1 = memMgr.request(initBytes);
       final WritableMemory mem1 = memHandler.getWritable();
@@ -133,7 +133,7 @@
     final UpdateDoublesSketch usk1 = DoublesSketch.builder().setK(k).build();
     final Memory origSketchMem = Memory.wrap(usk1.toByteArray());
 
-    try (WritableDirectHandle memHandle = WritableMemory.allocateDirect(initBytes)) {
+    try (WritableHandle memHandle = WritableMemory.allocateDirect(initBytes)) {
       WritableMemory mem = memHandle.getWritable();
       origSketchMem.copyTo(0, mem, 0, initBytes);
       UpdateDoublesSketch usk2 = DirectUpdateDoublesSketch.wrapInstance(mem);
diff --git a/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java b/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java
index 11498e6..32b47e9 100644
--- a/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java
@@ -27,7 +27,7 @@
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 
 @SuppressWarnings("javadoc")
@@ -134,7 +134,7 @@
 
   @Test
   public void directSketchShouldMoveOntoHeapEventually() {
-    try (WritableDirectHandle wdh = WritableMemory.allocateDirect(1000)) {
+    try (WritableHandle wdh = WritableMemory.allocateDirect(1000)) {
       WritableMemory mem = wdh.getWritable();
       UpdateDoublesSketch sketch = DoublesSketch.builder().build(mem);
       Assert.assertTrue(sketch.isSameResource(mem));
@@ -149,7 +149,7 @@
 
   @Test
   public void checkEmptyDirect() {
-    try (WritableDirectHandle wdh = WritableMemory.allocateDirect(1000)) {
+    try (WritableHandle wdh = WritableMemory.allocateDirect(1000)) {
       WritableMemory mem = wdh.getWritable();
       UpdateDoublesSketch sketch = DoublesSketch.builder().build(mem);
       sketch.toByteArray(); //exercises a specific path
diff --git a/src/test/java/org/apache/datasketches/quantiles/PreambleUtilTest.java b/src/test/java/org/apache/datasketches/quantiles/PreambleUtilTest.java
index 7cee84f..1ae21c0 100644
--- a/src/test/java/org/apache/datasketches/quantiles/PreambleUtilTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/PreambleUtilTest.java
@@ -40,7 +40,7 @@
 import org.testng.annotations.Test;
 
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 
 @SuppressWarnings("javadoc")
@@ -49,7 +49,7 @@
   @Test
   public void checkInsertsAndExtracts() {
     final int bytes = 32;
-    try (WritableDirectHandle offHeapMemHandler = WritableMemory.allocateDirect(bytes)) {
+    try (WritableHandle offHeapMemHandler = WritableMemory.allocateDirect(bytes)) {
       final WritableMemory offHeapMem = offHeapMemHandler.getWritable();
       final WritableMemory onHeapMem = WritableMemory.writableWrap(new byte[bytes]);
 
diff --git a/src/test/java/org/apache/datasketches/theta/CompactSketchTest.java b/src/test/java/org/apache/datasketches/theta/CompactSketchTest.java
index d8237ad..faf7433 100644
--- a/src/test/java/org/apache/datasketches/theta/CompactSketchTest.java
+++ b/src/test/java/org/apache/datasketches/theta/CompactSketchTest.java
@@ -28,7 +28,7 @@
 import org.apache.datasketches.Family;
 import org.apache.datasketches.SketchesArgumentException;
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.testng.annotations.Test;
 
@@ -78,7 +78,7 @@
     //Prepare Memory for direct
     int bytes = usk.getCompactBytes(); //for Compact
 
-    try (WritableDirectHandle wdh = WritableMemory.allocateDirect(bytes)) {
+    try (WritableHandle wdh = WritableMemory.allocateDirect(bytes)) {
       WritableMemory directMem = wdh.getWritable();
 
       /**Via CompactSketch.compact**/
diff --git a/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java b/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java
index 876a9b4..41f56c8 100644
--- a/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java
+++ b/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java
@@ -47,7 +47,7 @@
 import org.apache.datasketches.SketchesArgumentException;
 import org.apache.datasketches.SketchesReadOnlyException;
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.testng.annotations.Test;
 
@@ -60,7 +60,7 @@
   @Test//(expectedExceptions = SketchesArgumentException.class)
   public void checkBadSerVer() {
     int k = 512;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -86,7 +86,7 @@
   @Test//(expectedExceptions = SketchesArgumentException.class)
   public void checkConstructorKtooSmall() {
     int k = 8;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
       UpdateSketch.builder().setNominalEntries(k).build(mem);
     } catch (final Exception e) {
@@ -98,7 +98,7 @@
   @Test//(expectedExceptions = SketchesArgumentException.class)
   public void checkConstructorMemTooSmall() {
     int k = 16;
-    try (WritableDirectHandle h = makeNativeMemory(k/2)) {
+    try (WritableHandle h = makeNativeMemory(k/2)) {
       WritableMemory mem = h.getWritable();
       UpdateSketch.builder().setNominalEntries(k).build(mem);
     } catch (final Exception e) {
@@ -126,7 +126,7 @@
     int u = 2*k;
     boolean estimating = (u > k);
 
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch sk1 = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -198,7 +198,7 @@
     int k = 512;
     long seed1 = 1021;
     long seed2 = DEFAULT_UPDATE_SEED;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setSeed(seed1).setNominalEntries(k).build(mem);
@@ -214,7 +214,7 @@
   @Test//(expectedExceptions = SketchesArgumentException.class)
   public void checkCorruptLgNomLongs() {
     int k = 16;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
       UpdateSketch.builder().setNominalEntries(k).build(mem);
       mem.putByte(LG_NOM_LONGS_BYTE, (byte)2); //corrupt
@@ -228,7 +228,7 @@
   @Test
   public void checkHeapifyByteArrayExact() {
     int k = 512;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -261,7 +261,7 @@
   public void checkHeapifyByteArrayEstimating() {
     int k = 4096;
     int u = 2*k;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
 
@@ -292,7 +292,7 @@
     int u = 2*k;
     boolean estimating = (u > k);
 
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
       UpdateSketch sk1 = UpdateSketch.builder().setNominalEntries(k).build(mem);
       for (int i=0; i<u; i++) { sk1.update(i); }
@@ -319,7 +319,7 @@
     int k = 512;
     int u = 4*k;
     boolean estimating = (u > k);
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -389,7 +389,7 @@
   @Test
   public void checkDQStoCompactEmptyForms() {
     int k = 512;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -435,7 +435,7 @@
     int k = 4096;
     int u = 2*k;
 
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -456,7 +456,7 @@
     int k = 4096;
     float p = (float)0.5;
 
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setP(p).setNominalEntries(k).build(mem);
@@ -482,7 +482,7 @@
   @Test
   public void checkErrorBounds() {
     int k = 512;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -518,7 +518,7 @@
     //virgin, p = 1.0
     int k = 1024;
     float p = (float)1.0;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setP(p).setNominalEntries(k).build(mem);
@@ -558,7 +558,7 @@
   public void checkUpperAndLowerBounds() {
     int k = 512;
     int u = 2*k;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -579,7 +579,7 @@
   public void checkRebuild() {
     int k = 512;
     int u = 4*k;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -608,7 +608,7 @@
   public void checkResetAndStartingSubMultiple() {
     int k = 512;
     int u = 4*k;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -639,7 +639,7 @@
   public void checkExactModeMemoryArr() {
     int k = 4096;
     int u = 4096;
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -660,7 +660,7 @@
     int k = 4096;
     int u = 2*k;
 
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       WritableMemory mem = h.getWritable();
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(mem);
@@ -682,7 +682,7 @@
     int u = 2*k;
     int memCapacity = (k << 4) + (Family.QUICKSELECT.getMinPreLongs() << 3);
 
-    try(WritableDirectHandle memHandler = WritableMemory.allocateDirect(memCapacity)) {
+    try(WritableHandle memHandler = WritableMemory.allocateDirect(memCapacity)) {
 
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(memHandler.getWritable());
       DirectQuickSelectSketch sk1 = (DirectQuickSelectSketch)usk; //for internal checks
@@ -703,7 +703,7 @@
     int k = 4096;
     int u = 2*k;
 
-    try (WritableDirectHandle h = makeNativeMemory(k)) {
+    try (WritableHandle h = makeNativeMemory(k)) {
       UpdateSketch usk = UpdateSketch.builder().setNominalEntries(k).build(h.getWritable());
       assertTrue(usk.isEmpty());
 
@@ -872,7 +872,7 @@
     int k = 1 << 12;
     int u = 2 * k;
     int bytes = Sketches.getMaxUpdateSketchBytes(k);
-      try (WritableDirectHandle wdh = WritableMemory.allocateDirect(bytes/2)) { //will request
+      try (WritableHandle wdh = WritableMemory.allocateDirect(bytes/2)) { //will request
       WritableMemory wmem = wdh.getWritable();
       UpdateSketch sketch = Sketches.updateSketchBuilder().setNominalEntries(k).build(wmem);
       assertTrue(sketch.isSameResource(wmem));
@@ -888,7 +888,7 @@
     int k = 1 << 12;
     int u = 2 * k;
     int bytes = Sketches.getMaxUpdateSketchBytes(k);
-    try (WritableDirectHandle wdh = WritableMemory.allocateDirect(bytes/2)) { //will request
+    try (WritableHandle wdh = WritableMemory.allocateDirect(bytes/2)) { //will request
       WritableMemory wmem = wdh.getWritable();
       UpdateSketch sketch = Sketches.updateSketchBuilder().setNominalEntries(k).build(wmem);
       for (int i = 0; i < u; i++) { sketch.update(i); }
@@ -933,7 +933,7 @@
     return (k << 4) + (Family.QUICKSELECT.getMinPreLongs() << 3);
   }
 
-  private static WritableDirectHandle makeNativeMemory(int k) {
+  private static WritableHandle makeNativeMemory(int k) {
     return WritableMemory.allocateDirect(getMaxBytes(k));
   }
 
diff --git a/src/test/java/org/apache/datasketches/theta/UnionImplTest.java b/src/test/java/org/apache/datasketches/theta/UnionImplTest.java
index b9db91f..b4121fc 100644
--- a/src/test/java/org/apache/datasketches/theta/UnionImplTest.java
+++ b/src/test/java/org/apache/datasketches/theta/UnionImplTest.java
@@ -29,7 +29,7 @@
 import org.apache.datasketches.SketchesArgumentException;
 import org.apache.datasketches.Util;
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.testng.annotations.Test;
 
@@ -169,13 +169,13 @@
     final int k = 1 << 12;
     final int u = 2 * k;
     final int bytes = Sketches.getMaxUpdateSketchBytes(k);
-    try (WritableDirectHandle wdh = WritableMemory.allocateDirect(bytes/2);
-         WritableDirectHandle wdh2 = WritableMemory.allocateDirect(bytes/2) ) {
-      final WritableMemory wmem = wdh.getWritable();
+    try (WritableHandle wh = WritableMemory.allocateDirect(bytes/2);
+        WritableHandle wh2 = WritableMemory.allocateDirect(bytes/2) ) {
+      final WritableMemory wmem = wh.getWritable();
       final UpdateSketch sketch = Sketches.updateSketchBuilder().setNominalEntries(k).build(wmem);
       assertTrue(sketch.isSameResource(wmem));
 
-      final WritableMemory wmem2 = wdh2.getWritable();
+      final WritableMemory wmem2 = wh2.getWritable();
       final Union union = SetOperation.builder().buildUnion(wmem2);
       assertTrue(union.isSameResource(wmem2));
 
@@ -207,7 +207,7 @@
     final double est1 = sk.getEstimate();
 
     final int bytes = Sketches.getMaxCompactSketchBytes(sk.getRetainedEntries(true));
-    try (WritableDirectHandle h = WritableMemory.allocateDirect(bytes)) {
+    try (WritableHandle h = WritableMemory.allocateDirect(bytes)) {
       final WritableMemory wmem = h.getWritable();
       final CompactSketch csk = sk.compact(true, wmem); //ordered, direct
       final Union union = Sketches.setOperationBuilder().buildUnion();