test_class.declarator: engine = new StorageDirect(Volume.memoryFactory(false))
test_class.original_string: Engine engine = new StorageDirect(Volume.memoryFactory(false));
test_class.type: Engine
test_class.var_name: engine
test_class.file: migration/third-party/org.mapdb/src/test/java/org/mapdb/BTreeMapTest.java
test_class.identifier: BTreeMapTest
test_case.body: @Test public void test_next_dir_infinity(){
          BTreeMap m = new BTreeMap(engine,32,true,false, null,null,null,null);
          BTreeMap.DirNode d = new BTreeMap.DirNode(
                  new Object[]{null,62,68, 71},
                  new long[]{10,20,30,40});
          assertEquals(10, m.nextDir(d, 33));
          assertEquals(10, m.nextDir(d, 62));
          assertEquals(20, m.nextDir(d, 63));
  
          d = new BTreeMap.DirNode(
                  new Object[]{44,62,68, null},
                  new long[]{10,20,30,40});
  
          assertEquals(10, m.nextDir(d, 62));
          assertEquals(10, m.nextDir(d, 44));
          assertEquals(10, m.nextDir(d, 48));
  
          assertEquals(20, m.nextDir(d, 63));
          assertEquals(20, m.nextDir(d, 64));
          assertEquals(20, m.nextDir(d, 68));
  
          assertEquals(30, m.nextDir(d, 69));
          assertEquals(30, m.nextDir(d, 70));
          assertEquals(30, m.nextDir(d, 71));
  
          assertEquals(30, m.nextDir(d, 72));
          assertEquals(30, m.nextDir(d, 73));
  
      }
test_case.class_method_signature: BTreeMapTest.test_next_dir_infinity()
test_case.full_signature: @Test public void test_next_dir_infinity()
test_case.identifier: test_next_dir_infinity
test_case.invocations: assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir assertEquals nextDir
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void test_next_dir_infinity()
focal_class.declarator: DEFAULT_MAX_NODE_SIZE = 32
focal_class.modifier: protected static final
focal_class.original_string: protected static final int DEFAULT_MAX_NODE_SIZE = 32;
focal_class.type: int
focal_class.var_name: DEFAULT_MAX_NODE_SIZE
focal_class.declarator: rootRecidRef
focal_class.modifier: protected final
focal_class.original_string: protected final long rootRecidRef;
focal_class.type: long
focal_class.var_name: rootRecidRef
focal_class.declarator: keySerializer
focal_class.modifier: protected final
focal_class.original_string: protected final BTreeKeySerializer keySerializer;
focal_class.type: BTreeKeySerializer
focal_class.var_name: keySerializer
focal_class.declarator: valueSerializer
focal_class.modifier: protected final
focal_class.original_string: protected final Serializer<V> valueSerializer;
focal_class.type: Serializer<V>
focal_class.var_name: valueSerializer
focal_class.declarator: comparator
focal_class.modifier: protected final
focal_class.original_string: protected final Comparator comparator;
focal_class.type: Comparator
focal_class.var_name: comparator
focal_class.declarator: nodeLocks = new Locks.LongHashMapRecidLocks()
focal_class.modifier: protected final
focal_class.original_string: protected final Locks.RecidLocks nodeLocks = new Locks.LongHashMapRecidLocks();
focal_class.type: Locks.RecidLocks
focal_class.var_name: nodeLocks
focal_class.declarator: maxNodeSize
focal_class.modifier: protected final
focal_class.original_string: protected final int maxNodeSize;
focal_class.type: int
focal_class.var_name: maxNodeSize
focal_class.declarator: engine
focal_class.modifier: protected final
focal_class.original_string: protected final Engine engine;
focal_class.type: Engine
focal_class.var_name: engine
focal_class.declarator: hasValues
focal_class.modifier: protected final
focal_class.original_string: protected final boolean hasValues;
focal_class.type: boolean
focal_class.var_name: hasValues
focal_class.declarator: valsOutsideNodes
focal_class.modifier: protected final
focal_class.original_string: protected final boolean valsOutsideNodes;
focal_class.type: boolean
focal_class.var_name: valsOutsideNodes
focal_class.declarator: treeRecid
focal_class.modifier: protected final
focal_class.original_string: protected final long treeRecid;
focal_class.type: long
focal_class.var_name: treeRecid
focal_class.declarator: keySet
focal_class.modifier: private final
focal_class.original_string: private final KeySet keySet;
focal_class.type: KeySet
focal_class.var_name: keySet
focal_class.declarator: entrySet = new EntrySet(this)
focal_class.modifier: private final
focal_class.original_string: private final EntrySet entrySet = new EntrySet(this);
focal_class.type: EntrySet
focal_class.var_name: entrySet
focal_class.declarator: values = new Values(this)
focal_class.modifier: private final
focal_class.original_string: private final Values values = new Values(this);
focal_class.type: Values
focal_class.var_name: values
focal_class.declarator: defaultSerializer
focal_class.modifier: protected final
focal_class.original_string: protected final Serializer defaultSerializer;
focal_class.type: Serializer
focal_class.var_name: defaultSerializer
focal_class.declarator: nodeSerializer = new Serializer<BNode>() {
          @Override
          public void serialize(DataOutput out, BNode value) throws IOException {
              final boolean isLeaf = value.isLeaf();
  
              //first byte encodes if is leaf (first bite) and length (last seven bites)
              if(value.keys().length>255) throw new InternalError();
              if(!isLeaf && value.child().length!= value.keys().length) throw new InternalError();
              if(isLeaf && hasValues && value.vals().length!= value.keys().length) throw new InternalError();
  
              //check node integrity in paranoid mode
              if(CC.PARANOID){
                  int len = value.keys().length;
                  for(int i=value.keys()[0]==null?2:1;
                    i<(value.keys()[len-1]==null?len-1:len);
                    i++){
                      int comp = comparator.compare(value.keys()[i-1], value.keys()[i]);
                      int limit = i==len-1 ? 1:0 ;
                      if(comp>=limit){
                          throw new AssertionError("BTreeNode format error, wrong key order at #"+i+"\n"+value);
                      }
                  }
  
              }
  
  
              final boolean left = value.keys()[0] == null;
              final boolean right = value.keys()[value.keys().length-1] == null;
  
  
              final int header;
  
              if(isLeaf)
                  if(right){
                      if(left)
                          header = B_TREE_NODE_LEAF_LR;
                      else
                          header = B_TREE_NODE_LEAF_R;
                  }else{
                      if(left)
                          header = B_TREE_NODE_LEAF_L;
                      else
                          header = B_TREE_NODE_LEAF_C;
                  }
              else{
                  if(right){
                      if(left)
                          header = B_TREE_NODE_DIR_LR;
                      else
                          header = B_TREE_NODE_DIR_R;
                  }else{
                      if(left)
                          header = B_TREE_NODE_DIR_L;
                      else
                          header = B_TREE_NODE_DIR_C;
                  }
              }
  
  
  
              out.write(header);
              out.write(value.keys().length);
  
              //longs go first, so it is possible to reconstruct tree without serializer
              if(isLeaf){
                  Utils.packLong(out, ((LeafNode) value).next);
              }else{
                  for(long child : ((DirNode)value).child)
                      Utils.packLong(out, child);
              }
  
  
  
              keySerializer.serialize(out,left?1:0,
                      right?value.keys().length-1:value.keys().length,
                      value.keys());
  
              if(isLeaf && hasValues){
                  for(int i=0; i<value.vals().length; i++){
                      Object val = value.vals()[i];
                      if(valsOutsideNodes){
                          long recid = val!=null?  ((ValRef)val).recid :0;
                          Utils.packLong(out, recid);
                      }else{
                          valueSerializer.serialize(out, (V) val);
                      }
                  }
              }
          }
  
          @Override
          public BNode deserialize(DataInput in, int available) throws IOException {
              final int header = in.readUnsignedByte();
              final int size = in.readUnsignedByte();
              //first bite indicates leaf
              final boolean isLeaf =
                      header == B_TREE_NODE_LEAF_C  || header == B_TREE_NODE_LEAF_L ||
                      header == B_TREE_NODE_LEAF_LR || header == B_TREE_NODE_LEAF_R;
              final int start =
                  (header==B_TREE_NODE_LEAF_L  || header == B_TREE_NODE_LEAF_LR || header==B_TREE_NODE_DIR_L  || header == B_TREE_NODE_DIR_LR) ?
                  1:0;
  
              final int end =
                  (header==B_TREE_NODE_LEAF_R  || header == B_TREE_NODE_LEAF_LR || header==B_TREE_NODE_DIR_R  || header == B_TREE_NODE_DIR_LR) ?
                  size-1:size;
  
  
              if(isLeaf){
                  long next = Utils.unpackLong(in);
                  Object[] keys = (Object[]) keySerializer.deserialize(in, start,end,size);
                  if(keys.length!=size) throw new InternalError();
                  Object[] vals  = null;
  
                  if(hasValues){
                      vals = new Object[size];
                      for(int i=0;i<size;i++){
                          if(valsOutsideNodes){
                              long recid = Utils.unpackLong(in);
                              vals[i] = recid==0? null: new ValRef(recid);
                          }else{
                              vals[i] = valueSerializer.deserialize(in, size-1);
                          }
                      }
                  }
                  return new LeafNode(keys, vals, next);
              }else{
                  long[] child = new long[size];
                  for(int i=0;i<size;i++)
                      child[i] = Utils.unpackLong(in);
                  Object[] keys = (Object[]) keySerializer.deserialize(in, start,end,size);
                  if(keys.length!=size) throw new InternalError();
                  return new DirNode(keys, child);
              }
          }
      }
focal_class.modifier: protected final
focal_class.original_string: protected final Serializer<BNode> nodeSerializer = new Serializer<BNode>() {
          @Override
          public void serialize(DataOutput out, BNode value) throws IOException {
              final boolean isLeaf = value.isLeaf();
  
              //first byte encodes if is leaf (first bite) and length (last seven bites)
              if(value.keys().length>255) throw new InternalError();
              if(!isLeaf && value.child().length!= value.keys().length) throw new InternalError();
              if(isLeaf && hasValues && value.vals().length!= value.keys().length) throw new InternalError();
  
              //check node integrity in paranoid mode
              if(CC.PARANOID){
                  int len = value.keys().length;
                  for(int i=value.keys()[0]==null?2:1;
                    i<(value.keys()[len-1]==null?len-1:len);
                    i++){
                      int comp = comparator.compare(value.keys()[i-1], value.keys()[i]);
                      int limit = i==len-1 ? 1:0 ;
                      if(comp>=limit){
                          throw new AssertionError("BTreeNode format error, wrong key order at #"+i+"\n"+value);
                      }
                  }
  
              }
  
  
              final boolean left = value.keys()[0] == null;
              final boolean right = value.keys()[value.keys().length-1] == null;
  
  
              final int header;
  
              if(isLeaf)
                  if(right){
                      if(left)
                          header = B_TREE_NODE_LEAF_LR;
                      else
                          header = B_TREE_NODE_LEAF_R;
                  }else{
                      if(left)
                          header = B_TREE_NODE_LEAF_L;
                      else
                          header = B_TREE_NODE_LEAF_C;
                  }
              else{
                  if(right){
                      if(left)
                          header = B_TREE_NODE_DIR_LR;
                      else
                          header = B_TREE_NODE_DIR_R;
                  }else{
                      if(left)
                          header = B_TREE_NODE_DIR_L;
                      else
                          header = B_TREE_NODE_DIR_C;
                  }
              }
  
  
  
              out.write(header);
              out.write(value.keys().length);
  
              //longs go first, so it is possible to reconstruct tree without serializer
              if(isLeaf){
                  Utils.packLong(out, ((LeafNode) value).next);
              }else{
                  for(long child : ((DirNode)value).child)
                      Utils.packLong(out, child);
              }
  
  
  
              keySerializer.serialize(out,left?1:0,
                      right?value.keys().length-1:value.keys().length,
                      value.keys());
  
              if(isLeaf && hasValues){
                  for(int i=0; i<value.vals().length; i++){
                      Object val = value.vals()[i];
                      if(valsOutsideNodes){
                          long recid = val!=null?  ((ValRef)val).recid :0;
                          Utils.packLong(out, recid);
                      }else{
                          valueSerializer.serialize(out, (V) val);
                      }
                  }
              }
          }
  
          @Override
          public BNode deserialize(DataInput in, int available) throws IOException {
              final int header = in.readUnsignedByte();
              final int size = in.readUnsignedByte();
              //first bite indicates leaf
              final boolean isLeaf =
                      header == B_TREE_NODE_LEAF_C  || header == B_TREE_NODE_LEAF_L ||
                      header == B_TREE_NODE_LEAF_LR || header == B_TREE_NODE_LEAF_R;
              final int start =
                  (header==B_TREE_NODE_LEAF_L  || header == B_TREE_NODE_LEAF_LR || header==B_TREE_NODE_DIR_L  || header == B_TREE_NODE_DIR_LR) ?
                  1:0;
  
              final int end =
                  (header==B_TREE_NODE_LEAF_R  || header == B_TREE_NODE_LEAF_LR || header==B_TREE_NODE_DIR_R  || header == B_TREE_NODE_DIR_LR) ?
                  size-1:size;
  
  
              if(isLeaf){
                  long next = Utils.unpackLong(in);
                  Object[] keys = (Object[]) keySerializer.deserialize(in, start,end,size);
                  if(keys.length!=size) throw new InternalError();
                  Object[] vals  = null;
  
                  if(hasValues){
                      vals = new Object[size];
                      for(int i=0;i<size;i++){
                          if(valsOutsideNodes){
                              long recid = Utils.unpackLong(in);
                              vals[i] = recid==0? null: new ValRef(recid);
                          }else{
                              vals[i] = valueSerializer.deserialize(in, size-1);
                          }
                      }
                  }
                  return new LeafNode(keys, vals, next);
              }else{
                  long[] child = new long[size];
                  for(int i=0;i<size;i++)
                      child[i] = Utils.unpackLong(in);
                  Object[] keys = (Object[]) keySerializer.deserialize(in, start,end,size);
                  if(keys.length!=size) throw new InternalError();
                  return new DirNode(keys, child);
              }
          }
      };
focal_class.type: Serializer<BNode>
focal_class.var_name: nodeSerializer
focal_class.declarator: modListenersLock = new Object()
focal_class.modifier: protected final
focal_class.original_string: protected final Object modListenersLock = new Object();
focal_class.type: Object
focal_class.var_name: modListenersLock
focal_class.declarator: modListeners = new Bind.MapListener[0]
focal_class.modifier: protected
focal_class.original_string: protected Bind.MapListener<K,V>[] modListeners = new Bind.MapListener[0];
focal_class.type: Bind.MapListener<K,V>[]
focal_class.var_name: modListeners
focal_class.file: migration/third-party/org.mapdb/src/main/java/org/mapdb/BTreeMap.java
focal_class.identifier: BTreeMap
focal_class.interfaces: implements ConcurrentNavigableMap<K,V>, Bind.MapWithModificationListener<K,V>
focal_class.class_method_signature: BTreeMap.BTreeMap(Engine engine, int maxNodeSize, boolean hasValues, boolean valsOutsideNodes,
                      Serializer defaultSerializer,
                      BTreeKeySerializer<K> keySerializer, Serializer<V> valueSerializer, Comparator<K> comparator)
focal_class.full_signature: public  BTreeMap(Engine engine, int maxNodeSize, boolean hasValues, boolean valsOutsideNodes,
                      Serializer defaultSerializer,
                      BTreeKeySerializer<K> keySerializer, Serializer<V> valueSerializer, Comparator<K> comparator)
focal_class.identifier: BTreeMap
focal_class.modifiers: public
focal_class.parameters: (Engine engine, int maxNodeSize, boolean hasValues, boolean valsOutsideNodes,
                      Serializer defaultSerializer,
                      BTreeKeySerializer<K> keySerializer, Serializer<V> valueSerializer, Comparator<K> comparator)
focal_class.signature:  BTreeMap(Engine engine, int maxNodeSize, boolean hasValues, boolean valsOutsideNodes,
                      Serializer defaultSerializer,
                      BTreeKeySerializer<K> keySerializer, Serializer<V> valueSerializer, Comparator<K> comparator)
focal_class.class_method_signature: BTreeMap.BTreeMap(Engine engine, long recid, Serializer defaultSerializer)
focal_class.full_signature: public  BTreeMap(Engine engine, long recid, Serializer defaultSerializer)
focal_class.identifier: BTreeMap
focal_class.modifiers: public
focal_class.parameters: (Engine engine, long recid, Serializer defaultSerializer)
focal_class.signature:  BTreeMap(Engine engine, long recid, Serializer defaultSerializer)
focal_class.class_method_signature: BTreeMap.findChildren(final Object key, final Object[] keys)
focal_class.full_signature: protected final int findChildren(final Object key, final Object[] keys)
focal_class.identifier: findChildren
focal_class.modifiers: protected final
focal_class.parameters: (final Object key, final Object[] keys)
focal_class.return: int
focal_class.signature: int findChildren(final Object key, final Object[] keys)
focal_class.class_method_signature: BTreeMap.get(Object key)
focal_class.full_signature: @Override public V get(Object key)
focal_class.identifier: get
focal_class.modifiers: @Override public
focal_class.parameters: (Object key)
focal_class.return: V
focal_class.signature: V get(Object key)
focal_class.class_method_signature: BTreeMap.valExpand(Object ret)
focal_class.full_signature: protected V valExpand(Object ret)
focal_class.identifier: valExpand
focal_class.modifiers: protected
focal_class.parameters: (Object ret)
focal_class.return: V
focal_class.signature: V valExpand(Object ret)
focal_class.class_method_signature: BTreeMap.nextDir(DirNode d, Object key)
focal_class.full_signature: protected long nextDir(DirNode d, Object key)
focal_class.identifier: nextDir
focal_class.modifiers: protected
focal_class.parameters: (DirNode d, Object key)
focal_class.return: long
focal_class.signature: long nextDir(DirNode d, Object key)
focal_class.class_method_signature: BTreeMap.put(K key, V value)
focal_class.full_signature: @Override public V put(K key, V value)
focal_class.identifier: put
focal_class.modifiers: @Override public
focal_class.parameters: (K key, V value)
focal_class.return: V
focal_class.signature: V put(K key, V value)
focal_class.class_method_signature: BTreeMap.put2(K v, V value2, final boolean putOnlyIfAbsent)
focal_class.full_signature: protected V put2(K v, V value2, final boolean putOnlyIfAbsent)
focal_class.identifier: put2
focal_class.modifiers: protected
focal_class.parameters: (K v, V value2, final boolean putOnlyIfAbsent)
focal_class.return: V
focal_class.signature: V put2(K v, V value2, final boolean putOnlyIfAbsent)
focal_class.class_method_signature: BTreeMap.remove(Object key)
focal_class.full_signature: @Override public V remove(Object key)
focal_class.identifier: remove
focal_class.modifiers: @Override public
focal_class.parameters: (Object key)
focal_class.return: V
focal_class.signature: V remove(Object key)
focal_class.class_method_signature: BTreeMap.remove2(Object key, Object value)
focal_class.full_signature: private V remove2(Object key, Object value)
focal_class.identifier: remove2
focal_class.modifiers: private
focal_class.parameters: (Object key, Object value)
focal_class.return: V
focal_class.signature: V remove2(Object key, Object value)
focal_class.class_method_signature: BTreeMap.clear()
focal_class.full_signature: @Override public void clear()
focal_class.identifier: clear
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clear()
focal_class.class_method_signature: BTreeMap.makeEntry(Object key, Object value)
focal_class.full_signature: protected Entry<K, V> makeEntry(Object key, Object value)
focal_class.identifier: makeEntry
focal_class.modifiers: protected
focal_class.parameters: (Object key, Object value)
focal_class.return: Entry<K, V>
focal_class.signature: Entry<K, V> makeEntry(Object key, Object value)
focal_class.class_method_signature: BTreeMap.isEmpty()
focal_class.full_signature: @Override public boolean isEmpty()
focal_class.identifier: isEmpty
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isEmpty()
focal_class.class_method_signature: BTreeMap.size()
focal_class.full_signature: @Override public int size()
focal_class.identifier: size
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int size()
focal_class.class_method_signature: BTreeMap.putIfAbsent(K key, V value)
focal_class.full_signature: @Override public V putIfAbsent(K key, V value)
focal_class.identifier: putIfAbsent
focal_class.modifiers: @Override public
focal_class.parameters: (K key, V value)
focal_class.return: V
focal_class.signature: V putIfAbsent(K key, V value)
focal_class.class_method_signature: BTreeMap.remove(Object key, Object value)
focal_class.full_signature: @Override public boolean remove(Object key, Object value)
focal_class.identifier: remove
focal_class.modifiers: @Override public
focal_class.parameters: (Object key, Object value)
focal_class.return: boolean
focal_class.signature: boolean remove(Object key, Object value)
focal_class.class_method_signature: BTreeMap.replace(K key, V oldValue, V newValue)
focal_class.full_signature: @Override public boolean replace(K key, V oldValue, V newValue)
focal_class.identifier: replace
focal_class.modifiers: @Override public
focal_class.parameters: (K key, V oldValue, V newValue)
focal_class.return: boolean
focal_class.signature: boolean replace(K key, V oldValue, V newValue)
focal_class.class_method_signature: BTreeMap.replace(K key, V value)
focal_class.full_signature: @Override public V replace(K key, V value)
focal_class.identifier: replace
focal_class.modifiers: @Override public
focal_class.parameters: (K key, V value)
focal_class.return: V
focal_class.signature: V replace(K key, V value)
focal_class.class_method_signature: BTreeMap.comparator()
focal_class.full_signature: @Override public Comparator<? super K> comparator()
focal_class.identifier: comparator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Comparator<? super K>
focal_class.signature: Comparator<? super K> comparator()
focal_class.class_method_signature: BTreeMap.firstEntry()
focal_class.full_signature: @Override public Map.Entry<K,V> firstEntry()
focal_class.identifier: firstEntry
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map.Entry<K,V>
focal_class.signature: Map.Entry<K,V> firstEntry()
focal_class.class_method_signature: BTreeMap.pollFirstEntry()
focal_class.full_signature: @Override public Entry<K, V> pollFirstEntry()
focal_class.identifier: pollFirstEntry
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Entry<K, V>
focal_class.signature: Entry<K, V> pollFirstEntry()
focal_class.class_method_signature: BTreeMap.pollLastEntry()
focal_class.full_signature: @Override public Entry<K, V> pollLastEntry()
focal_class.identifier: pollLastEntry
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Entry<K, V>
focal_class.signature: Entry<K, V> pollLastEntry()
focal_class.class_method_signature: BTreeMap.findSmaller(K key,boolean inclusive)
focal_class.full_signature: protected Entry<K,V> findSmaller(K key,boolean inclusive)
focal_class.identifier: findSmaller
focal_class.modifiers: protected
focal_class.parameters: (K key,boolean inclusive)
focal_class.return: Entry<K,V>
focal_class.signature: Entry<K,V> findSmaller(K key,boolean inclusive)
focal_class.class_method_signature: BTreeMap.findSmallerRecur(BNode n, K key, boolean inclusive)
focal_class.full_signature: private Entry<K, V> findSmallerRecur(BNode n, K key, boolean inclusive)
focal_class.identifier: findSmallerRecur
focal_class.modifiers: private
focal_class.parameters: (BNode n, K key, boolean inclusive)
focal_class.return: Entry<K, V>
focal_class.signature: Entry<K, V> findSmallerRecur(BNode n, K key, boolean inclusive)
focal_class.class_method_signature: BTreeMap.lastEntry()
focal_class.full_signature: @Override public Map.Entry<K,V> lastEntry()
focal_class.identifier: lastEntry
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map.Entry<K,V>
focal_class.signature: Map.Entry<K,V> lastEntry()
focal_class.class_method_signature: BTreeMap.lastEntryRecur(BNode n)
focal_class.full_signature: private Map.Entry<K,V> lastEntryRecur(BNode n)
focal_class.identifier: lastEntryRecur
focal_class.modifiers: private
focal_class.parameters: (BNode n)
focal_class.return: Map.Entry<K,V>
focal_class.signature: Map.Entry<K,V> lastEntryRecur(BNode n)
focal_class.class_method_signature: BTreeMap.lowerEntry(K key)
focal_class.full_signature: @Override public Map.Entry<K,V> lowerEntry(K key)
focal_class.identifier: lowerEntry
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: Map.Entry<K,V>
focal_class.signature: Map.Entry<K,V> lowerEntry(K key)
focal_class.class_method_signature: BTreeMap.lowerKey(K key)
focal_class.full_signature: @Override public K lowerKey(K key)
focal_class.identifier: lowerKey
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: K
focal_class.signature: K lowerKey(K key)
focal_class.class_method_signature: BTreeMap.floorEntry(K key)
focal_class.full_signature: @Override public Map.Entry<K,V> floorEntry(K key)
focal_class.identifier: floorEntry
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: Map.Entry<K,V>
focal_class.signature: Map.Entry<K,V> floorEntry(K key)
focal_class.class_method_signature: BTreeMap.floorKey(K key)
focal_class.full_signature: @Override public K floorKey(K key)
focal_class.identifier: floorKey
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: K
focal_class.signature: K floorKey(K key)
focal_class.class_method_signature: BTreeMap.ceilingEntry(K key)
focal_class.full_signature: @Override public Map.Entry<K,V> ceilingEntry(K key)
focal_class.identifier: ceilingEntry
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: Map.Entry<K,V>
focal_class.signature: Map.Entry<K,V> ceilingEntry(K key)
focal_class.class_method_signature: BTreeMap.findLarger(K key, boolean inclusive)
focal_class.full_signature: protected Entry<K, V> findLarger(K key, boolean inclusive)
focal_class.identifier: findLarger
focal_class.modifiers: protected
focal_class.parameters: (K key, boolean inclusive)
focal_class.return: Entry<K, V>
focal_class.signature: Entry<K, V> findLarger(K key, boolean inclusive)
focal_class.class_method_signature: BTreeMap.ceilingKey(K key)
focal_class.full_signature: @Override public K ceilingKey(K key)
focal_class.identifier: ceilingKey
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: K
focal_class.signature: K ceilingKey(K key)
focal_class.class_method_signature: BTreeMap.higherEntry(K key)
focal_class.full_signature: @Override public Map.Entry<K,V> higherEntry(K key)
focal_class.identifier: higherEntry
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: Map.Entry<K,V>
focal_class.signature: Map.Entry<K,V> higherEntry(K key)
focal_class.class_method_signature: BTreeMap.higherKey(K key)
focal_class.full_signature: @Override public K higherKey(K key)
focal_class.identifier: higherKey
focal_class.modifiers: @Override public
focal_class.parameters: (K key)
focal_class.return: K
focal_class.signature: K higherKey(K key)
focal_class.class_method_signature: BTreeMap.containsKey(Object key)
focal_class.full_signature: @Override public boolean containsKey(Object key)
focal_class.identifier: containsKey
focal_class.modifiers: @Override public
focal_class.parameters: (Object key)
focal_class.return: boolean
focal_class.signature: boolean containsKey(Object key)
focal_class.class_method_signature: BTreeMap.containsValue(Object value)
focal_class.full_signature: @Override public boolean containsValue(Object value)
focal_class.identifier: containsValue
focal_class.modifiers: @Override public
focal_class.parameters: (Object value)
focal_class.return: boolean
focal_class.signature: boolean containsValue(Object value)
focal_class.class_method_signature: BTreeMap.firstKey()
focal_class.full_signature: @Override public K firstKey()
focal_class.identifier: firstKey
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: K
focal_class.signature: K firstKey()
focal_class.class_method_signature: BTreeMap.lastKey()
focal_class.full_signature: @Override public K lastKey()
focal_class.identifier: lastKey
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: K
focal_class.signature: K lastKey()
focal_class.class_method_signature: BTreeMap.subMap(K fromKey,
                                                boolean fromInclusive,
                                                K toKey,
                                                boolean toInclusive)
focal_class.full_signature: @Override public ConcurrentNavigableMap<K,V> subMap(K fromKey,
                                                boolean fromInclusive,
                                                K toKey,
                                                boolean toInclusive)
focal_class.identifier: subMap
focal_class.modifiers: @Override public
focal_class.parameters: (K fromKey,
                                                boolean fromInclusive,
                                                K toKey,
                                                boolean toInclusive)
focal_class.return: ConcurrentNavigableMap<K,V>
focal_class.signature: ConcurrentNavigableMap<K,V> subMap(K fromKey,
                                                boolean fromInclusive,
                                                K toKey,
                                                boolean toInclusive)
focal_class.class_method_signature: BTreeMap.headMap(K toKey,
                                                 boolean inclusive)
focal_class.full_signature: @Override public ConcurrentNavigableMap<K,V> headMap(K toKey,
                                                 boolean inclusive)
focal_class.identifier: headMap
focal_class.modifiers: @Override public
focal_class.parameters: (K toKey,
                                                 boolean inclusive)
focal_class.return: ConcurrentNavigableMap<K,V>
focal_class.signature: ConcurrentNavigableMap<K,V> headMap(K toKey,
                                                 boolean inclusive)
focal_class.class_method_signature: BTreeMap.tailMap(K fromKey,
                                                 boolean inclusive)
focal_class.full_signature: @Override public ConcurrentNavigableMap<K,V> tailMap(K fromKey,
                                                 boolean inclusive)
focal_class.identifier: tailMap
focal_class.modifiers: @Override public
focal_class.parameters: (K fromKey,
                                                 boolean inclusive)
focal_class.return: ConcurrentNavigableMap<K,V>
focal_class.signature: ConcurrentNavigableMap<K,V> tailMap(K fromKey,
                                                 boolean inclusive)
focal_class.class_method_signature: BTreeMap.subMap(K fromKey, K toKey)
focal_class.full_signature: @Override public ConcurrentNavigableMap<K,V> subMap(K fromKey, K toKey)
focal_class.identifier: subMap
focal_class.modifiers: @Override public
focal_class.parameters: (K fromKey, K toKey)
focal_class.return: ConcurrentNavigableMap<K,V>
focal_class.signature: ConcurrentNavigableMap<K,V> subMap(K fromKey, K toKey)
focal_class.class_method_signature: BTreeMap.headMap(K toKey)
focal_class.full_signature: @Override public ConcurrentNavigableMap<K,V> headMap(K toKey)
focal_class.identifier: headMap
focal_class.modifiers: @Override public
focal_class.parameters: (K toKey)
focal_class.return: ConcurrentNavigableMap<K,V>
focal_class.signature: ConcurrentNavigableMap<K,V> headMap(K toKey)
focal_class.class_method_signature: BTreeMap.tailMap(K fromKey)
focal_class.full_signature: @Override public ConcurrentNavigableMap<K,V> tailMap(K fromKey)
focal_class.identifier: tailMap
focal_class.modifiers: @Override public
focal_class.parameters: (K fromKey)
focal_class.return: ConcurrentNavigableMap<K,V>
focal_class.signature: ConcurrentNavigableMap<K,V> tailMap(K fromKey)
focal_class.class_method_signature: BTreeMap.keyIterator()
focal_class.full_signature:  Iterator<K> keyIterator()
focal_class.identifier: keyIterator
focal_class.parameters: ()
focal_class.return: Iterator<K>
focal_class.signature: Iterator<K> keyIterator()
focal_class.class_method_signature: BTreeMap.valueIterator()
focal_class.full_signature:  Iterator<V> valueIterator()
focal_class.identifier: valueIterator
focal_class.parameters: ()
focal_class.return: Iterator<V>
focal_class.signature: Iterator<V> valueIterator()
focal_class.class_method_signature: BTreeMap.entryIterator()
focal_class.full_signature:  Iterator<Map.Entry<K,V>> entryIterator()
focal_class.identifier: entryIterator
focal_class.parameters: ()
focal_class.return: Iterator<Map.Entry<K,V>>
focal_class.signature: Iterator<Map.Entry<K,V>> entryIterator()
focal_class.class_method_signature: BTreeMap.keySet()
focal_class.full_signature: @Override public NavigableSet<K> keySet()
focal_class.identifier: keySet
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: NavigableSet<K>
focal_class.signature: NavigableSet<K> keySet()
focal_class.class_method_signature: BTreeMap.navigableKeySet()
focal_class.full_signature: @Override public NavigableSet<K> navigableKeySet()
focal_class.identifier: navigableKeySet
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: NavigableSet<K>
focal_class.signature: NavigableSet<K> navigableKeySet()
focal_class.class_method_signature: BTreeMap.values()
focal_class.full_signature: @Override public Collection<V> values()
focal_class.identifier: values
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Collection<V>
focal_class.signature: Collection<V> values()
focal_class.class_method_signature: BTreeMap.entrySet()
focal_class.full_signature: @Override public Set<Map.Entry<K,V>> entrySet()
focal_class.identifier: entrySet
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Set<Map.Entry<K,V>>
focal_class.signature: Set<Map.Entry<K,V>> entrySet()
focal_class.class_method_signature: BTreeMap.descendingMap()
focal_class.full_signature: @Override public ConcurrentNavigableMap<K,V> descendingMap()
focal_class.identifier: descendingMap
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: ConcurrentNavigableMap<K,V>
focal_class.signature: ConcurrentNavigableMap<K,V> descendingMap()
focal_class.class_method_signature: BTreeMap.descendingKeySet()
focal_class.full_signature: @Override public NavigableSet<K> descendingKeySet()
focal_class.identifier: descendingKeySet
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: NavigableSet<K>
focal_class.signature: NavigableSet<K> descendingKeySet()
focal_class.class_method_signature: BTreeMap.toList(Collection<E> c)
focal_class.full_signature: static final List<E> toList(Collection<E> c)
focal_class.identifier: toList
focal_class.modifiers: static final
focal_class.parameters: (Collection<E> c)
focal_class.return: List<E>
focal_class.signature: List<E> toList(Collection<E> c)
focal_class.class_method_signature: BTreeMap.snapshot()
focal_class.full_signature: public NavigableMap<K,V> snapshot()
focal_class.identifier: snapshot
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: NavigableMap<K,V>
focal_class.signature: NavigableMap<K,V> snapshot()
focal_class.class_method_signature: BTreeMap.addModificationListener(Bind.MapListener<K,V> listener)
focal_class.full_signature: @Override public void addModificationListener(Bind.MapListener<K,V> listener)
focal_class.identifier: addModificationListener
focal_class.modifiers: @Override public
focal_class.parameters: (Bind.MapListener<K,V> listener)
focal_class.return: void
focal_class.signature: void addModificationListener(Bind.MapListener<K,V> listener)
focal_class.class_method_signature: BTreeMap.removeModificationListener(Bind.MapListener<K,V> listener)
focal_class.full_signature: @Override public void removeModificationListener(Bind.MapListener<K,V> listener)
focal_class.identifier: removeModificationListener
focal_class.modifiers: @Override public
focal_class.parameters: (Bind.MapListener<K,V> listener)
focal_class.return: void
focal_class.signature: void removeModificationListener(Bind.MapListener<K,V> listener)
focal_class.class_method_signature: BTreeMap.notify(K key, V oldValue, V newValue)
focal_class.full_signature: protected void notify(K key, V oldValue, V newValue)
focal_class.identifier: notify
focal_class.modifiers: protected
focal_class.parameters: (K key, V oldValue, V newValue)
focal_class.return: void
focal_class.signature: void notify(K key, V oldValue, V newValue)
focal_class.class_method_signature: BTreeMap.close()
focal_class.full_signature: public void close()
focal_class.identifier: close
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: BTreeMap.printTreeStructure()
focal_class.full_signature: public void printTreeStructure()
focal_class.identifier: printTreeStructure
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void printTreeStructure()
focal_class.class_method_signature: BTreeMap.printRecur(BTreeMap m, long recid, String s)
focal_class.full_signature: private static void printRecur(BTreeMap m, long recid, String s)
focal_class.identifier: printRecur
focal_class.modifiers: private static
focal_class.parameters: (BTreeMap m, long recid, String s)
focal_class.return: void
focal_class.signature: void printRecur(BTreeMap m, long recid, String s)
focal_class.superclass: extends AbstractMap<K,V>
focal_method.body: protected long nextDir(DirNode d, Object key) {
          int pos = findChildren(key, d.keys) - 1;
          if(pos<0) pos = 0;
          return d.child[pos];
      }
focal_method.class_method_signature: BTreeMap.nextDir(DirNode d, Object key)
focal_method.full_signature: protected long nextDir(DirNode d, Object key)
focal_method.identifier: nextDir
focal_method.invocations: findChildren
focal_method.modifiers: protected
focal_method.parameters: (DirNode d, Object key)
focal_method.return: long
focal_method.signature: long nextDir(DirNode d, Object key)