private void AssertIndex(object[] expected)
        {
            ExpectingVisitor    visitor = new ExpectingVisitor(expected);
            IClassIndexStrategy index   = ClassMetadataFor(typeof(ClassIndexTestCase.Item)).Index
                                              ();

            index.TraverseAll(Trans(), visitor);
            visitor.AssertExpectations();
        }
        public override void LoadFromClassIndex(ClassMetadata clazz)
        {
            IClassIndexStrategy index = clazz.Index();

            if (index is BTreeClassIndexStrategy)
            {
                BTree btree = ((BTreeClassIndexStrategy)index).Btree();
                _ids = new IntArrayList(btree.Size(Transaction()));
            }
            index.TraverseAll(_transaction, new _IVisitor4_107(this));
        }
Exemple #3
0
        internal void LoadFromClassIndex()
        {
            if (!IsEmpty())
            {
                return;
            }
            QCandidates.TreeIntBuilder result = new QCandidates.TreeIntBuilder();
            IClassIndexStrategy        index  = i_classMetadata.Index();

            index.TraverseAll(i_trans, new _IVisitor4_346(this, result));
            i_root = result.tree;
            DiagnosticProcessor dp = i_trans.Container()._handlers.DiagnosticProcessor();

            if (dp.Enabled() && !IsClassOnlyQuery())
            {
                dp.LoadedFromClassIndex(i_classMetadata);
            }
            _loadedFromClassIndex = true;
        }
        public override void LoadFromClassIndexes(ClassMetadataIterator iter)
        {
            // duplicates because of inheritance hierarchies
            ByRef duplicates = new ByRef();

            while (iter.MoveNext())
            {
                ClassMetadata classMetadata = iter.CurrentClass();
                if (classMetadata.GetName() != null)
                {
                    IReflectClass claxx = classMetadata.ClassReflector();
                    if (claxx == null || !(Stream()._handlers.IclassInternal.IsAssignableFrom(claxx)))
                    {
                        IClassIndexStrategy index = classMetadata.Index();
                        index.TraverseAll(_transaction, new _IVisitor4_130(this, duplicates));
                    }
                }
            }
        }