Changeset 1176 for trunk/sources
- Timestamp:
- 01/27/09 09:31:06 (16 years ago)
- Location:
- trunk/sources
- Files:
-
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.BitVector/BitVectorCrossoverBase.cs
r77 r1176 28 28 29 29 namespace HeuristicLab.BitVector { 30 /// <summary> 31 /// Base class for all bit vector crossover operators. 32 /// </summary> 30 33 public abstract class BitVectorCrossoverBase : CrossoverBase { 34 /// <summary> 35 /// Initializes a new instance of <see cref="BitVectorCrossoverBase"/> with one variable info 36 /// (<c>BitVector</c>). 37 /// </summary> 31 38 public BitVectorCrossoverBase() 32 39 : base() { … … 34 41 } 35 42 43 /// <summary> 44 /// Performs a crossover of two given parents. 45 /// </summary> 46 /// <exception cref="InvalidOperationException">Thrown when the parents have different lengths.</exception> 47 /// <param name="scope">The current scope.</param> 48 /// <param name="random">A random number generator.</param> 49 /// <param name="parent1">The first parent for crossover.</param> 50 /// <param name="parent2">The second parent for crossover.</param> 51 /// <param name="child">The resulting child scope.</param> 36 52 protected sealed override void Cross(IScope scope, IRandom random, IScope parent1, IScope parent2, IScope child) { 37 53 IVariableInfo bitVectorInfo = GetVariableInfo("BitVector"); … … 45 61 } 46 62 63 /// <summary> 64 /// Performs a crossover of two given parents. 65 /// </summary> 66 /// <param name="scope">The current scope.</param> 67 /// <param name="random">A random number generator.</param> 68 /// <param name="parent1">The first parent for crossover.</param> 69 /// <param name="parent2">The second parent for crossover.</param> 70 /// <returns>The newly created bit vector, resulting from the crossover operation.</returns> 47 71 protected abstract bool[] Cross(IScope scope, IRandom random, bool[] parent1, bool[] parent2); 48 72 } -
trunk/sources/HeuristicLab.BitVector/BitVectorManipulatorBase.cs
r2 r1176 27 27 28 28 namespace HeuristicLab.BitVector { 29 /// <summary> 30 /// Base class for all bit vector manipulators. 31 /// </summary> 29 32 public abstract class BitVectorManipulatorBase : OperatorBase { 33 /// <summary> 34 /// Initializes a new instance of <see cref="BitVectorManipulatorBase"/> with two variable infos 35 /// (<c>Random</c> and <c>BitVector</c>). 36 /// </summary> 30 37 public BitVectorManipulatorBase() { 31 38 AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In)); … … 33 40 } 34 41 42 /// <summary> 43 /// Manipulates the bit vector. 44 /// </summary> 45 /// <param name="scope">The current scope whose bit vector to manipulate.</param> 46 /// <returns><c>null</c>.</returns> 35 47 public override IOperation Apply(IScope scope) { 36 48 IRandom random = GetVariableValue<IRandom>("Random", scope, true); … … 40 52 } 41 53 54 /// <summary> 55 /// Manipulates the given bit <paramref name="vector"/> with the given random number generator. 56 /// </summary> 57 /// <param name="scope">The current scope.</param> 58 /// <param name="random">A random number generator.</param> 59 /// <param name="vector">The bit vector to manipulate.</param> 60 /// <returns>The manipulated bit vector.</returns> 42 61 protected abstract bool[] Manipulate(IScope scope, IRandom random, bool[] vector); 43 62 } -
trunk/sources/HeuristicLab.BitVector/FlipManipulator.cs
r2 r1176 26 26 27 27 namespace HeuristicLab.BitVector { 28 /// <summary> 29 /// Single bit flip manipulation for bit vectors. 30 /// </summary> 28 31 public class FlipManipulator : BitVectorManipulatorBase { 32 /// <inheritdoc select="summary"/> 29 33 public override string Description { 30 34 get { return "Single bit flip manipulation for bit vectors."; } 31 35 } 32 36 37 /// <summary> 38 /// Changes randomly a single position in the given bit <paramref name="vector"/>. 39 /// </summary> 40 /// <param name="random">A random number generator.</param> 41 /// <param name="vector">The bit vector to manipulate.</param> 42 /// <returns>The new bit vector that has been manipulated.</returns> 33 43 public static bool[] Apply(IRandom random, bool[] vector) { 34 44 bool[] result = (bool[])vector.Clone(); … … 38 48 } 39 49 50 /// <summary> 51 /// Changes randomly a single position in the given bit <paramref name="vector"/>. 52 /// </summary> 53 /// <remarks>Calls <see cref="Apply"/>.</remarks> 54 /// <param name="scope">The current scope.</param> 55 /// <param name="random">A random number generator.</param> 56 /// <param name="vector">The bit vector to manipulate.</param> 57 /// <returns>The new bit vector that has been manipulated.</returns> 40 58 protected override bool[] Manipulate(IScope scope, IRandom random, bool[] vector) { 41 59 return Apply(random, vector); -
trunk/sources/HeuristicLab.BitVector/HeuristicLabBitVectorPlugin.cs
r582 r1176 26 26 27 27 namespace HeuristicLab.BitVector { 28 /// <summary> 29 /// Plugin class for HeuristicLab.BitVector plugin. 30 /// </summary> 28 31 [ClassInfo(Name = "HeuristicLab.BitVector-3.2")] 29 32 [PluginFile(Filename = "HeuristicLab.BitVector-3.2.dll", Filetype = PluginFileType.Assembly)] -
trunk/sources/HeuristicLab.BitVector/RandomBitVectorGenerator.cs
r77 r1176 26 26 using HeuristicLab.Data; 27 27 28 namespace HeuristicLab.BitVector 29 { 30 public class RandomBitVectorGenerator : OperatorBase 31 { 32 public override string Description 33 { 34 get { return "Operator generating a new random bit vector."; } 35 } 28 namespace HeuristicLab.BitVector { 29 /// <summary> 30 /// Generates a new random bit vector. 31 /// </summary> 32 public class RandomBitVectorGenerator : OperatorBase { 33 /// <inheritdoc select="summary"/> 34 public override string Description { 35 get { return "Operator generating a new random bit vector."; } 36 } 36 37 37 public RandomBitVectorGenerator() 38 { 39 AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In)); 40 AddVariableInfo(new VariableInfo("Length", "Vector length", typeof(IntData), VariableKind.In)); 41 AddVariableInfo(new VariableInfo("BitVector", "Created random bit vector", typeof(BoolArrayData), VariableKind.New)); 42 } 38 /// <summary> 39 /// Initializes a new instance of <see cref="RandomBitVectorGenerator"/> with three variable infos 40 /// (<c>Random</c>, <c>Length</c> and <c>BitVector</c>). 41 /// </summary> 42 public RandomBitVectorGenerator() { 43 AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In)); 44 AddVariableInfo(new VariableInfo("Length", "Vector length", typeof(IntData), VariableKind.In)); 45 AddVariableInfo(new VariableInfo("BitVector", "Created random bit vector", typeof(BoolArrayData), VariableKind.New)); 46 } 43 47 44 public static bool[] Apply(IRandom random, int length) 45 { 46 bool[] result = new bool[length]; 47 for (int i = 0; i < length; i++) 48 result[i] = random.Next() < 0.5; 49 return result; 50 } 48 /// <summary> 49 /// Generates a new random bit vector with the given <paramref name="length"/>. 50 /// </summary> 51 /// <param name="random">The random number generator.</param> 52 /// <param name="length">The length of the bit vector.</param> 53 /// <returns>The newly created bit vector.</returns> 54 public static bool[] Apply(IRandom random, int length) { 55 bool[] result = new bool[length]; 56 for (int i = 0; i < length; i++) 57 result[i] = random.Next() < 0.5; 58 return result; 59 } 51 60 52 public override IOperation Apply(IScope scope) 53 { 54 IRandom random = GetVariableValue<IRandom>("Random", scope, true); 55 int length = GetVariableValue<IntData>("Length", scope, true).Data; 61 /// <summary> 62 /// Generates a new random bit vector and injects it in the given <paramref name="scope"/>. 63 /// </summary> 64 /// <param name="scope">The scope where to get the values from and where to inject the newly 65 /// created bit vector.</param> 66 /// <returns><c>null</c>.</returns> 67 public override IOperation Apply(IScope scope) { 68 IRandom random = GetVariableValue<IRandom>("Random", scope, true); 69 int length = GetVariableValue<IntData>("Length", scope, true).Data; 56 70 57 58 71 bool[] vector = Apply(random, length); 72 scope.AddVariable(new Variable(scope.TranslateName("BitVector"), new BoolArrayData(vector))); 59 73 60 return null; 61 } 74 return null; 62 75 } 76 } 63 77 } -
trunk/sources/HeuristicLab.BitVector/SinglePointCrossover.cs
r2 r1176 26 26 27 27 namespace HeuristicLab.BitVector { 28 /// <summary> 29 /// Single point crossover for bit vectors. 30 /// </summary> 28 31 public class SinglePointCrossover : BitVectorCrossoverBase { 32 /// <inheritdoc select="summary"/> 29 33 public override string Description { 30 34 get { return "Single point crossover for bit vectors."; } 31 35 } 32 36 37 /// <summary> 38 /// Performs a single point crossover at a randomly chosen position of the two 39 /// given parent bit vectors. 40 /// </summary> 41 /// <param name="random">A random number generator.</param> 42 /// <param name="parent1">The first parent for crossover.</param> 43 /// <param name="parent2">The second parent for crossover.</param> 44 /// <returns>The newly created bit vector, resulting from the single point crossover.</returns> 33 45 public static bool[] Apply(IRandom random, bool[] parent1, bool[] parent2) { 34 46 int length = parent1.Length; … … 44 56 } 45 57 58 /// <summary> 59 /// Performs a single point crossover at a randomly chosen position of the two 60 /// given parent bit vectors. 61 /// </summary> 62 /// <param name="scope">The current scope.</param> 63 /// <param name="random">A random number generator.</param> 64 /// <param name="parent1">The first parent for crossover.</param> 65 /// <param name="parent2">The second parent for crossover.</param> 66 /// <returns>The newly created bit vector, resulting from the single point crossover.</returns> 46 67 protected override bool[] Cross(IScope scope, IRandom random, bool[] parent1, bool[] parent2) { 47 68 return Apply(random, parent1, parent2); -
trunk/sources/HeuristicLab.Constraints/AllSubOperatorsTypeConstraint.cs
r764 r1176 29 29 30 30 namespace HeuristicLab.Constraints { 31 /// <summary> 32 /// Constraint where all sub-operators have to be elements of a pre-defined group. 33 /// </summary> 31 34 public class AllSubOperatorsTypeConstraint : ConstraintBase { 32 35 33 36 private SubOperatorTypeConstraint groupConstraint; 37 /// <summary> 38 /// Gets all allowed sub-operators. 39 /// </summary> 34 40 public IList<IOperator> AllowedSubOperators { 35 41 get { … … 38 44 } 39 45 46 /// <inheritdoc select="summary"/> 40 47 public override string Description { 41 48 get { return "All sub-operators have to be elements of a pre-defined group."; } 42 49 } 43 50 51 /// <summary> 52 /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraint"/>. 53 /// </summary> 44 54 public AllSubOperatorsTypeConstraint() 45 55 : base() { … … 47 57 } 48 58 59 /// <summary> 60 /// Adds the given operator to the constraint. 61 /// </summary> 62 /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class 63 /// <see cref="ConstraintBase"/>.</remarks> 64 /// <param name="op">The operator to add.</param> 49 65 public void AddOperator(IOperator op) { 50 66 groupConstraint.AddOperator(op); … … 52 68 } 53 69 70 /// <summary> 71 /// Removes the given operator from the contraint. 72 /// </summary> 73 /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class 74 /// <see cref="ConstraintBase"/>.</remarks> 75 /// <param name="op">The operator to remove.</param> 54 76 public void RemoveOperator(IOperator op) { 55 77 groupConstraint.RemoveOperator(op); … … 57 79 } 58 80 81 /// <summary> 82 /// Checks whether the given element fulfills the current constraint. 83 /// </summary> 84 /// <param name="data">The item to check.</param> 85 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 59 86 public override bool Check(IItem data) { 60 87 IOperator op = data as IOperator; … … 70 97 } 71 98 99 /// <summary> 100 /// Empties the current instance. 101 /// </summary> 72 102 public void Clear() { 73 103 groupConstraint.Clear(); 74 104 } 75 105 106 /// <summary> 107 /// Clones the current instance (deep clone). 108 /// </summary> 109 /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class 110 /// <see cref="Auxiliary"/>.</remarks> 111 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 112 /// <returns>The cloned object as <see cref="AllSubOperatorsTypeConstraint"/>.</returns> 76 113 public override object Clone(IDictionary<Guid, object> clonedObjects) { 77 114 AllSubOperatorsTypeConstraint clone = new AllSubOperatorsTypeConstraint(); … … 81 118 } 82 119 120 /// <summary> 121 /// Creates a new instance of <see cref="AllSubOperatorsTypeConstraintView"/> to represent the current 122 /// instance visually. 123 /// </summary> 124 /// <returns>The created view as <see cref="AllSubOperatorsTypeConstraintView"/>.</returns> 83 125 public override IView CreateView() { 84 126 return new AllSubOperatorsTypeConstraintView(groupConstraint); … … 86 128 87 129 #region persistence 130 /// <summary> 131 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 132 /// </summary> 133 /// <remarks>The sub-operators are saved as a child node with tag name 134 /// <c>SubOperatorsGroupConstraint</c>.</remarks> 135 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 136 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 137 /// <param name="persistedObjects">The dictionary of all already persisted objects. 138 /// (Needed to avoid cycles.)</param> 139 /// <returns>The saved <see cref="XmlNode"/>.</returns> 88 140 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 89 141 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 94 146 } 95 147 148 /// <summary> 149 /// Loads the persisted constraint from the specified <paramref name="node"/>. 150 /// </summary> 151 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 152 /// more information.</remarks> 153 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 154 /// <param name="restoredObjects">The dictionary of all already restored objects. 155 /// (Needed to avoid cycles.)</param> 96 156 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 97 157 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/AllSubOperatorsTypeConstraintView.cs
r436 r1176 30 30 31 31 namespace HeuristicLab.Constraints { 32 /// <summary> 33 /// The visual representation of the <see cref="AllSubOperatorsTypeConstraint"/>. 34 /// </summary> 32 35 public partial class AllSubOperatorsTypeConstraintView : ViewBase { 33 36 private SubOperatorTypeConstraint constraint = new SubOperatorTypeConstraint(); 34 37 38 /// <summary> 39 /// Gets or sets the SubOperatorTypeConstraint to display. 40 /// </summary> 35 41 public SubOperatorTypeConstraint Constraint { 36 42 get { return constraint; } … … 41 47 } 42 48 49 /// <summary> 50 /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraintView"/>. 51 /// </summary> 43 52 public AllSubOperatorsTypeConstraintView() { 44 53 InitializeComponent(); 45 54 } 46 55 56 /// <summary> 57 /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraintView"/> with 58 /// the given <paramref name="constraint"/> to display. 59 /// </summary> 60 /// <param name="constraint">The constraint that should be displayed.</param> 47 61 public AllSubOperatorsTypeConstraintView(SubOperatorTypeConstraint constraint) { 48 62 this.constraint = constraint; -
trunk/sources/HeuristicLab.Constraints/AndConstraint.cs
r764 r1176 28 28 29 29 namespace HeuristicLab.Constraints { 30 /// <summary> 31 /// Constraint where all sub-constraints must be <c>true</c>. 32 /// </summary> 30 33 public class AndConstraint : ConstraintBase, IViewable { 31 34 private ItemList<IConstraint> clauses; 35 /// <summary> 36 /// Gets or sets the sub-constraints. 37 /// </summary> 38 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class 39 /// <see cref="ConstraintBase"/> in the setter.</remarks> 32 40 public ItemList<IConstraint> Clauses { 33 41 get { return clauses; } … … 38 46 } 39 47 48 /// <inheritdoc select="summary"/> 40 49 public override string Description { 41 50 get { … … 44 53 } 45 54 55 /// <summary> 56 /// Initializes a new instance of <see cref="AndConstraint"/>. 57 /// </summary> 46 58 public AndConstraint() { 47 59 clauses = new ItemList<IConstraint>(); 48 60 } 49 61 62 /// <summary> 63 /// Checks whether the given element fulfills the current constraint. 64 /// </summary> 65 /// <param name="data">The item to check.</param> 66 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 50 67 public override bool Check(IItem data) { 51 68 bool result = true; … … 57 74 } 58 75 76 /// <summary> 77 /// Creates a new instance of <see cref="AndConstraintView"/> to represent the current 78 /// instance visually. 79 /// </summary> 80 /// <returns>The created view as <see cref="AndConstraintView"/>.</returns> 59 81 public override IView CreateView() { 60 82 return new AndConstraintView(this); 61 83 } 62 84 85 /// <summary> 86 /// Clones the current instance (deep clone). 87 /// </summary> 88 /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class 89 /// <see cref="Auxiliary"/>.</remarks> 90 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 91 /// <returns>The cloned object as <see cref="AndConstraint"/>.</returns> 63 92 public override object Clone(IDictionary<Guid, object> clonedObjects) { 64 93 AndConstraint clone = new AndConstraint(); … … 69 98 70 99 #region persistence 100 /// <summary> 101 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 102 /// </summary> 103 /// <remarks>The sub-constraints are saved as a child node with tag name 104 /// <c>Clauses</c>.</remarks> 105 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 106 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 107 /// <param name="persistedObjects">The dictionary of all already persisted objects. 108 /// (Needed to avoid cycles.)</param> 109 /// <returns>The saved <see cref="XmlNode"/>.</returns> 71 110 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) { 72 111 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 77 116 } 78 117 118 /// <summary> 119 /// Loads the persisted constraint from the specified <paramref name="node"/>. 120 /// </summary> 121 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 122 /// more information.</remarks> 123 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 124 /// <param name="restoredObjects">The dictionary of all already restored objects. 125 /// (Needed to avoid cycles.)</param> 79 126 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 80 127 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/AndConstraintView.cs
r2 r1176 31 31 32 32 namespace HeuristicLab.Constraints { 33 /// <summary> 34 /// The visual representation of an <see cref="AndConstraint"/>. 35 /// </summary> 33 36 public partial class AndConstraintView : ViewBase { 37 /// <summary> 38 /// Gets or sets the AndConstraint to represent visually. 39 /// </summary> 40 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.</remarks> 41 /// No own data storage present. 34 42 public AndConstraint AndConstraint { 35 43 get { return (AndConstraint)Item; } … … 37 45 } 38 46 47 /// <summary> 48 /// Initializes a new instance of <see cref="AndConstraintView"/>. 49 /// </summary> 39 50 public AndConstraintView() { 40 51 InitializeComponent(); 41 52 } 53 /// <summary> 54 /// Initializes a new instance of <see cref="AndConstraintView"/> with the given 55 /// <paramref name="andConstraint"/> to display. 56 /// </summary> 57 /// <param name="andConstraint">The constraint to represent visually.</param> 42 58 public AndConstraintView(AndConstraint andConstraint) 43 59 : this() { … … 45 61 } 46 62 63 /// <summary> 64 /// Removes the eventhandler from the underlying <see cref="AndConstraint"/>. 65 /// </summary> 66 /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>. 67 /// </remarks> 47 68 protected override void RemoveItemEvents() { 48 69 AndConstraint.Changed -= new EventHandler(AndConstraint_Changed); 49 70 base.RemoveItemEvents(); 50 71 } 72 /// <summary> 73 /// Adds an eventhandler to the underlying <see cref="AndConstraint"/>. 74 /// </summary> 75 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 76 /// </remarks> 51 77 protected override void AddItemEvents() { 52 78 base.AddItemEvents(); … … 54 80 } 55 81 82 /// <summary> 83 /// Updates all controls with the latest values. 84 /// </summary> 56 85 protected override void UpdateControls() { 57 86 if (AndConstraint == null) { -
trunk/sources/HeuristicLab.Constraints/ConstraintBase.cs
r764 r1176 27 27 28 28 namespace HeuristicLab.Constraints { 29 /// <summary> 30 /// Base class for all constraints. 31 /// </summary> 29 32 public abstract class ConstraintBase : ItemBase, IConstraint { 33 /// <inheritdoc select="summary"/> 30 34 public virtual string Description { 31 35 get { return "No constraint description available."; } 32 36 } 33 37 38 /// <summary> 39 /// Checks whether the given data fulfills the current constraint. 40 /// </summary> 41 /// <param name="data">The item to check.</param> 42 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 34 43 public abstract bool Check(IItem data); 35 44 } -
trunk/sources/HeuristicLab.Constraints/DoubleBoundedConstraint.cs
r764 r1176 29 29 30 30 namespace HeuristicLab.Constraints { 31 /// <summary> 32 /// Constraint where a double value is limited by a one or two sided boundary. 33 /// </summary> 31 34 public class DoubleBoundedConstraint : ConstraintBase { 32 35 private double lowerBound; 36 /// <summary> 37 /// Gets or sets the lower bound of the limit. 38 /// </summary> 39 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 40 /// in the setter.</remarks> 33 41 public double LowerBound { 34 42 get { return lowerBound; } … … 39 47 } 40 48 private bool lowerBoundIncluded; 49 /// <summary> 50 /// Gets or sets the boolean flag whether the lower bound should be included. 51 /// </summary> 52 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 53 /// in the setter.</remarks> 41 54 public bool LowerBoundIncluded { 42 55 get { return lowerBoundIncluded; } … … 47 60 } 48 61 private bool lowerBoundEnabled; 62 /// <summary> 63 /// Gets or sets the boolean flag whether the lower bound should be enabled. 64 /// </summary> 65 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 66 /// in the setter.</remarks> 49 67 public bool LowerBoundEnabled { 50 68 get { return lowerBoundEnabled; } … … 55 73 } 56 74 private double upperBound; 75 /// <summary> 76 /// Gets or sets the upper bound of the limit. 77 /// </summary> 78 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 79 /// in the setter.</remarks> 57 80 public double UpperBound { 58 81 get { return upperBound; } … … 63 86 } 64 87 private bool upperBoundIncluded; 88 /// <summary> 89 /// Gets or sets the boolean flag whether the upper bound should be included. 90 /// </summary> 91 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 92 /// in the setter.</remarks> 65 93 public bool UpperBoundIncluded { 66 94 get { return upperBoundIncluded; } … … 71 99 } 72 100 private bool upperBoundEnabled; 101 /// <summary> 102 /// Gets or sets the boolean flag whether the upper bound should be enabled. 103 /// </summary> 104 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 105 /// in the setter.</remarks> 73 106 public bool UpperBoundEnabled { 74 107 get { return upperBoundEnabled; } … … 79 112 } 80 113 114 /// <inheritdoc select="summary"/> 81 115 public override string Description { 82 116 get { return "The double is limited one or two sided by a lower and/or upper boundary"; } 83 117 } 84 118 119 /// <summary> 120 /// Initializes a new instance of <see cref="DoubleBoundedConstraint"/>. 121 /// </summary> 85 122 public DoubleBoundedConstraint() 86 123 : this(double.MinValue, double.MaxValue) { 87 124 } 88 125 126 /// <summary> 127 /// Initializes a new instance of <see cref="DoubleBoundedConstraint"/> with the two given boundaries. 128 /// </summary> 129 /// <param name="lowerBound">The lower bound of the constraint.</param> 130 /// <param name="upperBound">The upper bound of the constraint.</param> 89 131 public DoubleBoundedConstraint(double lowerBound, double upperBound) 90 132 : this(lowerBound, true, upperBound, true) { 91 133 } 92 134 135 /// <summary> 136 /// Initializes a new instance of <see cref="DoubleBoundedConstraint"/> with the given parameters. 137 /// </summary> 138 /// <param name="lowerBound">The lower bound of the constraint.</param> 139 /// <param name="lowerBoundIncluded">Boolean flag whether the lower bound should be included.</param> 140 /// <param name="upperBound">The upper bound of the constraint.</param> 141 /// <param name="upperBoundIncluded">Boolean flag whether the upper bound should be included.</param> 93 142 public DoubleBoundedConstraint(double lowerBound, bool lowerBoundIncluded, double upperBound, bool upperBoundIncluded) 94 143 : base() { … … 102 151 103 152 153 /// <summary> 154 /// Checks whether the given element fulfills the current constraint. 155 /// </summary> 156 /// <param name="data">The item to check.</param> 157 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 104 158 public override bool Check(IItem data) { 105 159 ConstrainedDoubleData d = (data as ConstrainedDoubleData); … … 112 166 } 113 167 168 /// <summary> 169 /// Creates a new instance of <see cref="DoubleBoundedConstraintView"/> to represent the current 170 /// instance visually. 171 /// </summary> 172 /// <returns>The created view as <see cref="DoubleBoundedConstraintView"/>.</returns> 114 173 public override IView CreateView() { 115 174 return new DoubleBoundedConstraintView(this); 116 175 } 117 176 177 /// <summary> 178 /// Clones the current instance (deep clone). 179 /// </summary> 180 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 181 /// <returns>The cloned object as <see cref="DoubleBoundedConstraint"/>.</returns> 118 182 public override object Clone(IDictionary<Guid, object> clonedObjects) { 119 183 DoubleBoundedConstraint clone = new DoubleBoundedConstraint(); … … 129 193 130 194 #region persistence 195 /// <summary> 196 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 197 /// </summary> 198 /// <remarks>The properties of the current instance are saved as attributes with special tag names.</remarks> 199 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 200 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 201 /// <param name="persistedObjects">The dictionary of all already persisted objects. 202 /// (Needed to avoid cycles.)</param> 203 /// <returns>The saved <see cref="XmlNode"/>.</returns> 131 204 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 132 205 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 152 225 } 153 226 227 /// <summary> 228 /// Loads the persisted constraint from the specified <paramref name="node"/>. 229 /// </summary> 230 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 231 /// more information.</remarks> 232 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 233 /// <param name="restoredObjects">The dictionary of all already restored objects. 234 /// (Needed to avoid cycles.)</param> 154 235 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 155 236 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/DoubleBoundedConstraintView.cs
r344 r1176 31 31 32 32 namespace HeuristicLab.Constraints { 33 /// <summary> 34 /// The visual representation of a <see cref="DoubleBoundedConstraint"/>. 35 /// </summary> 33 36 public partial class DoubleBoundedConstraintView : ViewBase { 37 /// <summary> 38 /// Gets or sets the DoubleBoundedConstraint to represent visually. 39 /// </summary> 40 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>. 41 /// No own data storage present.</remarks> 34 42 public DoubleBoundedConstraint DoubleBoundedConstraint { 35 43 get { return (DoubleBoundedConstraint)Item; } … … 37 45 } 38 46 47 /// <summary> 48 /// Initializes a new instance of <see cref="DoubleBoundedConstraintView"/>. 49 /// </summary> 39 50 public DoubleBoundedConstraintView() { 40 51 InitializeComponent(); 41 52 } 42 53 54 /// <summary> 55 /// Initializes a new instance of <see cref="DoubleBoundedConstraintView"/> with the given 56 /// <paramref name="doubleBoundedConstraint"/> to display. 57 /// </summary> 58 /// <param name="doubleBoundedConstraint">The constraint to represent visually.</param> 43 59 public DoubleBoundedConstraintView(DoubleBoundedConstraint doubleBoundedConstraint) 44 60 : this() { … … 46 62 } 47 63 64 /// <summary> 65 /// Removes the eventhandler from the underlying <see cref="DoubleBoundedConstraint"/>. 66 /// </summary> 67 /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>. 68 /// </remarks> 48 69 protected override void RemoveItemEvents() { 49 70 DoubleBoundedConstraint.Changed -= new EventHandler(DoubleBoundedConstraint_Changed); … … 51 72 } 52 73 74 /// <summary> 75 /// Adds an eventhandler to the underlying <see cref="DoubleBoundedConstraint"/>. 76 /// </summary> 77 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 78 /// </remarks> 53 79 protected override void AddItemEvents() { 54 80 base.AddItemEvents(); … … 56 82 } 57 83 84 /// <summary> 85 /// Updates all controls with the latest values. 86 /// </summary> 87 /// <remarks>Calls <see cref="ViewBase.UpdateControls"/> of base class <see cref="ViewBase"/>.</remarks> 58 88 protected override void UpdateControls() { 59 89 base.UpdateControls(); -
trunk/sources/HeuristicLab.Constraints/HeuristicLabConstraintsPlugin.cs
r582 r1176 26 26 27 27 namespace HeuristicLab.Constraints { 28 /// <summary> 29 /// Plugin class for HeuristicLab.Constraints plugin. 30 /// </summary> 28 31 [ClassInfo(Name = "HeuristicLab.Constraints-3.2")] 29 32 [PluginFile(Filename = "HeuristicLab.Constraints-3.2.dll", Filetype = PluginFileType.Assembly)] -
trunk/sources/HeuristicLab.Constraints/IntBoundedConstraint.cs
r764 r1176 28 28 29 29 namespace HeuristicLab.Constraints { 30 /// <summary> 31 /// Constraint where an integer value is limited by a one or two sided boundary. 32 /// </summary> 30 33 public class IntBoundedConstraint : ConstraintBase { 31 34 private int lowerBound; 35 /// <summary> 36 /// Gets or sets the lower bound of the limit. 37 /// </summary> 38 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 39 /// in the setter.</remarks> 32 40 public int LowerBound { 33 41 get { return lowerBound; } … … 38 46 } 39 47 private bool lowerBoundIncluded; 48 /// <summary> 49 /// Gets or sets the boolean flag whether the lower bound should be included. 50 /// </summary> 51 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 52 /// in the setter.</remarks> 40 53 public bool LowerBoundIncluded { 41 54 get { return lowerBoundIncluded; } … … 46 59 } 47 60 private bool lowerBoundEnabled; 61 /// <summary> 62 /// Gets or sets the boolean flag whether the lower bound should be enabled. 63 /// </summary> 64 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 65 /// in the setter.</remarks> 48 66 public bool LowerBoundEnabled { 49 67 get { return lowerBoundEnabled; } … … 54 72 } 55 73 private int upperBound; 74 /// <summary> 75 /// Gets or sets the upper bound of the limit. 76 /// </summary> 77 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 78 /// in the setter.</remarks> 56 79 public int UpperBound { 57 80 get { return upperBound; } … … 62 85 } 63 86 private bool upperBoundIncluded; 87 /// <summary> 88 /// Gets or sets the boolean flag whether the upper bound should be included. 89 /// </summary> 90 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 91 /// in the setter.</remarks> 64 92 public bool UpperBoundIncluded { 65 93 get { return upperBoundIncluded; } … … 70 98 } 71 99 private bool upperBoundEnabled; 100 /// <summary> 101 /// Gets or sets the boolean flag whether the upper bound should be enabled. 102 /// </summary> 103 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 104 /// in the setter.</remarks> 72 105 public bool UpperBoundEnabled { 73 106 get { return upperBoundEnabled; } … … 78 111 } 79 112 113 /// <inheritdoc select="summary"/> 80 114 public override string Description { 81 115 get { return "The integer is limited one or two sided by a lower and/or upper boundary"; } 82 116 } 83 117 118 /// <summary> 119 /// Initializes a new instance of <see cref="IntBoundedConstraint"/>. 120 /// </summary> 84 121 public IntBoundedConstraint() 85 122 : this(int.MinValue, int.MaxValue) { 86 123 } 87 124 125 /// <summary> 126 /// Initializes a new instance of <see cref="IntBoundedConstraint"/> with the two given boundaries. 127 /// </summary> 128 /// <param name="low">The lower bound of the constraint.</param> 129 /// <param name="high">The upper bound of the constraint.</param> 88 130 public IntBoundedConstraint(int low, int high) : base() { 89 131 lowerBound = low; … … 95 137 } 96 138 139 /// <summary> 140 /// Checks whether the given element fulfills the current constraint. 141 /// </summary> 142 /// <param name="data">The item to check.</param> 143 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 97 144 public override bool Check(IItem data) { 98 145 ConstrainedIntData d = (data as ConstrainedIntData); … … 105 152 } 106 153 154 /// <summary> 155 /// Creates a new instance of <see cref="IntBoundedConstraintView"/> to represent the current 156 /// instance visually. 157 /// </summary> 158 /// <returns>The created view as <see cref="IntBoundedConstraintView"/>.</returns> 107 159 public override IView CreateView() { 108 160 return new IntBoundedConstraintView(this); 109 161 } 110 162 163 /// <summary> 164 /// Clones the current instance (deep clone). 165 /// </summary> 166 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 167 /// <returns>The cloned object as <see cref="IntBoundedConstraint"/>.</returns> 111 168 public override object Clone(IDictionary<Guid, object> clonedObjects) { 112 169 IntBoundedConstraint clone = new IntBoundedConstraint(); … … 122 179 123 180 #region persistence 181 /// <summary> 182 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 183 /// </summary> 184 /// <remarks>The properties of the current instance are saved as attributes with special tag names.</remarks> 185 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 186 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 187 /// <param name="persistedObjects">The dictionary of all already persisted objects. 188 /// (Needed to avoid cycles.)</param> 189 /// <returns>The saved <see cref="XmlNode"/>.</returns> 124 190 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 125 191 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 145 211 } 146 212 213 /// <summary> 214 /// Loads the persisted constraint from the specified <paramref name="node"/>. 215 /// </summary> 216 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 217 /// more information.</remarks> 218 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 219 /// <param name="restoredObjects">The dictionary of all already restored objects. 220 /// (Needed to avoid cycles.)</param> 147 221 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 148 222 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/IntBoundedConstraintView.cs
r2 r1176 31 31 32 32 namespace HeuristicLab.Constraints { 33 /// <summary> 34 /// The visual representation of an <see cref="IntBoundedConstraint"/>. 35 /// </summary> 33 36 public partial class IntBoundedConstraintView : ViewBase { 37 /// <summary> 38 /// Gets or sets the the IntBoundedConstraint to represent visually. 39 /// </summary> 40 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>. 41 /// No own data storage present.</remarks> 34 42 public IntBoundedConstraint IntBoundedConstraint { 35 43 get { return (IntBoundedConstraint)Item; } … … 37 45 } 38 46 47 /// <summary> 48 /// Initializes a new instance of <see cref="IntBoundedConstraintView"/>. 49 /// </summary> 39 50 public IntBoundedConstraintView() { 40 51 InitializeComponent(); 41 52 } 42 53 54 /// <summary> 55 /// Initializes a new instance of <see cref="IntBoundedConstraintView"/> with the given 56 /// <paramref name="intBoundedConstraint"/> to display. 57 /// </summary> 58 /// <param name="intBoundedConstraint">The constraint to represent visually.</param> 43 59 public IntBoundedConstraintView(IntBoundedConstraint intBoundedConstraint) 44 60 : this() { … … 46 62 } 47 63 64 /// <summary> 65 /// Removes the eventhandler from the underlying <see cref="IntBoundedConstraint"/>. 66 /// </summary> 67 /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>. 68 /// </remarks> 48 69 protected override void RemoveItemEvents() { 49 70 IntBoundedConstraint.Changed -= new EventHandler(IntBoundedConstraint_Changed); … … 51 72 } 52 73 74 /// <summary> 75 /// Adds an eventhandler to the underlying <see cref="IntBoundedConstraint"/>. 76 /// </summary> 77 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 78 /// </remarks> 53 79 protected override void AddItemEvents() { 54 80 base.AddItemEvents(); … … 56 82 } 57 83 84 /// <summary> 85 /// Updates all controls with the latest values. 86 /// </summary> 87 /// <remarks>Calls <see cref="ViewBase.UpdateControls"/> of base class <see cref="ViewBase"/>.</remarks> 58 88 protected override void UpdateControls() { 59 89 base.UpdateControls(); -
trunk/sources/HeuristicLab.Constraints/IsIntegerConstraint.cs
r764 r1176 27 27 28 28 namespace HeuristicLab.Constraints { 29 /// <summary> 30 /// Constraint that allows only integer values. 31 /// </summary> 29 32 public class IsIntegerConstraint : ConstraintBase{ 33 /// <inheritdoc select="summary"/> 30 34 public override string Description { 31 35 get { return "Allows only integer values."; } 32 36 } 33 37 38 /// <summary> 39 /// Checks whether the given element fulfills the current constraint. 40 /// </summary> 41 /// <param name="item">The item to check.</param> 42 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 34 43 public override bool Check(IItem item) { 35 44 // ConstrainedIntData is always integer => just return true -
trunk/sources/HeuristicLab.Constraints/ItemTypeConstraint.cs
r764 r1176 28 28 29 29 namespace HeuristicLab.Constraints { 30 /// <summary> 31 /// Constraint that limits the type of a given item. 32 /// </summary> 33 /// <remarks>If the item is a <see cref="ConstrainedItemList"/>, any containing elements are limited to 34 /// the type and not the <see cref="ConstrainedItemList"/> itself.</remarks> 30 35 public class ItemTypeConstraint : ConstraintBase { 31 36 private Type type; 37 /// <summary> 38 /// Gets or sets the type to which the items should be limited. 39 /// </summary> 40 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class <see cref="ConstraintBase"/> 41 /// in the setter.</remarks> 32 42 public Type Type { 33 43 get { return type; } … … 38 48 } 39 49 50 /// <inheritdoc select="summary"/> 40 51 public override string Description { 41 52 get { … … 45 56 } 46 57 58 /// <summary> 59 /// Initializes a new instance of <see cref="ItemTypeConstraint"/> with the <c>Type</c> property 60 /// set to <see cref="ItemBase"/> as default. 61 /// </summary> 47 62 public ItemTypeConstraint() { 48 63 type = typeof(ItemBase); 49 64 } 50 65 66 /// <summary> 67 /// Initializes a new instance of <see cref="ItemTypeConstraint"/> with the given <paramref name="type"/>. 68 /// </summary> 69 /// <param name="type">The type the items should be limited to.</param> 51 70 public ItemTypeConstraint(Type type) { 52 71 this.type = type; 53 72 } 54 73 74 /// <summary> 75 /// Checks whether the given element fulfills the current constraint. 76 /// </summary> 77 /// <param name="data">The item to check.</param> 78 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 55 79 public override bool Check(IItem data) { 56 80 ConstrainedItemList list = (data as ConstrainedItemList); … … 63 87 } 64 88 89 /// <summary> 90 /// Creates a new instance of <see cref="ItemTypeConstraintView"/> to represent the current 91 /// instance visually. 92 /// </summary> 93 /// <returns>The created view as <see cref="ItemTypeConstraintView"/>.</returns> 65 94 public override IView CreateView() { 66 95 return new ItemTypeConstraintView(this); … … 68 97 69 98 #region clone & persistence 99 /// <summary> 100 /// Clones the current instance (deep clone). 101 /// </summary> 102 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 103 /// <returns>The cloned object as <see cref="ItemTypeConstraint"/>.</returns> 70 104 public override object Clone(IDictionary<Guid, object> clonedObjects) { 71 105 ItemTypeConstraint clone = new ItemTypeConstraint(type); … … 74 108 } 75 109 110 /// <summary> 111 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 112 /// </summary> 113 /// <remarks>The type of the current instance is saved as attribute with tag name <c>ItemType</c>.</remarks> 114 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 115 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 116 /// <param name="persistedObjects">The dictionary of all already persisted objects. 117 /// (Needed to avoid cycles.)</param> 118 /// <returns>The saved <see cref="XmlNode"/>.</returns> 76 119 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 77 120 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 82 125 } 83 126 127 /// <summary> 128 /// Loads the persisted constraint from the specified <paramref name="node"/>. 129 /// </summary> 130 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 131 /// more information.</remarks> 132 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 133 /// <param name="restoredObjects">The dictionary of all already restored objects. 134 /// (Needed to avoid cycles.)</param> 84 135 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 85 136 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/ItemTypeConstraintView.cs
r2 r1176 31 31 32 32 namespace HeuristicLab.Constraints { 33 /// <summary> 34 /// The visual representation of an <see cref="ItemTypeConstraint"/>. 35 /// </summary> 33 36 public partial class ItemTypeConstraintView : ViewBase { 37 /// <summary> 38 /// Gets or sets the ItemTypeConstraint to represent visually. 39 /// </summary> 40 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>. 41 /// No own data storage present.</remarks> 34 42 private ItemTypeConstraint ItemTypeConstraint { 35 43 get { return (ItemTypeConstraint)base.Item; } … … 37 45 } 38 46 47 /// <summary> 48 /// Initializes a new instance of <see cref="ItemTypeConstraintView"/>. 49 /// </summary> 39 50 public ItemTypeConstraintView() { 40 51 InitializeComponent(); … … 42 53 } 43 54 55 /// <summary> 56 /// Initializes a new instance of <see cref="ItemTypeConstraintView"/> with the given 57 /// <paramref name="itemTypeConstraint"/> to display. 58 /// </summary> 59 /// <param name="itemTypeConstraint">The constraint to represent visually.</param> 44 60 public ItemTypeConstraintView(ItemTypeConstraint itemTypeConstraint) 45 61 : this() { … … 47 63 } 48 64 65 /// <summary> 66 /// Removes the eventhandler from the underlying <see cref="ItemTypeConstraint"/>. 67 /// </summary> 68 /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>. 69 /// </remarks> 49 70 protected override void RemoveItemEvents() { 50 71 ItemTypeConstraint.Changed -= new EventHandler(ItemTypeConstraint_Changed); … … 52 73 } 53 74 75 /// <summary> 76 /// Adds an eventhandler to the underlying <see cref="ItemTypeConstraint"/>. 77 /// </summary> 78 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 79 /// </remarks> 54 80 protected override void AddItemEvents() { 55 81 base.AddItemEvents(); … … 61 87 } 62 88 89 /// <summary> 90 /// Updates all controls with the latest values. 91 /// </summary> 92 /// <remarks>Calls <see cref="ViewBase.UpdateControls"/> of base class <see cref="ViewBase"/>.</remarks> 63 93 protected override void UpdateControls() { 64 94 base.UpdateControls(); -
trunk/sources/HeuristicLab.Constraints/NotConstraint.cs
r893 r1176 28 28 29 29 namespace HeuristicLab.Constraints { 30 /// <summary> 31 /// Constraint where its sub-constraint must be false to be true. 32 /// </summary> 30 33 public class NotConstraint : ConstraintBase { 31 34 private ConstraintBase subConstraint; 35 /// <summary> 36 /// Gets or sets the sub-constraint. 37 /// </summary> 38 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class 39 /// <see cref="ConstraintBase"/> in the setter.</remarks> 32 40 public ConstraintBase SubConstraint { 33 41 get { return subConstraint; } … … 37 45 } 38 46 } 47 /// <inheritdoc select="summary"/> 39 48 public override string Description { 40 49 get { … … 42 51 } 43 52 } 53 /// <summary> 54 /// Initializes a new instance of <see cref="NotConstraint"/>. 55 /// </summary> 44 56 public NotConstraint() 45 57 : base() { 46 58 } 47 59 60 /// <summary> 61 /// Checks whether the given element fulfills the current constraint. 62 /// </summary> 63 /// <param name="data">The item to check.</param> 64 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 48 65 public override bool Check(IItem data) { 49 66 return (subConstraint == null) || (!subConstraint.Check(data)); 50 67 } 51 68 69 /// <summary> 70 /// Creates a new instance of <see cref="NotConstraintView"/> to represent the current 71 /// instance visually. 72 /// </summary> 73 /// <returns>The created view as <see cref="NotConstraintView"/>.</returns> 52 74 public override IView CreateView() { 53 75 return new NotConstraintView(this); 54 76 } 55 77 78 /// <summary> 79 /// Clones the current instance (deep clone). 80 /// </summary> 81 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 82 /// <returns>The cloned object as <see cref="NotConstraint"/>.</returns> 56 83 public override object Clone(IDictionary<Guid, object> clonedObjects) { 57 84 NotConstraint clone = new NotConstraint(); … … 63 90 64 91 #region persistence 92 /// <summary> 93 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 94 /// </summary> 95 /// <remarks>The sub-constraint is saved as a child node with tag name 96 /// <c>SubConstraint</c>.</remarks> 97 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 98 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 99 /// <param name="persistedObjects">The dictionary of all already persisted objects. 100 /// (Needed to avoid cycles.)</param> 101 /// <returns>The saved <see cref="XmlNode"/>.</returns> 65 102 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 66 103 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 72 109 } 73 110 111 /// <summary> 112 /// Loads the persisted constraint from the specified <paramref name="node"/>. 113 /// </summary> 114 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 115 /// more information.</remarks> 116 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 117 /// <param name="restoredObjects">The dictionary of all already restored objects. 118 /// (Needed to avoid cycles.)</param> 74 119 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 75 120 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/NotConstraintView.cs
r893 r1176 32 32 33 33 namespace HeuristicLab.Constraints { 34 /// <summary> 35 /// Visual representation of a <see cref="NotConstraint"/>. 36 /// </summary> 34 37 public partial class NotConstraintView : ViewBase { 35 38 private Type[] itemTypes; 36 39 40 /// <summary> 41 /// Gets or sets the NotConstraint to represent visually. 42 /// </summary> 43 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>. 44 /// No own data storage present.<br/> 45 /// Calls <see cref="ViewBase.Refresh"/> in the setter.</remarks> 37 46 public NotConstraint NotConstraint { 38 47 get { return (NotConstraint)Item; } … … 44 53 } 45 54 55 /// <summary> 56 /// Initializes a new instance of <see cref="NotConstraintView"/>. 57 /// </summary> 46 58 public NotConstraintView() { 47 59 InitializeComponent(); … … 55 67 } 56 68 69 /// <summary> 70 /// Initializes a new instance of <see cref="NotConstraintView"/> with the given 71 /// <paramref name="notConstraint"/> to display. 72 /// </summary> 73 /// <remarks>Calls <see cref="ViewBase.Refresh"/> in the setter.</remarks> 74 /// <param name="notConstraint">The constraint to represent visually.</param> 57 75 public NotConstraintView(NotConstraint notConstraint) 58 76 : this() { … … 62 80 } 63 81 82 /// <summary> 83 /// Removes the eventhandler from the underlying <see cref="NotConstraint"/>. 84 /// </summary> 85 /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>. 86 /// </remarks> 64 87 protected override void RemoveItemEvents() { 65 88 NotConstraint.Changed -= new EventHandler(NotConstraint_Changed); 66 89 base.RemoveItemEvents(); 67 90 } 91 /// <summary> 92 /// Adds an eventhandler to the underlying <see cref="NotConstraint"/>. 93 /// </summary> 94 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 95 /// </remarks> 68 96 protected override void AddItemEvents() { 69 97 base.AddItemEvents(); … … 71 99 } 72 100 101 /// <summary> 102 /// Updates all controls with the latest values. 103 /// </summary> 104 /// <remarks>Calls <see cref="ViewBase.UpdateControls"/> of base class <see cref="ViewBase"/>.</remarks> 73 105 protected override void UpdateControls() { 74 106 base.UpdateControls(); -
trunk/sources/HeuristicLab.Constraints/NumberOfSubOperatorsConstraint.cs
r764 r1176 29 29 30 30 namespace HeuristicLab.Constraints { 31 /// <summary> 32 /// Constraint where the number of sub-operators must be within a specific range. 33 /// </summary> 31 34 public class NumberOfSubOperatorsConstraint : ConstraintBase { 32 35 private IntData minOperators; 33 36 private IntData maxOperators; 34 37 38 /// <summary> 39 /// Gets the maximum number of sub-operators. 40 /// </summary> 35 41 public IntData MaxOperators { 36 42 get { return maxOperators; } 37 43 } 38 44 45 /// <summary> 46 /// Gets the minimum number of sub-operators. 47 /// </summary> 39 48 public IntData MinOperators { 40 49 get { return minOperators; } 41 50 } 42 51 52 /// <inheritdoc select="summary"/> 43 53 public override string Description { 44 54 get { return "Number of sub-operators has to be between " + MinOperators.ToString() + " and " + MaxOperators.ToString() + "."; } 45 55 } 46 56 57 /// <summary> 58 /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraint"/>. 59 /// </summary> 47 60 public NumberOfSubOperatorsConstraint() 48 61 : this(0,0) { 49 62 } 50 63 64 /// <summary> 65 /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraint"/> with the minimum and 66 /// the maximum number of sub-operators. 67 /// </summary> 68 /// <param name="min">The minimum number of sub-operators.</param> 69 /// <param name="max">The maximum number of sub-operators.</param> 51 70 public NumberOfSubOperatorsConstraint(int min, int max) : base() { 52 71 minOperators = new IntData(min); … … 54 73 } 55 74 75 /// <summary> 76 /// Checks whether the given element fulfills the current constraint. 77 /// </summary> 78 /// <param name="data">The item to check.</param> 79 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 56 80 public override bool Check(IItem data) { 57 81 IOperator op = data as IOperator; … … 61 85 } 62 86 87 /// <summary> 88 /// Clones the current instance (deep clone). 89 /// </summary> 90 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 91 /// <returns>The cloned object as <see cref="AndConstraint"/>.</returns> 63 92 public override object Clone(IDictionary<Guid, object> clonedObjects) { 64 93 NumberOfSubOperatorsConstraint clone = new NumberOfSubOperatorsConstraint(); … … 69 98 } 70 99 100 /// <summary> 101 /// Creates a new instance of <see cref="NumberOfSubOperatorsConstraintView"/> to represent the current 102 /// instance visually. 103 /// </summary> 104 /// <returns>The created view as <see cref="NumberOfSubOperatorsConstraintView"/>.</returns> 71 105 public override IView CreateView() { 72 106 return new NumberOfSubOperatorsConstraintView(this); … … 74 108 75 109 #region persistence 110 /// <summary> 111 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 112 /// </summary> 113 /// <remarks>The minimum and the maximum number of sub-operators are saved as child nodes with tag 114 /// names <c>min</c> and <c>max</c>.</remarks> 115 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 116 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 117 /// <param name="persistedObjects">The dictionary of all already persisted objects. 118 /// (Needed to avoid cycles.)</param> 119 /// <returns>The saved <see cref="XmlNode"/>.</returns> 76 120 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) { 77 121 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 83 127 } 84 128 129 /// <summary> 130 /// Loads the persisted constraint from the specified <paramref name="node"/>. 131 /// </summary> 132 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 133 /// more information.</remarks> 134 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 135 /// <param name="restoredObjects">The dictionary of all already restored objects. 136 /// (Needed to avoid cycles.)</param> 85 137 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 86 138 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/NumberOfSubOperatorsConstraintView.cs
r2 r1176 30 30 31 31 namespace HeuristicLab.Constraints { 32 /// <summary> 33 /// Visual representation of a <see cref="NumberOfSubOperatorsConstraint"/>. 34 /// </summary> 32 35 public partial class NumberOfSubOperatorsConstraintView : ViewBase { 33 36 private NumberOfSubOperatorsConstraint constraint; 34 37 38 /// <summary> 39 /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraintView"/>. 40 /// </summary> 35 41 public NumberOfSubOperatorsConstraintView() { 36 42 InitializeComponent(); 37 43 } 38 44 45 /// <summary> 46 /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraintView"/> 47 /// with the given <paramref name="constraint"/> to display. 48 /// </summary> 49 /// <param name="constraint">The constraint to represent visually.</param> 39 50 public NumberOfSubOperatorsConstraintView(NumberOfSubOperatorsConstraint constraint) { 40 51 InitializeComponent(); -
trunk/sources/HeuristicLab.Constraints/OrConstraint.cs
r764 r1176 28 28 29 29 namespace HeuristicLab.Constraints { 30 /// <summary> 31 /// Constraint where at least one sub-constraint must be true. 32 /// </summary> 30 33 public class OrConstraint : ConstraintBase, IViewable { 31 34 private ItemList<IConstraint> clauses; 35 /// <summary> 36 /// Gets or sets the sub-constraints. 37 /// </summary> 38 /// <remarks>Calls <see cref="ItemBase.OnChanged"/> of base class 39 /// <see cref="ConstraintBase"/> in the setter.</remarks> 32 40 public ItemList<IConstraint> Clauses { 33 41 get { return clauses; } … … 38 46 } 39 47 48 /// <inheritdoc select="summary"/> 40 49 public override string Description { 41 50 get { … … 44 53 } 45 54 55 /// <summary> 56 /// Initializes a new instance of <see cref="OrConstraint"/>. 57 /// </summary> 46 58 public OrConstraint() { 47 59 clauses = new ItemList<IConstraint>(); 48 60 } 49 61 62 /// <summary> 63 /// Checks whether the given element fulfills the current constraint. 64 /// </summary> 65 /// <param name="data">The item to check.</param> 66 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 50 67 public override bool Check(IItem data) { 51 68 bool result = false; … … 57 74 } 58 75 76 /// <summary> 77 /// Creates a new instance of <see cref="OrConstraintView"/> to represent the current 78 /// instance visually. 79 /// </summary> 80 /// <returns>The created view as <see cref="OrConstraintView"/>.</returns> 59 81 public override IView CreateView() { 60 82 return new OrConstraintView(this); 61 83 } 62 84 85 /// <summary> 86 /// Clones the current instance (deep clone). 87 /// </summary> 88 /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class 89 /// <see cref="Auxiliary"/>.</remarks> 90 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 91 /// <returns>The cloned object as <see cref="OrConstraint"/>.</returns> 63 92 public override object Clone(IDictionary<Guid, object> clonedObjects) { 64 93 OrConstraint clone = new OrConstraint(); … … 69 98 70 99 #region persistence 100 /// <summary> 101 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 102 /// </summary> 103 /// <remarks>The sub-constraints are saved as a child node with tag name 104 /// <c>Clauses</c>.</remarks> 105 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 106 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 107 /// <param name="persistedObjects">The dictionary of all already persisted objects. 108 /// (Needed to avoid cycles.)</param> 109 /// <returns>The saved <see cref="XmlNode"/>.</returns> 71 110 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) { 72 111 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 77 116 } 78 117 118 /// <summary> 119 /// Loads the persisted constraint from the specified <paramref name="node"/>. 120 /// </summary> 121 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 122 /// more information.</remarks> 123 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 124 /// <param name="restoredObjects">The dictionary of all already restored objects. 125 /// (Needed to avoid cycles.)</param> 79 126 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 80 127 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/OrConstraintView.cs
r2 r1176 31 31 32 32 namespace HeuristicLab.Constraints { 33 /// <summary> 34 /// Visual representation of an <see cref="OrConstraint"/>. 35 /// </summary> 33 36 public partial class OrConstraintView : ViewBase { 34 37 private OrConstraint OrConstraint { … … 37 40 } 38 41 42 /// <summary> 43 /// Initializes a new instance of <see cref="OrConstraintView"/>. 44 /// </summary> 39 45 public OrConstraintView() { 40 46 InitializeComponent(); 41 47 } 48 /// <summary> 49 /// Initializes a new instance of <see cref="OrConstraintView"/> with the given 50 /// <paramref name="orConstraint"/> to display. 51 /// </summary> 52 /// <param name="orConstraint">The constraint to represent visually.</param> 42 53 public OrConstraintView(OrConstraint orConstraint) 43 54 : this() { … … 45 56 } 46 57 58 /// <summary> 59 /// Removes the eventhandler from the underlying <see cref="OrConstraint"/>. 60 /// </summary> 61 /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>. 62 /// </remarks> 47 63 protected override void RemoveItemEvents() { 48 64 OrConstraint.Changed -= new EventHandler(OrConstraint_Changed); 49 65 base.RemoveItemEvents(); 50 66 } 67 /// <summary> 68 /// Adds an eventhandler to the underlying <see cref="OrConstraint"/>. 69 /// </summary> 70 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 71 /// </remarks> 51 72 protected override void AddItemEvents() { 52 73 base.AddItemEvents(); … … 54 75 } 55 76 77 /// <summary> 78 /// Updates all controls with the latest values. 79 /// </summary> 56 80 protected override void UpdateControls() { 57 81 if (OrConstraint == null) { -
trunk/sources/HeuristicLab.Constraints/SubOperatorsConstraintAnalyser.cs
r764 r1176 28 28 29 29 namespace HeuristicLab.Constraints { 30 /// <summary> 31 /// Analyzes the sub-operators for specific constraints. 32 /// </summary> 30 33 public class SubOperatorsConstraintAnalyser { 31 34 private ICollection<IOperator> allPossibleOperators; 32 35 36 /// <summary> 37 /// Gets or sets all possible operators. 38 /// </summary> 33 39 public ICollection<IOperator> AllPossibleOperators { 34 40 get { return allPossibleOperators; } 35 41 set { allPossibleOperators = value; } 36 42 } 37 43 44 /// <summary> 45 /// Gets all operators that fulfill the expression of the constraints of the given operator. 46 /// </summary> 47 /// <param name="op">The operator whose constraints to check.</param> 48 /// <param name="childIndex">The index of the child.</param> 49 /// <returns>All allowed operators.</returns> 38 50 public IList<IOperator> GetAllowedOperators(IOperator op, int childIndex) { 39 51 AndConstraint andConstraint = new AndConstraint(); … … 109 121 #endregion 110 122 123 /// <summary> 124 /// Gets all allowed operators that fulfill the expression of the given <c>AndConstraint</c>. 125 /// </summary> 126 /// <param name="constraint">The constraint that must be fulfilled.</param> 127 /// <param name="childIndex">The index of the child.</param> 128 /// <returns>All allowed operators.</returns> 111 129 public IList<IOperator> GetAllowedOperators(AndConstraint constraint, int childIndex) { 112 130 IList<IOperator> allowedOperators = new List<IOperator>(allPossibleOperators); … … 118 136 } 119 137 138 /// <summary> 139 /// Gets all allowed operators that fulfill the expression of the given <c>OrConstraint</c>. 140 /// </summary> 141 /// <param name="constraint">The constraint that must be fulfilled.</param> 142 /// <param name="childIndex">The index of the child.</param> 143 /// <returns>All allowed operators.</returns> 120 144 public IList<IOperator> GetAllowedOperators(OrConstraint constraint, int childIndex) { 121 145 IList<IOperator> allowedOperators = new List<IOperator>(); … … 126 150 } 127 151 152 /// <summary> 153 /// Gets all allowed operators that fulfill the expression of the given <c>NotConstraint</c>. 154 /// </summary> 155 /// <param name="constraint">The constraint that must be fulfilled.</param> 156 /// <param name="childIndex">The index of the child.</param> 157 /// <returns>All allowed operators.</returns> 128 158 public IList<IOperator> GetAllowedOperators(NotConstraint constraint, int childIndex) { 129 159 return Substract(allPossibleOperators, GetAllowedOperators(constraint.SubConstraint, childIndex)); 130 160 } 131 161 162 /// <summary> 163 /// Gets all allowed operators that fulfill the expression of the given <c>AllSubOperatorsTypeConstraint</c>. 164 /// </summary> 165 /// <param name="constraint">The constraint that must be fulfilled.</param> 166 /// <param name="childIndex">The index of the child.</param> 167 /// <returns>All allowed operators.</returns> 132 168 public IList<IOperator> GetAllowedOperators(AllSubOperatorsTypeConstraint constraint, int childIndex) { 133 169 return Intersect(allPossibleOperators, constraint.AllowedSubOperators); 134 170 } 135 171 172 /// <summary> 173 /// Gets all allowed operators that fulfill the expression of the given <c>SubOperatorTypeConstraint</c>. 174 /// </summary> 175 /// <param name="constraint">The constraint that must be fulfilled.</param> 176 /// <param name="childIndex">The index of the child.</param> 177 /// <returns>All allowed operators.</returns> 136 178 public IList<IOperator> GetAllowedOperators(SubOperatorTypeConstraint constraint, int childIndex) { 137 179 if (childIndex != constraint.SubOperatorIndex.Data) { -
trunk/sources/HeuristicLab.Constraints/SubOperatorsTypeConstraint.cs
r764 r1176 29 29 30 30 namespace HeuristicLab.Constraints { 31 /// <summary> 32 /// Constraint where the sub-operator at a specific index has to be an element of a pre-defined group. 33 /// </summary> 31 34 public class SubOperatorTypeConstraint : ConstraintBase { 32 35 private IntData subOperatorIndex; 36 /// <summary> 37 /// Gets the index of the sub-operator. 38 /// </summary> 33 39 public IntData SubOperatorIndex { 34 40 get { return subOperatorIndex; } … … 36 42 37 43 private List<IOperator> subOperators; 44 /// <summary> 45 /// Gets all allowed sub-operators. 46 /// </summary> 38 47 public IList<IOperator> AllowedSubOperators { 39 48 get { … … 42 51 } 43 52 53 ///<inheritdoc select="summary"/> 44 54 public override string Description { 45 55 get { return "The sub-operator at a specific index has to be an element of a pre-defined group."; } 46 56 } 47 57 58 /// <summary> 59 /// Initializes a new instance of <see cref="SubOperatorTypeConstraint"/>. 60 /// </summary> 48 61 public SubOperatorTypeConstraint() 49 62 : base() { … … 52 65 } 53 66 67 /// <summary> 68 /// Initializes a new instance of <see cref="SubOperatorTypeConstraint"/> with the given 69 /// <paramref name="index"/>. 70 /// </summary> 71 /// <param name="index">The index of the sub-operator.</param> 54 72 public SubOperatorTypeConstraint(int index) : base() { 55 73 subOperatorIndex = new IntData(index); … … 57 75 } 58 76 77 /// <summary> 78 /// Adds the given operator to the list of sub-operators. 79 /// </summary> 80 /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class <see cref="ConstraintBase"/>.</remarks> 81 /// <param name="op">The operator to add.</param> 59 82 public void AddOperator(IOperator op) { 60 83 if(!subOperators.Contains(op)) { … … 64 87 } 65 88 89 /// <summary> 90 /// Removes the given operator from the list of sub-operators. 91 /// </summary> 92 /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class <see cref="ConstraintBase"/>.</remarks> 93 /// <param name="op">The operator to remove.</param> 66 94 public void RemoveOperator(IOperator op) { 67 95 if(subOperators.Contains(op)) { … … 71 99 } 72 100 101 /// <summary> 102 /// Empties the list of sub-operators. 103 /// </summary> 73 104 public void Clear() { 74 105 subOperators.Clear(); 75 106 } 76 107 108 /// <summary> 109 /// Checks whether the given element fulfills the current constraint. 110 /// </summary> 111 /// <param name="data">The item to check.</param> 112 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 77 113 public override bool Check(IItem data) { 78 114 IOperator op = data as IOperator; … … 85 121 } 86 122 123 /// <summary> 124 /// Clones the current instance (deep clone). 125 /// </summary> 126 /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class 127 /// <see cref="Auxiliary"/>.</remarks> 128 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 129 /// <returns>The cloned object as <see cref="SubOperatorTypeConstraint"/>.</returns> 87 130 public override object Clone(IDictionary<Guid, object> clonedObjects) { 88 131 SubOperatorTypeConstraint clone = new SubOperatorTypeConstraint(); … … 95 138 } 96 139 140 /// <summary> 141 /// Creates a new instance of <see cref="SubOperatorsTypeConstraintView"/> to represent the current 142 /// instance visually. 143 /// </summary> 144 /// <returns>The created view as <see cref="SubOperatorsTypeConstraintView"/>.</returns> 97 145 public override IView CreateView() { 98 146 return new SubOperatorsTypeConstraintView(this); … … 100 148 101 149 #region persistence 150 /// <summary> 151 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 152 /// </summary> 153 /// <remarks>The index and the list of sub-operators are saved as child nodes with tag names 154 /// <c>SubOperatorIndex</c> and <c>AllowedSubOperators</c>.</remarks> 155 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 156 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 157 /// <param name="persistedObjects">The dictionary of all already persisted objects. 158 /// (Needed to avoid cycles.)</param> 159 /// <returns>The saved <see cref="XmlNode"/>.</returns> 102 160 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 103 161 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 113 171 } 114 172 173 /// <summary> 174 /// Loads the persisted constraint from the specified <paramref name="node"/>. 175 /// </summary> 176 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 177 /// more information.</remarks> 178 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 179 /// <param name="restoredObjects">The dictionary of all already restored objects. 180 /// (Needed to avoid cycles.)</param> 115 181 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 116 182 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/SubOperatorsTypeConstraintView.cs
r2 r1176 30 30 31 31 namespace HeuristicLab.Constraints { 32 /// <summary> 33 /// The visual representation of a <see cref="SubOperatorTypeConstraint"/>. 34 /// </summary> 32 35 public partial class SubOperatorsTypeConstraintView : ViewBase { 33 36 private SubOperatorTypeConstraint constraint; 34 37 38 /// <summary> 39 /// Initializes a new instance of <see cref="SubOperatorsTypeConstraintView"/>. 40 /// </summary> 35 41 public SubOperatorsTypeConstraintView() { 36 42 InitializeComponent(); 37 43 } 38 44 45 /// <summary> 46 /// Initializes a new instance of <see cref="SubOperatorTypeConstraint"/> with the given 47 /// <paramref name="constraint"/> to display. 48 /// </summary> 49 /// <param name="constraint">The constraint to represent visually.</param> 39 50 public SubOperatorsTypeConstraintView(SubOperatorTypeConstraint constraint) { 40 51 InitializeComponent(); -
trunk/sources/HeuristicLab.Constraints/VariableComparisonConstraint.cs
r175 r1176 28 28 29 29 namespace HeuristicLab.Constraints { 30 /// <summary> 31 /// Constraint that compares variables in a <see cref="ConstrainedItemList"/>. 32 /// </summary> 30 33 public class VariableComparisonConstraint : ConstraintBase { 31 34 private StringData leftVarName; 35 /// <summary> 36 /// Gets or sets the variable name of the left item to compare. 37 /// </summary> 32 38 public StringData LeftVarName { 33 39 get { return leftVarName; } … … 36 42 37 43 private StringData rightVarName; 44 /// <summary> 45 /// Gets or sets the variable name of the right item to compare. 46 /// </summary> 38 47 public StringData RightVarName { 39 48 get { return rightVarName; } … … 42 51 43 52 private IntData comparer; 53 /// <summary> 54 /// Gets or sets the comparer. 55 /// </summary> 44 56 public IntData Comparer { 45 57 get { return comparer; } … … 47 59 } 48 60 61 /// <inheritdoc select="summary"/> 49 62 public override string Description { 50 63 get { … … 53 66 } 54 67 68 /// <summary> 69 /// Initializes a new instance of <see cref="VariableComparisonConstraint"/>. 70 /// </summary> 55 71 public VariableComparisonConstraint() { 56 72 leftVarName = new StringData(); … … 59 75 } 60 76 77 /// <summary> 78 /// Checks whether the given element fulfills the current constraint. 79 /// </summary> 80 /// <exception cref="InvalidOperationException">Thrown when the data is no <c>ConstrainedItemList</c>.</exception> 81 /// <exception cref="InvalidCastException">Thrown when the left varible is not of type <c>IComparable</c>.</exception> 82 /// <exception cref="InvalidOperationException">Thrown when the comparer is undefined.</exception> 83 /// <param name="data">The item to check.</param> 84 /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns> 61 85 public override bool Check(IItem data) { 62 86 ConstrainedItemList list = (data as ConstrainedItemList); … … 92 116 } 93 117 118 /// <summary> 119 /// Creates a new instance of <see cref="VariableComparisonConstraintView"/> to represent the current 120 /// instance visually. 121 /// </summary> 122 /// <returns>The created view as <see cref="VariableComparisonConstraintView"/>.</returns> 94 123 public override IView CreateView() { 95 124 return new VariableComparisonConstraintView(this); … … 97 126 98 127 #region clone & persistence 128 /// <summary> 129 /// Clones the current instance (deep clone). 130 /// </summary> 131 /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class 132 /// <see cref="Auxiliary"/>.</remarks> 133 /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param> 134 /// <returns>The cloned object as <see cref="VariableComparisonConstraint"/>.</returns> 99 135 public override object Clone(IDictionary<Guid, object> clonedObjects) { 100 136 VariableComparisonConstraint clone = new VariableComparisonConstraint(); … … 106 142 } 107 143 144 /// <summary> 145 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>. 146 /// </summary> 147 /// <remarks>The variable names and the comparer are saved as child nodes with tag names 148 /// <c>LeftVarName</c>, <c>RightVarName</c> and <c>Comparer</c>.</remarks> 149 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param> 150 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param> 151 /// <param name="persistedObjects">The dictionary of all already persisted objects. 152 /// (Needed to avoid cycles.)</param> 153 /// <returns>The saved <see cref="XmlNode"/>.</returns> 108 154 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 109 155 XmlNode node = base.GetXmlNode(name, document, persistedObjects); … … 117 163 } 118 164 165 /// <summary> 166 /// Loads the persisted constraint from the specified <paramref name="node"/>. 167 /// </summary> 168 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 169 /// more information.</remarks> 170 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param> 171 /// <param name="restoredObjects">The dictionary of all already restored objects. 172 /// (Needed to avoid cycles.)</param> 119 173 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 120 174 base.Populate(node, restoredObjects); -
trunk/sources/HeuristicLab.Constraints/VariableComparisonConstraintView.cs
r349 r1176 31 31 32 32 namespace HeuristicLab.Constraints { 33 /// <summary> 34 /// Visual representation of a <see cref="VariableComparisonConstraint"/>. 35 /// </summary> 33 36 public partial class VariableComparisonConstraintView : ViewBase { 37 /// <summary> 38 /// Gets or sets the VariableComparisonConstraint to represent visually. 39 /// </summary> 40 /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>. 41 /// No own data storage present.</remarks> 34 42 public VariableComparisonConstraint VariableComparisonConstraint { 35 43 get { return (VariableComparisonConstraint)base.Item; } … … 37 45 } 38 46 47 /// <summary> 48 /// Initializes a new instance of <see cref="VariableComparisonConstraintView"/>. 49 /// </summary> 39 50 public VariableComparisonConstraintView() { 40 51 InitializeComponent(); 41 52 } 42 53 54 /// <summary> 55 /// Initializes a new instance of <see cref="VariableComparisonConstraintView"/> with the given 56 /// <paramref name="variableComparisonConstraint"/> to display. 57 /// </summary> 58 /// <param name="variableComparisonConstraint">The constraint to represent visually.</param> 43 59 public VariableComparisonConstraintView(VariableComparisonConstraint variableComparisonConstraint) 44 60 : this() { … … 46 62 } 47 63 64 /// <summary> 65 /// Removes the eventhandler from the underlying <see cref="VariableComparisonConstraint"/>. 66 /// </summary> 67 /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>. 68 /// </remarks> 48 69 protected override void RemoveItemEvents() { 49 70 VariableComparisonConstraint.Changed -= new EventHandler(VariableComparisonConstraint_Changed); … … 51 72 } 52 73 74 /// <summary> 75 /// Adds an eventhandler to the underlying <see cref="VariableComparisonConstraint"/>. 76 /// </summary> 77 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 78 /// </remarks> 53 79 protected override void AddItemEvents() { 54 80 base.AddItemEvents(); … … 60 86 } 61 87 88 /// <summary> 89 /// Updates all controls with the latest values. 90 /// </summary> 91 /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>. 92 /// </remarks> 62 93 protected override void UpdateControls() { 63 94 base.UpdateControls(); -
trunk/sources/HeuristicLab.IntVector/UniformAllPositionsManipulator.cs
r1157 r1176 46 46 47 47 /// <summary> 48 /// Changes all position in the given integer <paramref name="vector"/>.48 /// Changes all positions in the given integer <paramref name="vector"/>. 49 49 /// </summary> 50 50 /// <param name="random">A random number generator.</param> … … 61 61 62 62 /// <summary> 63 /// Changes all position in the given integer <paramref name="vector"/>.63 /// Changes all positions in the given integer <paramref name="vector"/>. 64 64 /// </summary> 65 65 /// <remarks>Calls <see cref="Apply"/>.</remarks>
Note: See TracChangeset
for help on using the changeset viewer.