internal override bool Evaluate(IInternalCandidate candidate) { bool result = true; QCandidates qCandidates = candidate.Candidates(); if (qCandidates.IsTopLevel() && qCandidates.WasLoadedFromClassFieldIndex()) { if (_classMetadata.GetAncestor() != null) { BTreeClassIndexStrategy index = (BTreeClassIndexStrategy)_classMetadata.Index(); if (index == null) { return(i_evaluator.Not(true)); } BTree btree = index.Btree(); object searchResult = btree.Search(candidate.Transaction(), candidate.Id()); result = searchResult != null; } } else { IReflectClass claxx = candidate.ClassMetadata().ClassReflector(); if (claxx == null) { result = false; } else { result = i_equal ? _claxx.Equals(claxx) : _claxx.IsAssignableFrom(claxx); } } return(i_evaluator.Not(result)); }
internal override bool Evaluate(IInternalCandidate candidate) { bool result = true; QCandidates qCandidates = candidate.Candidates(); if (qCandidates.IsTopLevel() && qCandidates.WasLoadedFromClassFieldIndex()) { if (_classMetadata.GetAncestor() != null) { BTreeClassIndexStrategy index = (BTreeClassIndexStrategy)_classMetadata.Index(); if (index == null) { return i_evaluator.Not(true); } BTree btree = index.Btree(); object searchResult = btree.Search(candidate.Transaction(), candidate.Id()); result = searchResult != null; } } else { IReflectClass claxx = candidate.ClassMetadata().ClassReflector(); if (claxx == null) { result = false; } else { result = i_equal ? _claxx.Equals(claxx) : _claxx.IsAssignableFrom(claxx); } } return i_evaluator.Not(result); }
internal override bool Evaluate(QConObject a_constraint, IInternalCandidate a_candidate , object a_value) { if (i_objectID == 0) { i_objectID = a_constraint.GetObjectID(); } return(a_candidate.Id() == i_objectID); }
public virtual void Visit(object a_tree) { IInternalCandidate candidate = (IInternalCandidate)a_tree; if (candidate.Include()) { AddKeyCheckDuplicates(candidate.Id()); } }
internal override bool Evaluate(QConObject a_constraint, IInternalCandidate a_candidate , object a_value) { if (i_objectID == 0) { i_objectID = a_constraint.GetObjectID(); } return a_candidate.Id() == i_objectID; }