Table of Contents

Interface IIssuesSetDiffBuilder

Namespace
NDepend.Issue
Assembly
NDepend.API.dll

An issues-set-diff-builder lets add and remove rules and issues in an IssuesSetDiff.

public interface IIssuesSetDiffBuilder
Extension Methods

Remarks

An issues-set-diff can be created through CreateIssuesSetDiff(ICompareContext, IIssuesSet, IIssuesSet) or ComputeIssuesDiff(IAnalysisResult, ICompareContext).

When an IIssuesSet is referenced by an IIssuesSetDiff object, the IIssuesSet.Builder must not be used to add an remove rules and issues, the IIssuesSetDiffBuilder object must be used instead.

An issues-set-diff is not thread-safe. It is safe to call IIssuesSetDiff methods concurrently from several threads but it is not safe to call these methods and IIssuesSetDiffBuilder methods concurrently from several threads, this would provoke corrupted state and exceptions.

Property (1)

IssuesSetDiff

The issues-set-diff that is modified by this builder.

IIssuesSetDiff IssuesSetDiff { get; }

Property Value

IIssuesSetDiff

Methods (9)

AddQualityGate(IQualityGate, IQualityGate)

void AddQualityGate(IQualityGate newerQualityGate, IQualityGate olderQualityGate)

Parameters

newerQualityGate IQualityGate

The quality gate to add to IssuesSetDiff.NewerIssuesSet.

olderQualityGate IQualityGate

The quality gate to add to IssuesSetDiff.OlderIssuesSet.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.NewerIssuesSet already contains newerQualityGate,
or if IssuesSetDiff.OlderIssuesSet already contains olderQualityGate

AddQualityGateInNewerIssuesSetOnly(IQualityGate)

void AddQualityGateInNewerIssuesSetOnly(IQualityGate newerQualityGate)

Parameters

newerQualityGate IQualityGate

The quality gate to add to IssuesSetDiff.NewerIssuesSet.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.NewerIssuesSet already contains newerQualityGate.

AddQualityGateInOlderIssuesSetOnly(IQualityGate)

void AddQualityGateInOlderIssuesSetOnly(IQualityGate olderQualityGate)

Parameters

olderQualityGate IQualityGate

The quality gate to add to IssuesSetDiff.OlderIssuesSet.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.OlderIssuesSet already contains olderQualityGate.

AddRule(IRuleIssues, IRuleIssues)

void AddRule(IRuleIssues newerRuleIssues, IRuleIssues olderRuleIssues)

Parameters

newerRuleIssues IRuleIssues

The rule and issues to add to IssuesSetDiff.NewerIssuesSet.

olderRuleIssues IRuleIssues

The rule and issues to add to IssuesSetDiff.OlderIssuesSet.

Remarks

newerRuleIssues and olderRuleIssues are then compared in the IssuesSetDiff.
A IRuleIssues object can be obtained from GetIssues(IRule, IQueryExecutionSuccessResult).
When a rule is added or removed this.IssuesSetDiff.OlderIssuesSet and NewerIssuesSet, AllQualityGates are not recomputed. Hence the quality gates that rely on issues or debt might have a dirty state.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.NewerIssuesSet already contains the newerRuleIssues.Rule or if IssuesSetDiff.OlderIssuesSet already contains the olderRuleIssues.Rule.

Also thrown if an issue of newerRuleIssues.Issues have a CodeElement that doesn't belong to IssuesSetDiff.NewerIssuesSet.CodeBase or if an issue of olderRuleIssues.Issues have a CodeElement that doesn't belong to IssuesSetDiff.OlderIssuesSet.CodeBase.

AddRuleInNewerIssuesSetOnly(IRuleIssues)

Add a newerRuleIssues.Rule and its newerRuleIssues.Issues to IssuesSetDiff.NewerIssuesSet only.

void AddRuleInNewerIssuesSetOnly(IRuleIssues newerRuleIssues)

Parameters

newerRuleIssues IRuleIssues

The rule and issues to add.

Remarks

A IRuleIssues object can be obtained from GetIssues(IRule, IQueryExecutionSuccessResult).
When a rule is added or removed this.IssuesSetDiff.OlderIssuesSet and NewerIssuesSet, AllQualityGates are not recomputed. Hence the quality gates that rely on issues or debt might have a dirty state.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.NewerIssuesSet already contains the newerRuleIssues.Rule.
Also thrown if an issue of newerRuleIssues.Issues have a CodeElement that doesn't belong to IssuesSetDiff.NewerIssuesSet.CodeBase.

AddRuleInOlderIssuesSetOnly(IRuleIssues)

Add a olderRuleIssues.Rule and its olderRuleIssues.Issues to IssuesSetDiff.OlderIssuesSet only.

void AddRuleInOlderIssuesSetOnly(IRuleIssues olderRuleIssues)

Parameters

olderRuleIssues IRuleIssues

The rule and issues to add.

Remarks

A IRuleIssues object can be obtained from GetIssues(IRule, IQueryExecutionSuccessResult).
When a rule is added or removed this.IssuesSetDiff.OlderIssuesSet and NewerIssuesSet, AllQualityGates are not recomputed. Hence the quality gates that rely on issues or debt might have a dirty state.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.OlderIssuesSet already contains the olderRuleIssues.Rule.
Also thrown if an issue of olderRuleIssues.Issues have a CodeElement that doesn't belong to IssuesSetDiff.OlderIssuesSet.CodeBase.

ImportIssues(IRuleIssues[], IRuleIssues[])

Aggregate imported issues from newRulesIssues and oldRulesIssues.

void ImportIssues(IRuleIssues[] newRulesIssues, IRuleIssues[] oldRulesIssues)

Parameters

newRulesIssues IRuleIssues[]

The issues in the newer snapshot.

oldRulesIssues IRuleIssues[]

The issues in the older snapshot.

RemoveQualityGate(IQualityGate)

Remove the qualityGate from both IssuesSetDiff.NewerIssuesSet and IssuesSetDiff.OlderIssuesSet.

void RemoveQualityGate(IQualityGate qualityGate)

Parameters

qualityGate IQualityGate

The quality gate to remove. It can be defined in IssuesSetDiff.NewerIssuesSet or IssuesSetDiff.OlderIssuesSet.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.NewerIssuesSet nor IssuesSetDiff.OlderIssuesSet contain the qualityGate.

RemoveRule(IRule)

Remove the rule and its issues from both IssuesSetDiff.NewerIssuesSet and IssuesSetDiff.OlderIssuesSet.

void RemoveRule(IRule rule)

Parameters

rule IRule

The rule to remove. It can be defined in IssuesSetDiff.NewerIssuesSet or IssuesSetDiff.OlderIssuesSet.

Remarks

When a rule is added or removed this.IssuesSetDiff.OlderIssuesSet and NewerIssuesSet, AllQualityGates are not recomputed. Hence the quality gates that rely on issues or debt might have a dirty state.

Exceptions

ArgumentException

Thrown if IssuesSetDiff.NewerIssuesSet nor IssuesSetDiff.OlderIssuesSet contain the rule.