// public void visit(Object a_tree) { // final QCandidate parent = (QCandidate) a_tree; // if (parent.createChild(this)) { // return; // } // // // No object found. // // All children constraints are necessarily false. // // Check immediately. // Iterator4 i = iterateConstraints(); // while(i.moveNext()){ // ((QCon)i.current()).visitOnNull(parent.getRoot()); // } // // } public void Filter(QField field, IParentCandidate parent) { if (parent.CreateChild(field, this)) { return; } // No object found. // All children constraints are necessarily false. // Check immediately. IEnumerator i = IterateConstraints(); while (i.MoveNext()) { ((QCon)i.Current).VisitOnNull(parent.GetRoot()); } }
public virtual void Filter(QField field, IParentCandidate candidate) { candidate.UseField(field); bool res = true; bool processed = false; if (_checkClassMetadataOnly) { ClassMetadata classMetadata = candidate.ClassMetadata(); if (classMetadata != null) { res = i_evaluator.Not(_classMetadata.GetHigherHierarchy(classMetadata) == _classMetadata ); processed = true; } } if (!processed) { res = Evaluate(candidate); } Visit1(candidate.GetRoot(), this, res); }