private void CollectTopLevelJoins(Collection4 joins, QCon constraintWithJoins) { IEnumerator i = constraintWithJoins.IterateJoins(); while (i.MoveNext()) { QConJoin join = (QConJoin)i.Current; if (!join.HasJoins()) { if (!joins.ContainsByIdentity(join)) { joins.Add(join); } } else { CollectTopLevelJoins(joins, join); } } }
private void CollectLeavesFromJoinConstraint(Collection4 leaves, QCon constraint) { if (constraint is QConJoin) { CollectLeavesFromJoin(leaves, (QConJoin)constraint); } else { if (!leaves.ContainsByIdentity(constraint)) { leaves.Add(constraint); } } }