private void CollectIndexedNodes(IEnumerator qcons) { while (qcons.MoveNext()) { QCon qcon = (QCon)qcons.Current; if (IsCached(qcon)) { continue; } if (IsLeaf(qcon)) { if (qcon.CanLoadByIndex() && qcon.CanBeIndexLeaf()) { QConObject conObject = (QConObject)qcon; if (conObject.HasJoins()) { CollectJoinedNode(conObject); } else { CollectStandaloneNode(conObject); } } } else { if (!qcon.HasJoins()) { CollectIndexedNodes(qcon.IterateChildren()); } } } }
private bool HasJoins(QCon con) { if (con.HasJoins()) { return(true); } IEnumerator childIter = con.IterateChildren(); while (childIter.MoveNext()) { if (HasJoins((QCon)childIter.Current)) { return(true); } } return(false); }
private void VisitAllChildrenOf(QCon path) { VisitAll(Iterators.Iterable(path.IterateChildren()).Cast <IConstraint>()); }