internal override PredicateMatch MatchResource(IResource res, IPropertyChangeSet cs) { PredicateMatch match = MatchResourceByLink(res, cs, _directPropType); if (match != PredicateMatch.Match && _directPropType != _reversePropType) { PredicateMatch match2 = MatchResourceByLink(res, cs, _reversePropType); if (match2 == PredicateMatch.Match) { return(match2); } if (match == PredicateMatch.Add && match2 == PredicateMatch.Del) { return(PredicateMatch.Match); } if (match == PredicateMatch.Del && match2 == PredicateMatch.Add) { return(PredicateMatch.Match); } if (match != PredicateMatch.None) { return(match); } return(match2); } return(match); }
internal void GetMatchCounts(IResource res, IPropertyChangeSet cs, ref int oldMatch, ref int newMatch) { PredicateMatch match = MatchResource(res, cs); if (match == PredicateMatch.Add || match == PredicateMatch.Match) { newMatch++; } if (match == PredicateMatch.Del || match == PredicateMatch.Match) { oldMatch++; } }
internal override PredicateMatch MatchResource(IResource res, IPropertyChangeSet cs) { int oldMatch = 0; int newMatch = 0; int len = _sourcePredicates.Length; for (int i = 0; i < len; i++) { PredicateMatch match = _sourcePredicates [i].MatchResource(res, cs); if (match == PredicateMatch.Add || match == PredicateMatch.Match) { newMatch++; } if (match == PredicateMatch.Del || match == PredicateMatch.Match) { oldMatch++; } if (newMatch == 0 && oldMatch == 0) { break; } } if (newMatch == len && oldMatch == len) { return(PredicateMatch.Match); } if (newMatch == len) { return(PredicateMatch.Add); } if (oldMatch == len) { return(PredicateMatch.Del); } return(PredicateMatch.None); }