code: public OMVRBTreeEntry<K, V> getCeilingEntry(final K key, final PartialSearchMode partialSearchMode) {
      OMVRBTreeEntry<K, V> p = getEntry(key, true, partialSearchMode);
  
      if (p == null)
        return null;
  
      if (pageItemFound)
        return p;
      // NOT MATCHED, POSITION IS ALREADY TO THE NEXT ONE
      else if (pageIndex < p.getSize()) {
        if (key instanceof OCompositeKey)
          return adjustSearchResult((OCompositeKey) key, partialSearchMode, p);
        else
          return p;
      }
  
      return null;
    }
docs: Gets the entry corresponding to the specified key; if no such entry exists, returns the entry for the least key greater than
  the specified key; if no such entry exists (i.e., the greatest key in the Tree is less than the specified key), returns
  <tt>null</tt>.
  
  @param key
  Key to search.
  @param partialSearchMode
  In case of {@link OCompositeKey} key is passed in this parameter will be used to find preferred one.