コード例 #1
0
ファイル: IndexedPath.cs プロジェクト: danfma/db4o-net
 public static IIndexedNode NewParentPath(IIndexedNode next, QCon constraint)
 {
     if (!CanFollowParent(constraint))
     {
         return(null);
     }
     return(new Db4objects.Db4o.Internal.Fieldindex.IndexedPath((QConObject)constraint
                                                                .Parent(), next));
 }
コード例 #2
0
ファイル: IndexedPath.cs プロジェクト: pondyond/db4o
 public static IIndexedNode NewParentPath(IIndexedNode next, QCon constraint)
 {
     if (!CanFollowParent(constraint))
     {
         return(null);
     }
     return(new IndexedPath((QConObject)constraint
                            .Parent(), next));
 }
コード例 #3
0
 private bool HaveSamePath(QCon x, QCon y)
 {
     if (x == y)
     {
         return(true);
     }
     if (!x.OnSameFieldAs(y))
     {
         return(false);
     }
     if (!x.HasParent())
     {
         return(!y.HasParent());
     }
     return(HaveSamePath(x.Parent(), y.Parent()));
 }
コード例 #4
0
ファイル: IndexedPath.cs プロジェクト: danfma/db4o-net
        private static bool CanFollowParent(QCon con)
        {
            QCon          parent      = con.Parent();
            FieldMetadata parentField = GetYapField(parent);

            if (null == parentField)
            {
                return(false);
            }
            FieldMetadata conField = GetYapField(con);

            if (null == conField)
            {
                return(false);
            }
            return(parentField.HasIndex() && parentField.FieldType().IsAssignableFrom(conField
                                                                                      .ContainingClass()));
        }