@Override
  protected void insert(final int iIndex, final K iKey, final V iValue) {
    K oldKey = iIndex == 0 ? dataProvider.getKeyAt(0) : null;
    if (dataProvider.insertAt(iIndex, iKey, iValue)) markDirty();

    if (iIndex == 0) pTree.updateEntryPoint(oldKey, this);
  }
 /**
  * Make a new cell with given key, value, and parent, and with <tt>null</tt> child links, and
  * BLACK color.
  */
 public OMVRBTreeEntryPersistent(
     final OMVRBTreePersistent<K, V> iTree,
     final K iKey,
     final V iValue,
     final OMVRBTreeEntryPersistent<K, V> iParent) {
   super(iTree);
   pTree = iTree;
   dataProvider = pTree.dataProvider.createEntry();
   dataProvider.setIdentityChangedListener(this);
   dataProvider.insertAt(0, iKey, iValue);
   init();
   setParent(iParent);
   pTree.addNodeInMemory(this);
   // created entry : force dispatch dirty node.
   markDirty();
 }