using System;
using System.ComponentModel;
using System.Collections;
using System.Xml;
using System.Threading;
using AnticipatingMinds.Genesis.Effectors;
namespace AnticipatingMinds.Genesis.KnowledgeManagement{
/// <summary>
/// This class is intended for internal use only.
/// </summary>
public class DisabledRule : Rule
{
/// <summary>
/// This class is intended for internal use only.
/// </summary>
internal DisabledRule(string ruleId, string templateId,IDictionary ruleProperties,string disabilityReason,Exception ruleCreationException) : base (ruleId, templateId,ruleProperties)
{
this.disabilityReason = disabilityReason;
this.ruleCreationException = ruleCreationException;
}
/// <summary>
/// This class is intended for internal use only.
/// </summary>
[BrowsableAttribute(false)]
public override Type[] TargetedCodeElements
{
get
{
return targetedTypes;
}
}
/// <summary>
/// This class is intended for internal use only.
/// </summary>
[Browsable(false)]
public Exception RuleCreationException
{
get
{
return ruleCreationException;
}
}
/// <summary>
/// This class is intended for internal use only.
/// </summary>
[CategoryAttribute("Appearance")]
[DescriptionAttribute("The reason rule is disabled and displayed grey in the Rules Explorer")]
public string DisabilityReason
{
get
{
return disabilityReason;
}
}
/// <summary>
/// This class is intended for internal use only.
/// </summary>
public override RuleViolation[] Analyze(object targetedObject,ManualResetEvent cancelAnalysisEvent)
{
throw new InvalidOperationException("Disabled rule cannot analyze code.");
}
/// <summary>
/// This class is intended for internal use only.
/// </summary>
public override void Correct(RuleViolationCorrection[] ruleViolations,CodeEffector codeEffector, ManualResetEvent cancelCorrectionEvent)
{
throw new InvalidOperationException("Disabled rule cannot correct violations.");
}
public override bool IsDisabled
{
get
{
return true;
}
}
private Type[] targetedTypes = new Type[0];
private string disabilityReason;
private Exception ruleCreationException;
}
}
|