Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/03/10 04:43:06 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • worked on parameters and operators
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs

    r2739 r2740  
    3232  /// A base class for operators which have only one successor.
    3333  /// </summary>
    34   [Item("StandardOperator", "A base class for operators which have only one successor.")]
     34  [Item("SingleSuccessorOperator", "A base class for operators which have only one successor.")]
    3535  [Creatable("Test")]
    3636  [EmptyStorableClass]
    37   public abstract class StandardOperator : Operator {
    38     public OperatorParameter Successor {
     37  public abstract class SingleSuccessorOperator : Operator {
     38    protected OperatorParameter SuccessorParameter {
    3939      get { return (OperatorParameter)Parameters["Successor"]; }
    4040    }
    41 
    42     public StandardOperator()
    43       : base() {
    44       Parameters.Add(new OperatorParameter("Successor", "Operator which is executed next"));
     41    public IOperator Successor {
     42      get { return SuccessorParameter.Value; }
     43      set { SuccessorParameter.Value = value; }
    4544    }
    4645
    47     public override ExecutionContextCollection Apply(ExecutionContext context) {
    48       IOperator successor = (IOperator)Successor.GetValue(context);
    49       if (successor != null)
    50         return new ExecutionContextCollection(new ExecutionContext(context.Parent, successor, context.Scope));
     46    public SingleSuccessorOperator()
     47      : base() {
     48      Parameters.Add(new OperatorParameter("Successor", "Operator which is executed next."));
     49    }
     50
     51    public override ExecutionContextCollection Apply() {
     52      if (Successor != null)
     53        return new ExecutionContextCollection(new ExecutionContext(ExecutionContext.Parent, Successor, ExecutionContext.Scope));
    5154      else
    5255        return new ExecutionContextCollection();
Note: See TracChangeset for help on using the changeset viewer.