Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/19/10 06:19:16 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • worked on operators, engines, and optimization
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core/3.3/OperationCollection.cs

    r2829 r2834  
    2020#endregion
    2121
    22 using System;
    2322using System.Collections.Generic;
    2423using System.Linq;
    25 using System.Text;
    26 using System.Xml;
    2724using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2825
    2926namespace HeuristicLab.Core {
    30   public class ExecutionContextCollection : DeepCloneable, IList<IExecutionSequence>, IExecutionSequence {
     27  public class OperationCollection : DeepCloneable, IList<IOperation>, IOperation {
    3128    [Storable]
    32     private IList<IExecutionSequence> contexts;
     29    private IList<IOperation> operations;
    3330
    3431    [Storable]
     
    3936    }
    4037
    41     public ExecutionContextCollection() {
    42       contexts = new List<IExecutionSequence>();
     38    public OperationCollection() {
     39      operations = new List<IOperation>();
    4340      parallel = false;
    4441    }
    45     public ExecutionContextCollection(IEnumerable<IExecutionSequence> collection) {
    46       contexts = new List<IExecutionSequence>(collection.Where(e => e != null));
     42    public OperationCollection(IEnumerable<IOperation> collection) {
     43      operations = new List<IOperation>(collection.Where(e => e != null));
    4744      parallel = false;
    4845    }
    49     public ExecutionContextCollection(params IExecutionSequence[] list) {
    50       contexts = new List<IExecutionSequence>(list.Where(e => e != null));
     46    public OperationCollection(params IOperation[] list) {
     47      operations = new List<IOperation>(list.Where(e => e != null));
    5148      parallel = false;
    5249    }
    5350
    5451    public override IDeepCloneable Clone(Cloner cloner) {
    55       ExecutionContextCollection clone = new ExecutionContextCollection();
     52      OperationCollection clone = new OperationCollection(this.Select(x => (IOperation)cloner.Clone(x)));
    5653      cloner.RegisterClonedObject(this, clone);
    5754      clone.parallel = parallel;
    58       for (int i = 0; i < contexts.Count; i++)
    59         clone.contexts.Add((IExecutionSequence)cloner.Clone(contexts[i]));
    6055      return clone;
    6156    }
    6257
    63     #region IList<IExecutionContext> Members
    64     public int IndexOf(IExecutionSequence item) {
    65       return contexts.IndexOf(item);
     58    #region IList<IOperation> Members
     59    public int IndexOf(IOperation item) {
     60      return operations.IndexOf(item);
    6661    }
    67     public void Insert(int index, IExecutionSequence item) {
    68       if (item != null) contexts.Insert(index, item);
     62    public void Insert(int index, IOperation item) {
     63      if (item != null) operations.Insert(index, item);
    6964    }
    7065    public void RemoveAt(int index) {
    71       contexts.RemoveAt(index);
     66      operations.RemoveAt(index);
    7267    }
    73     public IExecutionSequence this[int index] {
    74       get { return contexts[index]; }
    75       set { if (value != null) contexts[index] = value; }
     68    public IOperation this[int index] {
     69      get { return operations[index]; }
     70      set { if (value != null) operations[index] = value; }
    7671    }
    7772    #endregion
    7873
    79     #region ICollection<IExecutionContext> Members
    80     public void Add(IExecutionSequence item) {
    81       if (item != null) contexts.Add(item);
     74    #region ICollection<IOperation> Members
     75    public void Add(IOperation item) {
     76      if (item != null) operations.Add(item);
    8277    }
    8378    public void Clear() {
    84       contexts.Clear();
     79      operations.Clear();
    8580    }
    86     public bool Contains(IExecutionSequence item) {
    87       return contexts.Contains(item);
     81    public bool Contains(IOperation item) {
     82      return operations.Contains(item);
    8883    }
    89     public void CopyTo(IExecutionSequence[] array, int arrayIndex) {
    90       contexts.CopyTo(array, arrayIndex);
     84    public void CopyTo(IOperation[] array, int arrayIndex) {
     85      operations.CopyTo(array, arrayIndex);
    9186    }
    9287    public int Count {
    93       get { return contexts.Count; }
     88      get { return operations.Count; }
    9489    }
    9590    public bool IsReadOnly {
    96       get { return contexts.IsReadOnly; }
     91      get { return operations.IsReadOnly; }
    9792    }
    98     public bool Remove(IExecutionSequence item) {
    99       return contexts.Remove(item);
     93    public bool Remove(IOperation item) {
     94      return operations.Remove(item);
    10095    }
    10196    #endregion
    10297
    103     #region IEnumerable<IExecutionContext> Members
    104     public IEnumerator<IExecutionSequence> GetEnumerator() {
    105       return contexts.GetEnumerator();
     98    #region IEnumerable<IOperation> Members
     99    public IEnumerator<IOperation> GetEnumerator() {
     100      return operations.GetEnumerator();
    106101    }
    107102    #endregion
     
    109104    #region IEnumerable Members
    110105    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {
    111       return contexts.GetEnumerator();
     106      return operations.GetEnumerator();
    112107    }
    113108    #endregion
Note: See TracChangeset for help on using the changeset viewer.