CopyOnWriteBPlusTree implements BPlusTree<K, V> { public boolean put(K key, V value) { return put(key, value, null); } CopyOnWriteBPlusTree(int m); int getM(); int getKeySum(); int getNodeSum(); int getTreeLevel(); BNode<K, V> getFirstLeafNode(); BNode<K, V> getLastLeafNode(); BNode<K, V> getRootNode(); boolean put(K key, V value); boolean put(K key, V value, TreeCallBack<K, V> callback); V get(K key); boolean delete(K key); boolean delete(K key, TreeCallBack<K, V> callback); void updateNewTree(BNode<K, V> newRootNode); @Override void traverseAllNodes(TraverseCallBack<K, V> traverseCallBack); @Override Entry<K, V>[] entryArray(); @Override String toString();  }
@Test public void testTreePut() { for (int i = 1; i <= 100; ++i) { Assert.assertTrue(tree.put(i, i + "")); } }