Пример #1
0
        private void AssertContainsNull(Collection4 c)
        {
            Assert.IsTrue(c.Contains(null));
            Assert.IsNull(c.Get(null));
            int size = c.Size();

            c.Ensure(null);
            Assert.AreEqual(size, c.Size());
        }
Пример #2
0
        private void AssertNotContainsNull(Collection4 c)
        {
            Assert.IsFalse(c.Contains(null));
            Assert.IsNull(c.Get(null));
            var size = c.Size();

            c.Ensure(null);
            Assert.AreEqual(size + 1, c.Size());
            c.Remove(null);
            Assert.AreEqual(size, c.Size());
        }
Пример #3
0
        internal virtual IConstraint Join1(QCon
                                           a_with, bool a_and)
        {
            if (a_with is QConstraints)
            {
                var j           = 0;
                var joinHooks   = new Collection4();
                var constraints = ((QConstraints)a_with).ToArray();
                for (j = 0; j < constraints.Length; j++)
                {
                    joinHooks.Ensure(((QCon)constraints[j]).
                                     JoinHook());
                }
                var joins = new IConstraint[joinHooks.Size()];
                j = 0;
                var i = joinHooks.GetEnumerator();
                while (i.MoveNext())
                {
                    joins[j++] = Join((IConstraint)i.Current, a_and);
                }
                return(new QConstraints(i_trans, joins));
            }
            var myHook    = JoinHook();
            var otherHook = a_with.JoinHook();

            if (myHook == otherHook)
            {
                // You might like to check out, what happens, if you
                // remove this line. It seems to open a bug in an
                // StOr testcase.
                return(myHook);
            }
            var cj = new QConJoin(i_trans, myHook, otherHook, a_and);

            myHook.AddJoin(cj);
            otherHook.AddJoin(cj);
            return(cj);
        }
Пример #4
0
        internal virtual QCon ProduceTopLevelJoin
            ()
        {
            if (!HasJoins())
            {
                return(this);
            }
            var i = IterateJoins();

            if (i_joins.Size() == 1)
            {
                i.MoveNext();
                return(((QCon)i.Current).ProduceTopLevelJoin
                           ());
            }
            var col = new Collection4();

            while (i.MoveNext())
            {
                col.Ensure(((QCon)i.Current).ProduceTopLevelJoin
                               ());
            }
            i = col.GetEnumerator();
            i.MoveNext();
            var qcon = (QCon
                        )i.Current;

            if (col.Size() == 1)
            {
                return(qcon);
            }
            while (i.MoveNext())
            {
                qcon = (QCon)qcon.And((IConstraint)i.Current
                                      );
            }
            return(qcon);
        }
Пример #5
0
        internal virtual Db4objects.Db4o.Internal.Query.Processor.QCon ProduceTopLevelJoin
            ()
        {
            if (!HasJoins())
            {
                return(this);
            }
            IEnumerator i = IterateJoins();

            if (i_joins.Size() == 1)
            {
                i.MoveNext();
                return(((Db4objects.Db4o.Internal.Query.Processor.QCon)i.Current).ProduceTopLevelJoin
                           ());
            }
            Collection4 col = new Collection4();

            while (i.MoveNext())
            {
                col.Ensure(((Db4objects.Db4o.Internal.Query.Processor.QCon)i.Current).ProduceTopLevelJoin
                               ());
            }
            i = col.GetEnumerator();
            i.MoveNext();
            Db4objects.Db4o.Internal.Query.Processor.QCon qcon = (Db4objects.Db4o.Internal.Query.Processor.QCon
                                                                  )i.Current;
            if (col.Size() == 1)
            {
                return(qcon);
            }
            while (i.MoveNext())
            {
                qcon = (Db4objects.Db4o.Internal.Query.Processor.QCon)qcon.And((IConstraint)i.Current
                                                                               );
            }
            return(qcon);
        }
Пример #6
0
 internal override QE Add(QE evaluator)
 {
     i_evaluators.Ensure(evaluator);
     return(this);
 }
Пример #7
0
 public virtual void Ensure(ObjectContainerBase container)
 {
     _containers.Ensure(container);
 }