/** * Copy the current page and all of the keys, values and children, if it's not a leaf. * * @param revision The new revision * @param nbElems The number of elements to copy * @return The copied page */ private Page<K, V> copy( long revision, int nbElems ) { InMemoryLeaf<K, V> newLeaf = new InMemoryLeaf<K, V>( btree, revision, nbElems ); // Copy the keys and the values System.arraycopy( getKeys(), 0, newLeaf.getKeys(), 0, nbElems ); System.arraycopy( values, 0, newLeaf.values, 0, nbElems ); return newLeaf; }
/** * Create a new Leaf for the given B-tree. * * @param btree The B-tree which will contain this leaf * @param revision The Leaf's revision * @param nbElems The number or elements in this leaf * * @return A Leaf instance */ /* no qualifier*/static <K, V> Page<K, V> createLeaf( BTree<K, V> btree, long revision, int nbElems ) { if ( btree.getType() != BTreeTypeEnum.IN_MEMORY ) { return new PersistedLeaf<K, V>( btree, revision, nbElems ); } else { return new InMemoryLeaf<K, V>( btree, revision, nbElems ); } }
leftLeaf = new InMemoryLeaf<K, V>( btree, revision, middle + 1 ); rightLeaf = new InMemoryLeaf<K, V>( btree, revision, middle ); leftLeaf = new InMemoryLeaf<K, V>( btree, revision, middle ); rightLeaf = new InMemoryLeaf<K, V>( btree, revision, middle + 1 );
btreeHeader.setRootPage( new InMemoryLeaf<K, V>( this ) ); btreeHeader.setBtree( this ); storeRevision( btreeHeader );
InMemoryLeaf<K, V> newSibling = new InMemoryLeaf<K, V>( btree, revision, sibling.getNbElems() - 1 ); InMemoryLeaf<K, V> newLeaf = new InMemoryLeaf<K, V>( btree, revision, nbElems );
InMemoryLeaf<K, V> newLeaf = new InMemoryLeaf<K, V>( btree, revision, btree.getPageSize() - 1 );
InMemoryLeaf<K, V> newLeaf = new InMemoryLeaf<K, V>( btree, revision, nbElems + 1 );
InMemoryLeaf<K, V> newLeaf = new InMemoryLeaf<K, V>( btree, revision, nbElems );
newBtreeHeader.setRevision( 0L ); newBtreeHeader.setNbElems( 0L ); newBtreeHeader.setRootPage( new InMemoryLeaf<K, V>( this ) ); newBtreeHeader.setRootPageOffset( 0L );
newLeaf = new InMemoryLeaf<K, V>( btree, revision, nbElems - 1 ); newLeaf = new InMemoryLeaf<K, V>( btree, revision, nbElems );