// // // // // $Revision: 1965 $ // using System; namespace ICSharpCode.Core { /// /// Condition evaluator that lazy-loads another condition evaluator and executes it. /// public class LazyConditionEvaluator : IConditionEvaluator { AddIn addIn; string name; string className; public string Name { get { return name; } } public string ClassName { get { return className; } } public LazyConditionEvaluator(AddIn addIn, Properties properties) { this.addIn = addIn; this.name = properties["name"]; this.className = properties["class"]; } public bool IsValid(object caller, Condition condition) { IConditionEvaluator evaluator = (IConditionEvaluator)addIn.CreateObject(className); if (evaluator == null) { return false; } AddInTree.ConditionEvaluators[name] = evaluator; return evaluator.IsValid(caller, condition); } public override string ToString() { return String.Format("[LazyLoadConditionEvaluator: className = {0}, name = {1}]", className, name); } } }