Exemple #1
0
        public virtual void TestCollectIdsByFieldName()
        {
            ClassMetadataCollectIdsTestCase.Item root = QueryRootItem();
            CollectIdContext context = CollectIdContext.ForID(Trans(), (int)Db().GetID(root));

            context.ClassMetadata().CollectIDs(context, "typedRef");
            AssertCollectedIds(context, new object[] { root.typedRef });
        }
Exemple #2
0
        public virtual void TestCollectIds()
        {
            ClassMetadataCollectIdsTestCase.Item root = QueryRootItem();
            CollectIdContext context = CollectIdContext.ForID(Trans(), (int)Db().GetID(root));

            context.ClassMetadata().CollectIDs(context);
            AssertCollectedIds(context, new object[] { root.typedRef, root.untypedRef, root.UntypedElementAt
                                                           (0) });
        }
        /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception>
        private bool CollectIDsByTypehandlerAspect(QueryingReadContext context)
        {
            BooleanByRef     aspectFound = new BooleanByRef(false);
            CollectIdContext subContext  = CollectIdContext.ForID(context.Transaction(), context
                                                                  .Collector(), context.CollectionID());
            ITraverseAspectCommand command = new _MarshallingInfoTraverseAspectCommand_349(this
                                                                                           , aspectFound, subContext, EnsureFieldList(subContext));

            TraverseAllAspects(subContext, command);
            return(aspectFound.value);
        }
Exemple #4
0
            public object Apply(object current)
            {
                int id = ((int)current);
                CollectIdContext context = CollectIdContext.ForID(this._enclosing.i_trans, id);

                if (context == null)
                {
                    return(Iterators.Skip);
                }
                context.ClassMetadata().CollectIDs(context, fieldName);
                return(new TreeKeyIterator(context.Ids()));
            }
Exemple #5
0
        public virtual IEnumerator ReferencesFrom(int id)
        {
            CollectIdContext context       = CollectIdContext.ForID(_transaction, id);
            ClassMetadata    classMetadata = context.ClassMetadata();

            if (null == classMetadata)
            {
                // most probably ClassMetadata reading
                return(Iterators.EmptyIterator);
            }
            if (!classMetadata.HasIdentity())
            {
                throw new InvalidOperationException(classMetadata.ToString());
            }
            if (!Handlers4.IsCascading(classMetadata.TypeHandler()))
            {
                return(Iterators.EmptyIterator);
            }
            classMetadata.CollectIDs(context);
            return(new TreeKeyIterator(context.Ids()));
        }