Beispiel #1
0
        private Db4objects.Db4o.Internal.ObjectReference Hc_add1(Db4objects.Db4o.Internal.ObjectReference
                                                                 newRef)
        {
            int cmp = Hc_compare(newRef);

            if (cmp < 0)
            {
                if (_hcPreceding == null)
                {
                    _hcPreceding = newRef;
                    _hcSize++;
                }
                else
                {
                    _hcPreceding = _hcPreceding.Hc_add1(newRef);
                    if (_hcSubsequent == null)
                    {
                        return(Hc_rotateRight());
                    }
                    return(Hc_balance());
                }
            }
            else
            {
                if (_hcSubsequent == null)
                {
                    _hcSubsequent = newRef;
                    _hcSize++;
                }
                else
                {
                    _hcSubsequent = _hcSubsequent.Hc_add1(newRef);
                    if (_hcPreceding == null)
                    {
                        return(Hc_rotateLeft());
                    }
                    return(Hc_balance());
                }
            }
            return(this);
        }