private void CollectLeaves(Collection4 leaves, Collection4 joins) { IEnumerator i = joins.GetEnumerator(); while (i.MoveNext()) { QConJoin join = ((QConJoin)i.Current); CollectLeavesFromJoin(leaves, join); } }
private IIndexedNodeWithRange NewNodeForConstraint(QConJoin join) { IIndexedNodeWithRange c1 = NodeForConstraint(join.Constraint1()); IIndexedNodeWithRange c2 = NodeForConstraint(join.Constraint2()); if (join.IsOr()) { return(new OrIndexedLeaf(FindLeafForJoin(join), c1, c2)); } return(new AndIndexedLeaf(join.Constraint1(), c1, c2)); }
private QCon FindLeafForJoin(QConJoin join) { if (join.Constraint1() is QConObject) { return(join.Constraint1()); } QCon con = join.Constraint2(); if (con is QConObject) { return(con); } return(FindLeafForJoin((QConJoin)con)); }
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); } } }
protected virtual void Visit(QConJoin join) { #if SILVERLIGHT if (_visitedJoins.ContainsKey(join)) { return; } #else if (_visitedJoins.Contains(join)) { return; } #endif _builder.Append("("); VisitJoinBranch(join.Constraint2()); _builder.AppendFormat(" {0} ", join.IsOr() ? "or" : "and"); VisitJoinBranch(join.Constraint1()); _builder.Append(")"); #if SILVERLIGHT _visitedJoins.Add(join, join); #else _visitedJoins.Add(join); #endif }
private void CollectLeavesFromJoin(Collection4 leaves, QConJoin join) { CollectLeavesFromJoinConstraint(leaves, join.Constraint1()); CollectLeavesFromJoinConstraint(leaves, join.Constraint2()); }