using System; using System.Collections.Generic; namespace HeuristicLab.Problems.ProgramSynthesis.Push.Configuration { using HeuristicLab.Core; using HeuristicLab.Problems.ProgramSynthesis.Push.Expressions; using HeuristicLab.Problems.ProgramSynthesis.Push.Stack; public class EnabledExpressionsChangedEventArgs : EventArgs { public IEnumerable AddedExpressions { get; private set; } public IEnumerable RemovedExpressions { get; private set; } public EnabledExpressionsChangedEventArgs(IEnumerable addedExpressions, IEnumerable removedExpressions) { AddedExpressions = addedExpressions; RemovedExpressions = removedExpressions; } } public interface IEnabledExpressionsConfiguration : INamedItem { event EventHandler EnabledExpressionsChanged; IReadOnlyList EnabledExpressions { get; } void EnableStack(StackTypes types, bool enableDependencies = false); void DisableStack(StackTypes type, bool enableDepenencies = false); void SetStack(StackTypes type, bool state, bool setDependencies = false); void EnableExpressionOfStack(StackTypes types); void DisableExpressionsOfStack(StackTypes types); void EnableExpression(string name); void DisableExpression(string name); void SetExpression(string name, bool state); void SetExpression(bool state) where T : Expression; void EnableExpression() where T : Expression; void DisableExpression() where T : Expression; } }