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 CollectLeavesFromJoin(Collection4 leaves, QConJoin join) { CollectLeavesFromJoinConstraint(leaves, join.Constraint1()); CollectLeavesFromJoinConstraint(leaves, join.Constraint2()); }