public static IIndexedNode NewParentPath(IIndexedNode next, QCon constraint) { if (!CanFollowParent(constraint)) { return(null); } return(new Db4objects.Db4o.Internal.Fieldindex.IndexedPath((QConObject)constraint .Parent(), next)); }
public static IIndexedNode NewParentPath(IIndexedNode next, QCon constraint) { if (!CanFollowParent(constraint)) { return(null); } return(new IndexedPath((QConObject)constraint .Parent(), next)); }
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())); }
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())); }