Changeset 15084
- Timestamp:
- 06/28/17 22:55:27 (7 years ago)
- Location:
- trunk/sources
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Core/3.3/Interfaces/IMultiOperator.cs
r14185 r15084 21 21 22 22 23 using System.Collections.Generic; 24 23 25 namespace HeuristicLab.Core { 24 public interface IMultiOperator<T> : IOperator where T : class,IOperator { 25 IItemList<T> Operators { get; } 26 public interface IMultiOperator : IOperator { 27 IEnumerable<IOperator> Operators { get; } 28 bool AddOperator(IOperator op); 29 bool RemoveOperator(IOperator op); 30 } 31 public interface IMultiOperator<T> : IMultiOperator where T : class,IOperator { 32 new IItemList<T> Operators { get; } 26 33 } 27 34 } -
trunk/sources/HeuristicLab.Operators/3.3/MultiOperator.cs
r14185 r15084 22 22 using System; 23 23 using System.Collections.Generic; 24 using System.Linq; 24 25 using HeuristicLab.Collections; 25 26 using HeuristicLab.Common; … … 52 53 } 53 54 } 55 56 IEnumerable<IOperator> IMultiOperator.Operators { get { return operators.AsEnumerable(); } } 54 57 55 58 [StorableConstructor] … … 69 72 private void AfterDeserialization() { 70 73 Initialize(); 74 } 75 76 public virtual bool AddOperator(IOperator op) { 77 var tOp = op as T; 78 if (tOp == null) return false; 79 operators.Add(tOp); 80 return true; 81 } 82 83 public virtual bool RemoveOperator(IOperator op) { 84 var tOp = op as T; 85 if (tOp == null) return false; 86 return operators.Remove(tOp); 71 87 } 72 88 -
trunk/sources/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveBasicProblem.cs
r15080 r15084 76 76 if (encoding != null && encoding.Operators.Any(x => x is ISingleObjectiveOperator && !(x is IMultiObjectiveOperator))) 77 77 encoding.Operators = encoding.Operators.Where(x => !(x is ISingleObjectiveOperator) || x is IMultiObjectiveOperator).ToList(); 78 79 foreach (var multiOp in Encoding.Operators.OfType<IMultiOperator>()) { 80 foreach (var soOp in multiOp.Operators.Where(x => x is ISingleObjectiveOperator).ToList()) { 81 multiOp.RemoveOperator(soOp); 82 } 83 } 78 84 } 79 85 -
trunk/sources/HeuristicLab.Optimization/3.3/BasicProblems/SingleObjectiveBasicProblem.cs
r15051 r15084 110 110 if (encoding.Operators.Any(x => x is IMultiObjectiveOperator && !(x is ISingleObjectiveOperator))) 111 111 encoding.Operators = encoding.Operators.Where(x => !(x is IMultiObjectiveOperator) || x is ISingleObjectiveOperator).ToList(); 112 113 foreach (var multiOp in Encoding.Operators.OfType<IMultiOperator>()) { 114 foreach (var moOp in multiOp.Operators.Where(x => x is IMultiObjectiveOperator).ToList()) { 115 multiOp.RemoveOperator(moOp); 116 } 117 } 112 118 } 113 119
Note: See TracChangeset
for help on using the changeset viewer.