protected virtual void OnMethod(RunnerEventArgs e) { OnEvent(AnalyzeMethod, e); foreach (IMethodRule rule in method_rules) { defectCountBeforeCheck = Defects.Count; // stop if we reach the user defined defect limit if (defectCountBeforeCheck >= DefectsLimit) { break; } // ignore if the visibility does not match user selection ApplicabilityScope scope = rule.ApplicabilityScope; if ((scope != ApplicabilityScope.All) && !VisibilityCheck(scope, e.CurrentMethod.IsVisible())) { continue; } // ignore the rule on some user defined methods if (IgnoreList.IsIgnored(rule, e.CurrentMethod)) { continue; } currentRule = rule; rule.CheckMethod(e.CurrentMethod); } }
private void Analyze() { counter = 0; // apply settings Runner.DefectsLimit = Settings.Default.DefectsLimit; Runner.SeverityBitmask.ClearAll(); Runner.SeverityBitmask.SetDown((Severity)Settings.Default.Severity); Runner.ConfidenceBitmask.ClearAll(); Runner.ConfidenceBitmask.SetDown((Confidence)Settings.Default.Confidence); // wizard limits this as a "global" (all rule) setting ApplicabilityScope scope = (ApplicabilityScope)Settings.Default.Scope; foreach (IRule rule in Runner.Rules) { rule.ApplicabilityScope = scope; } // activate rules based on user selection UpdateActiveRules(); // Initialize / Run / TearDown Runner.Execute(); // reset rules as the user selected them (since some rules might have // turned themselves off is they were not needed for the analysis) so // that report used rules correctly UpdateActiveRules(); BeginInvoke((Action)(() => Current = Page.Report)); }
static bool VisibilityCheck(ApplicabilityScope scope, bool visible) { switch (scope) { case ApplicabilityScope.Visible: return(visible); case ApplicabilityScope.NonVisible: return(!visible); default: return(true); } }
private void CheckApplicabilityScope (string ruleName, ApplicabilityScope applicabilityScope) { foreach (IRule rule in runner.Rules) { if (String.Compare (ruleName, rule.Name) == 0) Assert.AreEqual (rule.ApplicabilityScope, applicabilityScope); } }
public static void CheckApplicabilityScopeFor (IEnumerable<IRule> rules, ApplicabilityScope applicabilityScope) { foreach (IRule rule in rules) Assert.AreEqual (applicabilityScope, rule.ApplicabilityScope); }
static bool VisibilityCheck (ApplicabilityScope scope, bool visible) { switch (scope) { case ApplicabilityScope.Visible: return visible; case ApplicabilityScope.NonVisible: return !visible; default: return true; } }