code: protected void rotateLeft(final OMVRBTreeEntry<K, V> p) {
      if (p != null) {
        OMVRBTreeEntry<K, V> r = p.getRight();
        p.setRight(r.getLeft());
        if (r.getLeft() != null)
          r.getLeft().setParent(p);
        r.setParent(p.getParent());
        if (p.getParent() == null)
          setRoot(r);
        else if (p.getParent().getLeft() == p)
          p.getParent().setLeft(r);
        else
          p.getParent().setRight(r);
        p.setParent(r);
        r.setLeft(p);
      }
    }
docs: From CLR