Free cookie consent management tool by TermsFeed Policy Generator

Changeset 1176 for trunk/sources


Ignore:
Timestamp:
01/27/09 09:31:06 (16 years ago)
Author:
vdorfer
Message:

Created API documentation for HeuristicLab.BitVector and HeuristicLab.Constraints namespace and changed a comment in HeuristicLab.IntVector namespace(#331)

Location:
trunk/sources
Files:
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.BitVector/BitVectorCrossoverBase.cs

    r77 r1176  
    2828
    2929namespace HeuristicLab.BitVector {
     30  /// <summary>
     31  /// Base class for all bit vector crossover operators.
     32  /// </summary>
    3033  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>
    3138    public BitVectorCrossoverBase()
    3239      : base() {
     
    3441    }
    3542
     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>
    3652    protected sealed override void Cross(IScope scope, IRandom random, IScope parent1, IScope parent2, IScope child) {
    3753      IVariableInfo bitVectorInfo = GetVariableInfo("BitVector");
     
    4561    }
    4662
     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>
    4771    protected abstract bool[] Cross(IScope scope, IRandom random, bool[] parent1, bool[] parent2);
    4872  }
  • trunk/sources/HeuristicLab.BitVector/BitVectorManipulatorBase.cs

    r2 r1176  
    2727
    2828namespace HeuristicLab.BitVector {
     29  /// <summary>
     30  /// Base class for all bit vector manipulators.
     31  /// </summary>
    2932  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>
    3037    public BitVectorManipulatorBase() {
    3138      AddVariableInfo(new VariableInfo("Random", "Pseudo random number generator", typeof(IRandom), VariableKind.In));
     
    3340    }
    3441
     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>
    3547    public override IOperation Apply(IScope scope) {
    3648      IRandom random = GetVariableValue<IRandom>("Random", scope, true);
     
    4052    }
    4153
     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>
    4261    protected abstract bool[] Manipulate(IScope scope, IRandom random, bool[] vector);
    4362  }
  • trunk/sources/HeuristicLab.BitVector/FlipManipulator.cs

    r2 r1176  
    2626
    2727namespace HeuristicLab.BitVector {
     28  /// <summary>
     29  /// Single bit flip manipulation for bit vectors.
     30  /// </summary>
    2831  public class FlipManipulator : BitVectorManipulatorBase {
     32    /// <inheritdoc select="summary"/>
    2933    public override string Description {
    3034      get { return "Single bit flip manipulation for bit vectors."; }
    3135    }
    3236
     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>
    3343    public static bool[] Apply(IRandom random, bool[] vector) {
    3444      bool[] result = (bool[])vector.Clone();
     
    3848    }
    3949
     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>
    4058    protected override bool[] Manipulate(IScope scope, IRandom random, bool[] vector) {
    4159      return Apply(random, vector);
  • trunk/sources/HeuristicLab.BitVector/HeuristicLabBitVectorPlugin.cs

    r582 r1176  
    2626
    2727namespace HeuristicLab.BitVector {
     28  /// <summary>
     29  /// Plugin class for HeuristicLab.BitVector plugin.
     30  /// </summary>
    2831  [ClassInfo(Name = "HeuristicLab.BitVector-3.2")]
    2932  [PluginFile(Filename = "HeuristicLab.BitVector-3.2.dll", Filetype = PluginFileType.Assembly)]
  • trunk/sources/HeuristicLab.BitVector/RandomBitVectorGenerator.cs

    r77 r1176  
    2626using HeuristicLab.Data;
    2727
    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         }
     28namespace 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    }
    3637
    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    }
    4347
    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    }
    5160
    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;
    5670
    57             bool[] vector = Apply(random, length);
    58             scope.AddVariable(new Variable(scope.TranslateName("BitVector"), new BoolArrayData(vector)));
     71      bool[] vector = Apply(random, length);
     72      scope.AddVariable(new Variable(scope.TranslateName("BitVector"), new BoolArrayData(vector)));
    5973
    60             return null;
    61         }
     74      return null;
    6275    }
     76  }
    6377}
  • trunk/sources/HeuristicLab.BitVector/SinglePointCrossover.cs

    r2 r1176  
    2626
    2727namespace HeuristicLab.BitVector {
     28  /// <summary>
     29  /// Single point crossover for bit vectors.
     30  /// </summary>
    2831  public class SinglePointCrossover : BitVectorCrossoverBase {
     32    /// <inheritdoc select="summary"/>
    2933    public override string Description {
    3034      get { return "Single point crossover for bit vectors."; }
    3135    }
    3236
     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>
    3345    public static bool[] Apply(IRandom random, bool[] parent1, bool[] parent2) {
    3446      int length = parent1.Length;
     
    4456    }
    4557
     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>
    4667    protected override bool[] Cross(IScope scope, IRandom random, bool[] parent1, bool[] parent2) {
    4768      return Apply(random, parent1, parent2);
  • trunk/sources/HeuristicLab.Constraints/AllSubOperatorsTypeConstraint.cs

    r764 r1176  
    2929
    3030namespace HeuristicLab.Constraints {
     31  /// <summary>
     32  /// Constraint where all sub-operators have to be elements of a pre-defined group.
     33  /// </summary>
    3134  public class AllSubOperatorsTypeConstraint : ConstraintBase {
    3235
    3336    private SubOperatorTypeConstraint groupConstraint;
     37    /// <summary>
     38    /// Gets all allowed sub-operators.
     39    /// </summary>
    3440    public IList<IOperator> AllowedSubOperators {
    3541      get {
     
    3844    }
    3945
     46    /// <inheritdoc select="summary"/>
    4047    public override string Description {
    4148      get { return "All sub-operators have to be elements of a pre-defined group."; }
    4249    }
    4350
     51    /// <summary>
     52    /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraint"/>.
     53    /// </summary>
    4454    public AllSubOperatorsTypeConstraint()
    4555      : base() {
     
    4757    }
    4858
     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>
    4965    public void AddOperator(IOperator op) {
    5066      groupConstraint.AddOperator(op);
     
    5268    }
    5369
     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>
    5476    public void RemoveOperator(IOperator op) {
    5577      groupConstraint.RemoveOperator(op);
     
    5779    }
    5880
     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>
    5986    public override bool Check(IItem data) {
    6087      IOperator op = data as IOperator;
     
    7097    }
    7198
     99    /// <summary>
     100    /// Empties the current instance.
     101    /// </summary>
    72102    public void Clear() {
    73103      groupConstraint.Clear();
    74104    }
    75105
     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>
    76113    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    77114      AllSubOperatorsTypeConstraint clone = new AllSubOperatorsTypeConstraint();
     
    81118    }
    82119
     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>
    83125    public override IView CreateView() {
    84126      return new AllSubOperatorsTypeConstraintView(groupConstraint);
     
    86128
    87129    #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>
    88140    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
    89141      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    94146    }
    95147
     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>
    96156    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
    97157      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/AllSubOperatorsTypeConstraintView.cs

    r436 r1176  
    3030
    3131namespace HeuristicLab.Constraints {
     32  /// <summary>
     33  /// The visual representation of the <see cref="AllSubOperatorsTypeConstraint"/>.
     34  /// </summary>
    3235  public partial class AllSubOperatorsTypeConstraintView : ViewBase {
    3336    private SubOperatorTypeConstraint constraint = new SubOperatorTypeConstraint();
    3437
     38    /// <summary>
     39    /// Gets or sets the SubOperatorTypeConstraint to display.
     40    /// </summary>
    3541    public SubOperatorTypeConstraint Constraint {
    3642      get { return constraint; }
     
    4147    }
    4248
     49    /// <summary>
     50    /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraintView"/>.
     51    /// </summary>
    4352    public AllSubOperatorsTypeConstraintView() {
    4453      InitializeComponent();
    4554    }
    4655
     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>
    4761    public AllSubOperatorsTypeConstraintView(SubOperatorTypeConstraint constraint) {
    4862      this.constraint = constraint;
  • trunk/sources/HeuristicLab.Constraints/AndConstraint.cs

    r764 r1176  
    2828
    2929namespace HeuristicLab.Constraints {
     30  /// <summary>
     31  /// Constraint where all sub-constraints must be <c>true</c>.
     32  /// </summary>
    3033  public class AndConstraint : ConstraintBase, IViewable {
    3134    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>
    3240    public ItemList<IConstraint> Clauses {
    3341      get { return clauses; }
     
    3846    }
    3947
     48    /// <inheritdoc select="summary"/>
    4049    public override string Description {
    4150      get {
     
    4453    }
    4554
     55    /// <summary>
     56    /// Initializes a new instance of <see cref="AndConstraint"/>.
     57    /// </summary>
    4658    public AndConstraint() {
    4759      clauses = new ItemList<IConstraint>();
    4860    }
    4961
     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>
    5067    public override bool Check(IItem data) {
    5168      bool result = true;
     
    5774    }
    5875
     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>
    5981    public override IView CreateView() {
    6082      return new AndConstraintView(this);
    6183    }
    6284
     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>
    6392    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    6493      AndConstraint clone = new AndConstraint();
     
    6998
    7099    #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>
    71110    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {
    72111      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    77116    }
    78117
     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>
    79126    public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {
    80127      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/AndConstraintView.cs

    r2 r1176  
    3131
    3232namespace HeuristicLab.Constraints {
     33  /// <summary>
     34  /// The visual representation of an <see cref="AndConstraint"/>.
     35  /// </summary>
    3336  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.
    3442    public AndConstraint AndConstraint {
    3543      get { return (AndConstraint)Item; }
     
    3745    }
    3846
     47    /// <summary>
     48    /// Initializes a new instance of <see cref="AndConstraintView"/>.
     49    /// </summary>
    3950    public AndConstraintView() {
    4051      InitializeComponent();
    4152    }
     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>
    4258    public AndConstraintView(AndConstraint andConstraint)
    4359      : this() {
     
    4561    }
    4662
     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>
    4768    protected override void RemoveItemEvents() {
    4869      AndConstraint.Changed -= new EventHandler(AndConstraint_Changed);
    4970      base.RemoveItemEvents();
    5071    }
     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>
    5177    protected override void AddItemEvents() {
    5278      base.AddItemEvents();
     
    5480    }
    5581
     82    /// <summary>
     83    /// Updates all controls with the latest values.
     84    /// </summary>
    5685    protected override void UpdateControls() {
    5786      if (AndConstraint == null) {
  • trunk/sources/HeuristicLab.Constraints/ConstraintBase.cs

    r764 r1176  
    2727
    2828namespace HeuristicLab.Constraints {
     29  /// <summary>
     30  /// Base class for all constraints.
     31  /// </summary>
    2932  public abstract class ConstraintBase : ItemBase, IConstraint {
     33    /// <inheritdoc select="summary"/>
    3034    public virtual string Description {
    3135      get { return "No constraint description available."; }
    3236    }
    3337
     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>
    3443    public abstract bool Check(IItem data);
    3544  }
  • trunk/sources/HeuristicLab.Constraints/DoubleBoundedConstraint.cs

    r764 r1176  
    2929
    3030namespace HeuristicLab.Constraints {
     31  /// <summary>
     32  /// Constraint where a double value is limited by a one or two sided boundary.
     33  /// </summary>
    3134  public class DoubleBoundedConstraint : ConstraintBase {
    3235    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>
    3341    public double LowerBound {
    3442      get { return lowerBound; }
     
    3947    }
    4048    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>
    4154    public bool LowerBoundIncluded {
    4255      get { return lowerBoundIncluded; }
     
    4760    }
    4861    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>
    4967    public bool LowerBoundEnabled {
    5068      get { return lowerBoundEnabled; }
     
    5573    }
    5674    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>
    5780    public double UpperBound {
    5881      get { return upperBound; }
     
    6386    }
    6487    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>
    6593    public bool UpperBoundIncluded {
    6694      get { return upperBoundIncluded; }
     
    7199    }
    72100    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>
    73106    public bool UpperBoundEnabled {
    74107      get { return upperBoundEnabled; }
     
    79112    }
    80113
     114    /// <inheritdoc select="summary"/>
    81115    public override string Description {
    82116      get { return "The double is limited one or two sided by a lower and/or upper boundary"; }
    83117    }
    84118
     119    /// <summary>
     120    /// Initializes a new instance of <see cref="DoubleBoundedConstraint"/>.
     121    /// </summary>
    85122    public DoubleBoundedConstraint()
    86123      : this(double.MinValue, double.MaxValue) {
    87124    }
    88125
     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>
    89131    public DoubleBoundedConstraint(double lowerBound, double upperBound)
    90132      : this(lowerBound, true, upperBound, true) {
    91133    }
    92134
     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>
    93142    public DoubleBoundedConstraint(double lowerBound, bool lowerBoundIncluded, double upperBound, bool upperBoundIncluded)
    94143      : base() {
     
    102151
    103152
     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>
    104158    public override bool Check(IItem data) {
    105159      ConstrainedDoubleData d = (data as ConstrainedDoubleData);
     
    112166    }
    113167
     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>
    114173    public override IView CreateView() {
    115174      return new DoubleBoundedConstraintView(this);
    116175    }
    117176
     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>
    118182    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    119183      DoubleBoundedConstraint clone = new DoubleBoundedConstraint();
     
    129193
    130194    #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>
    131204    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
    132205      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    152225    }
    153226
     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>
    154235    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
    155236      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/DoubleBoundedConstraintView.cs

    r344 r1176  
    3131
    3232namespace HeuristicLab.Constraints {
     33  /// <summary>
     34  /// The visual representation of a <see cref="DoubleBoundedConstraint"/>.
     35  /// </summary>
    3336  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>
    3442    public DoubleBoundedConstraint DoubleBoundedConstraint {
    3543      get { return (DoubleBoundedConstraint)Item; }
     
    3745    }
    3846
     47    /// <summary>
     48    /// Initializes a new instance of <see cref="DoubleBoundedConstraintView"/>.
     49    /// </summary>
    3950    public DoubleBoundedConstraintView() {
    4051      InitializeComponent();
    4152    }
    4253
     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>
    4359    public DoubleBoundedConstraintView(DoubleBoundedConstraint doubleBoundedConstraint)
    4460      : this() {
     
    4662    }
    4763
     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>
    4869    protected override void RemoveItemEvents() {
    4970      DoubleBoundedConstraint.Changed -= new EventHandler(DoubleBoundedConstraint_Changed);
     
    5172    }
    5273
     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>
    5379    protected override void AddItemEvents() {
    5480      base.AddItemEvents();
     
    5682    }
    5783
     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>
    5888    protected override void UpdateControls() {
    5989      base.UpdateControls();
  • trunk/sources/HeuristicLab.Constraints/HeuristicLabConstraintsPlugin.cs

    r582 r1176  
    2626
    2727namespace HeuristicLab.Constraints {
     28  /// <summary>
     29  /// Plugin class for HeuristicLab.Constraints plugin.
     30  /// </summary>
    2831  [ClassInfo(Name = "HeuristicLab.Constraints-3.2")]
    2932  [PluginFile(Filename = "HeuristicLab.Constraints-3.2.dll", Filetype = PluginFileType.Assembly)]
  • trunk/sources/HeuristicLab.Constraints/IntBoundedConstraint.cs

    r764 r1176  
    2828
    2929namespace HeuristicLab.Constraints {
     30  /// <summary>
     31  /// Constraint where an integer value is limited by a one or two sided boundary.
     32  /// </summary>
    3033  public class IntBoundedConstraint : ConstraintBase {
    3134    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>
    3240    public int LowerBound {
    3341      get { return lowerBound; }
     
    3846    }
    3947    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>
    4053    public bool LowerBoundIncluded {
    4154      get { return lowerBoundIncluded; }
     
    4659    }
    4760    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>
    4866    public bool LowerBoundEnabled {
    4967      get { return lowerBoundEnabled; }
     
    5472    }
    5573    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>
    5679    public int UpperBound {
    5780      get { return upperBound; }
     
    6285    }
    6386    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>
    6492    public bool UpperBoundIncluded {
    6593      get { return upperBoundIncluded; }
     
    7098    }
    7199    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>
    72105    public bool UpperBoundEnabled {
    73106      get { return upperBoundEnabled; }
     
    78111    }
    79112
     113    /// <inheritdoc select="summary"/>
    80114    public override string Description {
    81115      get { return "The integer is limited one or two sided by a lower and/or upper boundary"; }
    82116    }
    83117
     118    /// <summary>
     119    /// Initializes a new instance of <see cref="IntBoundedConstraint"/>.
     120    /// </summary>
    84121    public IntBoundedConstraint()
    85122      : this(int.MinValue, int.MaxValue) {
    86123    }
    87124
     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>
    88130    public IntBoundedConstraint(int low, int high) : base() {
    89131      lowerBound = low;
     
    95137    }
    96138
     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>
    97144    public override bool Check(IItem data) {
    98145      ConstrainedIntData d = (data as ConstrainedIntData);
     
    105152    }
    106153
     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>
    107159    public override IView CreateView() {
    108160      return new IntBoundedConstraintView(this);
    109161    }
    110162
     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>
    111168    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    112169      IntBoundedConstraint clone = new IntBoundedConstraint();
     
    122179
    123180    #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>
    124190    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
    125191      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    145211    }
    146212
     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>
    147221    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
    148222      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/IntBoundedConstraintView.cs

    r2 r1176  
    3131
    3232namespace HeuristicLab.Constraints {
     33  /// <summary>
     34  /// The visual representation of an <see cref="IntBoundedConstraint"/>.
     35  /// </summary>
    3336  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>
    3442    public IntBoundedConstraint IntBoundedConstraint {
    3543      get { return (IntBoundedConstraint)Item; }
     
    3745    }
    3846
     47    /// <summary>
     48    /// Initializes a new instance of <see cref="IntBoundedConstraintView"/>.
     49    /// </summary>
    3950    public IntBoundedConstraintView() {
    4051      InitializeComponent();
    4152    }
    4253
     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>
    4359    public IntBoundedConstraintView(IntBoundedConstraint intBoundedConstraint)
    4460      : this() {
     
    4662    }
    4763
     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>
    4869    protected override void RemoveItemEvents() {
    4970      IntBoundedConstraint.Changed -= new EventHandler(IntBoundedConstraint_Changed);
     
    5172    }
    5273
     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>
    5379    protected override void AddItemEvents() {
    5480      base.AddItemEvents();
     
    5682    }
    5783
     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>
    5888    protected override void UpdateControls() {
    5989      base.UpdateControls();
  • trunk/sources/HeuristicLab.Constraints/IsIntegerConstraint.cs

    r764 r1176  
    2727
    2828namespace HeuristicLab.Constraints {
     29  /// <summary>
     30  /// Constraint that allows only integer values.
     31  /// </summary>
    2932  public class IsIntegerConstraint : ConstraintBase{
     33    /// <inheritdoc select="summary"/>
    3034    public override string Description {
    3135      get { return "Allows only integer values."; }
    3236    }
    3337
     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>
    3443    public override bool Check(IItem item) {
    3544      // ConstrainedIntData is always integer => just return true
  • trunk/sources/HeuristicLab.Constraints/ItemTypeConstraint.cs

    r764 r1176  
    2828
    2929namespace 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>
    3035  public class ItemTypeConstraint : ConstraintBase {
    3136    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>
    3242    public Type Type {
    3343      get { return type; }
     
    3848    }
    3949
     50    /// <inheritdoc select="summary"/>
    4051    public override string Description {
    4152      get {
     
    4556    }
    4657
     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>
    4762    public ItemTypeConstraint() {
    4863      type = typeof(ItemBase);
    4964    }
    5065
     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>
    5170    public ItemTypeConstraint(Type type) {
    5271      this.type = type;
    5372    }
    5473
     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>
    5579    public override bool Check(IItem data) {
    5680      ConstrainedItemList list = (data as ConstrainedItemList);
     
    6387    }
    6488
     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>
    6594    public override IView CreateView() {
    6695      return new ItemTypeConstraintView(this);
     
    6897
    6998    #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>
    70104    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    71105      ItemTypeConstraint clone = new ItemTypeConstraint(type);
     
    74108    }
    75109
     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>
    76119    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
    77120      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    82125    }
    83126
     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>
    84135    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
    85136      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/ItemTypeConstraintView.cs

    r2 r1176  
    3131
    3232namespace HeuristicLab.Constraints {
     33  /// <summary>
     34  /// The visual representation of an <see cref="ItemTypeConstraint"/>.
     35  /// </summary>
    3336  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>
    3442    private ItemTypeConstraint ItemTypeConstraint {
    3543      get { return (ItemTypeConstraint)base.Item; }
     
    3745    }
    3846
     47    /// <summary>
     48    /// Initializes a new instance of <see cref="ItemTypeConstraintView"/>.
     49    /// </summary>
    3950    public ItemTypeConstraintView() {
    4051      InitializeComponent();
     
    4253    }
    4354
     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>
    4460    public ItemTypeConstraintView(ItemTypeConstraint itemTypeConstraint)
    4561      : this() {
     
    4763    }
    4864
     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>
    4970    protected override void RemoveItemEvents() {
    5071      ItemTypeConstraint.Changed -= new EventHandler(ItemTypeConstraint_Changed);
     
    5273    }
    5374
     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>
    5480    protected override void AddItemEvents() {
    5581      base.AddItemEvents();
     
    6187    }
    6288
     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>
    6393    protected override void UpdateControls() {
    6494      base.UpdateControls();
  • trunk/sources/HeuristicLab.Constraints/NotConstraint.cs

    r893 r1176  
    2828
    2929namespace HeuristicLab.Constraints {
     30  /// <summary>
     31  /// Constraint where its sub-constraint must be false to be true.
     32  /// </summary>
    3033  public class NotConstraint : ConstraintBase {
    3134    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>
    3240    public ConstraintBase SubConstraint {
    3341      get { return subConstraint; }
     
    3745      }
    3846    }
     47    /// <inheritdoc select="summary"/>
    3948    public override string Description {
    4049      get {
     
    4251      }
    4352    }
     53    /// <summary>
     54    /// Initializes a new instance of <see cref="NotConstraint"/>.
     55    /// </summary>
    4456    public NotConstraint()
    4557      : base() {
    4658    }
    4759
     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>
    4865    public override bool Check(IItem data) {
    4966      return (subConstraint == null) || (!subConstraint.Check(data));
    5067    }
    5168
     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>
    5274    public override IView CreateView() {
    5375      return new NotConstraintView(this);
    5476    }
    5577
     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>
    5683    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    5784      NotConstraint clone = new NotConstraint();
     
    6390
    6491    #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>
    65102    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
    66103      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    72109    }
    73110
     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>
    74119    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
    75120      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/NotConstraintView.cs

    r893 r1176  
    3232
    3333namespace HeuristicLab.Constraints {
     34  /// <summary>
     35  /// Visual representation of a <see cref="NotConstraint"/>.
     36  /// </summary>
    3437  public partial class NotConstraintView : ViewBase {
    3538    private Type[] itemTypes;
    3639
     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>
    3746    public NotConstraint NotConstraint {
    3847      get { return (NotConstraint)Item; }
     
    4453    }
    4554
     55    /// <summary>
     56    /// Initializes a new instance of <see cref="NotConstraintView"/>.
     57    /// </summary>
    4658    public NotConstraintView() {
    4759      InitializeComponent();
     
    5567    }
    5668
     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>
    5775    public NotConstraintView(NotConstraint notConstraint)
    5876      : this() {
     
    6280    }
    6381
     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>
    6487    protected override void RemoveItemEvents() {
    6588      NotConstraint.Changed -= new EventHandler(NotConstraint_Changed);
    6689      base.RemoveItemEvents();
    6790    }
     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>
    6896    protected override void AddItemEvents() {
    6997      base.AddItemEvents();
     
    7199    }
    72100
     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>
    73105    protected override void UpdateControls() {
    74106      base.UpdateControls();
  • trunk/sources/HeuristicLab.Constraints/NumberOfSubOperatorsConstraint.cs

    r764 r1176  
    2929
    3030namespace HeuristicLab.Constraints {
     31  /// <summary>
     32  /// Constraint where the number of sub-operators must be within a specific range.
     33  /// </summary>
    3134  public class NumberOfSubOperatorsConstraint : ConstraintBase {
    3235    private IntData minOperators;
    3336    private IntData maxOperators;
    3437
     38    /// <summary>
     39    /// Gets the maximum number of sub-operators.
     40    /// </summary>
    3541    public IntData MaxOperators {
    3642      get { return maxOperators; }
    3743    }
    3844
     45    /// <summary>
     46    /// Gets the minimum number of sub-operators.
     47    /// </summary>
    3948    public IntData MinOperators {
    4049      get { return minOperators; }
    4150    }
    4251
     52    /// <inheritdoc select="summary"/>
    4353    public override string Description {
    4454      get { return "Number of sub-operators has to be between " + MinOperators.ToString() + " and " + MaxOperators.ToString() + "."; }
    4555    }
    4656
     57    /// <summary>
     58    /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraint"/>.
     59    /// </summary>
    4760    public NumberOfSubOperatorsConstraint()
    4861      : this(0,0) {
    4962    }
    5063
     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>
    5170    public NumberOfSubOperatorsConstraint(int min, int max) : base() {
    5271      minOperators = new IntData(min);
     
    5473    }
    5574
     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>
    5680    public override bool Check(IItem data) {
    5781      IOperator op = data as IOperator;
     
    6185    }
    6286
     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>
    6392    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    6493      NumberOfSubOperatorsConstraint clone = new NumberOfSubOperatorsConstraint();
     
    6998    }
    7099
     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>
    71105    public override IView CreateView() {
    72106      return new NumberOfSubOperatorsConstraintView(this);
     
    74108
    75109    #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>
    76120    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {
    77121      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    83127    }
    84128
     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>
    85137    public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {
    86138      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/NumberOfSubOperatorsConstraintView.cs

    r2 r1176  
    3030
    3131namespace HeuristicLab.Constraints {
     32  /// <summary>
     33  /// Visual representation of a <see cref="NumberOfSubOperatorsConstraint"/>.
     34  /// </summary>
    3235  public partial class NumberOfSubOperatorsConstraintView : ViewBase {
    3336    private NumberOfSubOperatorsConstraint constraint;
    3437
     38    /// <summary>
     39    /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraintView"/>.
     40    /// </summary>
    3541    public NumberOfSubOperatorsConstraintView() {
    3642      InitializeComponent();
    3743    }
    3844
     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>
    3950    public NumberOfSubOperatorsConstraintView(NumberOfSubOperatorsConstraint constraint) {
    4051      InitializeComponent();
  • trunk/sources/HeuristicLab.Constraints/OrConstraint.cs

    r764 r1176  
    2828
    2929namespace HeuristicLab.Constraints {
     30  /// <summary>
     31  /// Constraint where at least one sub-constraint must be true.
     32  /// </summary>
    3033  public class OrConstraint : ConstraintBase, IViewable {
    3134    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>
    3240    public ItemList<IConstraint> Clauses {
    3341      get { return clauses; }
     
    3846    }
    3947
     48    /// <inheritdoc select="summary"/>
    4049    public override string Description {
    4150      get {
     
    4453    }
    4554
     55    /// <summary>
     56    /// Initializes a new instance of <see cref="OrConstraint"/>.
     57    /// </summary>
    4658    public OrConstraint() {
    4759      clauses = new ItemList<IConstraint>();
    4860    }
    4961
     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>
    5067    public override bool Check(IItem data) {
    5168      bool result = false;
     
    5774    }
    5875
     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>
    5981    public override IView CreateView() {
    6082      return new OrConstraintView(this);
    6183    }
    6284
     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>
    6392    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    6493      OrConstraint clone = new OrConstraint();
     
    6998
    7099    #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>
    71110    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {
    72111      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    77116    }
    78117
     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>
    79126    public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {
    80127      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/OrConstraintView.cs

    r2 r1176  
    3131
    3232namespace HeuristicLab.Constraints {
     33  /// <summary>
     34  /// Visual representation of an <see cref="OrConstraint"/>.
     35  /// </summary>
    3336  public partial class OrConstraintView : ViewBase {
    3437    private OrConstraint OrConstraint {
     
    3740    }
    3841
     42    /// <summary>
     43    /// Initializes a new instance of <see cref="OrConstraintView"/>.
     44    /// </summary>
    3945    public OrConstraintView() {
    4046      InitializeComponent();
    4147    }
     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>
    4253    public OrConstraintView(OrConstraint orConstraint)
    4354      : this() {
     
    4556    }
    4657
     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>
    4763    protected override void RemoveItemEvents() {
    4864      OrConstraint.Changed -= new EventHandler(OrConstraint_Changed);
    4965      base.RemoveItemEvents();
    5066    }
     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>
    5172    protected override void AddItemEvents() {
    5273      base.AddItemEvents();
     
    5475    }
    5576
     77    /// <summary>
     78    /// Updates all controls with the latest values.
     79    /// </summary>   
    5680    protected override void UpdateControls() {
    5781      if (OrConstraint == null) {
  • trunk/sources/HeuristicLab.Constraints/SubOperatorsConstraintAnalyser.cs

    r764 r1176  
    2828
    2929namespace HeuristicLab.Constraints {
     30  /// <summary>
     31  /// Analyzes the sub-operators for specific constraints.
     32  /// </summary>
    3033  public class SubOperatorsConstraintAnalyser {
    3134    private ICollection<IOperator> allPossibleOperators;
    3235
     36    /// <summary>
     37    /// Gets or sets all possible operators.
     38    /// </summary>
    3339    public ICollection<IOperator> AllPossibleOperators {
    3440      get { return allPossibleOperators; }
    3541      set { allPossibleOperators = value; }
    3642    }
    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>
    3850    public IList<IOperator> GetAllowedOperators(IOperator op, int childIndex) {
    3951      AndConstraint andConstraint = new AndConstraint();
     
    109121    #endregion
    110122
     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>
    111129    public IList<IOperator> GetAllowedOperators(AndConstraint constraint, int childIndex) {
    112130      IList<IOperator> allowedOperators = new List<IOperator>(allPossibleOperators);
     
    118136    }
    119137
     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>
    120144    public IList<IOperator> GetAllowedOperators(OrConstraint constraint, int childIndex) {
    121145      IList<IOperator> allowedOperators = new List<IOperator>();
     
    126150    }
    127151
     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>
    128158    public IList<IOperator> GetAllowedOperators(NotConstraint constraint, int childIndex) {
    129159      return Substract(allPossibleOperators, GetAllowedOperators(constraint.SubConstraint, childIndex));
    130160    }
    131161
     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>
    132168    public IList<IOperator> GetAllowedOperators(AllSubOperatorsTypeConstraint constraint, int childIndex) {
    133169      return Intersect(allPossibleOperators, constraint.AllowedSubOperators);
    134170    }
    135171
     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>
    136178    public IList<IOperator> GetAllowedOperators(SubOperatorTypeConstraint constraint, int childIndex) {
    137179      if (childIndex != constraint.SubOperatorIndex.Data) {
  • trunk/sources/HeuristicLab.Constraints/SubOperatorsTypeConstraint.cs

    r764 r1176  
    2929
    3030namespace 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>
    3134  public class SubOperatorTypeConstraint : ConstraintBase {
    3235    private IntData subOperatorIndex;
     36    /// <summary>
     37    /// Gets the index of the sub-operator.
     38    /// </summary>
    3339    public IntData SubOperatorIndex {
    3440      get { return subOperatorIndex; }
     
    3642
    3743    private List<IOperator> subOperators;
     44    /// <summary>
     45    /// Gets all allowed sub-operators.
     46    /// </summary>
    3847    public IList<IOperator> AllowedSubOperators {
    3948      get {
     
    4251    }
    4352
     53    ///<inheritdoc select="summary"/>
    4454    public override string Description {
    4555      get { return "The sub-operator at a specific index has to be an element of a pre-defined group."; }
    4656    }
    4757
     58    /// <summary>
     59    /// Initializes a new instance of <see cref="SubOperatorTypeConstraint"/>.
     60    /// </summary>
    4861    public SubOperatorTypeConstraint()
    4962      : base() {
     
    5265    }
    5366
     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>
    5472    public SubOperatorTypeConstraint(int index) : base() {
    5573      subOperatorIndex = new IntData(index);
     
    5775    }
    5876
     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>
    5982    public void AddOperator(IOperator op) {
    6083      if(!subOperators.Contains(op)) {
     
    6487    }
    6588
     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>
    6694    public void RemoveOperator(IOperator op) {
    6795      if(subOperators.Contains(op)) {
     
    7199    }
    72100
     101    /// <summary>
     102    /// Empties the list of sub-operators.
     103    /// </summary>
    73104    public void Clear() {
    74105      subOperators.Clear();
    75106    }
    76107
     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>
    77113    public override bool Check(IItem data) {
    78114      IOperator op = data as IOperator;
     
    85121    }
    86122
     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>
    87130    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    88131      SubOperatorTypeConstraint clone = new SubOperatorTypeConstraint();
     
    95138    }
    96139
     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>
    97145    public override IView CreateView() {
    98146      return new SubOperatorsTypeConstraintView(this);
     
    100148
    101149    #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>
    102160    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
    103161      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    113171    }
    114172
     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>
    115181    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
    116182      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/SubOperatorsTypeConstraintView.cs

    r2 r1176  
    3030
    3131namespace HeuristicLab.Constraints {
     32  /// <summary>
     33  /// The visual representation of a <see cref="SubOperatorTypeConstraint"/>.
     34  /// </summary>
    3235  public partial class SubOperatorsTypeConstraintView : ViewBase {
    3336    private SubOperatorTypeConstraint constraint;
    3437
     38    /// <summary>
     39    /// Initializes a new instance of <see cref="SubOperatorsTypeConstraintView"/>.
     40    /// </summary>
    3541    public SubOperatorsTypeConstraintView() {
    3642      InitializeComponent();
    3743    }
    3844
     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>
    3950    public SubOperatorsTypeConstraintView(SubOperatorTypeConstraint constraint) {
    4051      InitializeComponent();
  • trunk/sources/HeuristicLab.Constraints/VariableComparisonConstraint.cs

    r175 r1176  
    2828
    2929namespace HeuristicLab.Constraints {
     30  /// <summary>
     31  /// Constraint that compares variables in a <see cref="ConstrainedItemList"/>.
     32  /// </summary>
    3033  public class VariableComparisonConstraint : ConstraintBase {
    3134    private StringData leftVarName;
     35    /// <summary>
     36    /// Gets or sets the variable name of the left item to compare.
     37    /// </summary>
    3238    public StringData LeftVarName {
    3339      get { return leftVarName; }
     
    3642
    3743    private StringData rightVarName;
     44    /// <summary>
     45    /// Gets or sets the variable name of the right item to compare.
     46    /// </summary>
    3847    public StringData RightVarName {
    3948      get { return rightVarName; }
     
    4251
    4352    private IntData comparer;
     53    /// <summary>
     54    /// Gets or sets the comparer.
     55    /// </summary>
    4456    public IntData Comparer {
    4557      get { return comparer; }
     
    4759    }
    4860
     61    /// <inheritdoc select="summary"/>
    4962    public override string Description {
    5063      get {
     
    5366    }
    5467
     68    /// <summary>
     69    /// Initializes a new instance of <see cref="VariableComparisonConstraint"/>.
     70    /// </summary>
    5571    public VariableComparisonConstraint() {
    5672      leftVarName = new StringData();
     
    5975    }
    6076
     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>
    6185    public override bool Check(IItem data) {
    6286      ConstrainedItemList list = (data as ConstrainedItemList);
     
    92116    }
    93117
     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>
    94123    public override IView CreateView() {
    95124      return new VariableComparisonConstraintView(this);
     
    97126
    98127    #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>
    99135    public override object Clone(IDictionary<Guid, object> clonedObjects) {
    100136      VariableComparisonConstraint clone = new VariableComparisonConstraint();
     
    106142    }
    107143
     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>
    108154    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
    109155      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     
    117163    }
    118164
     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>
    119173    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
    120174      base.Populate(node, restoredObjects);
  • trunk/sources/HeuristicLab.Constraints/VariableComparisonConstraintView.cs

    r349 r1176  
    3131
    3232namespace HeuristicLab.Constraints {
     33  /// <summary>
     34  /// Visual representation of a <see cref="VariableComparisonConstraint"/>.
     35  /// </summary>
    3336  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>
    3442    public VariableComparisonConstraint VariableComparisonConstraint {
    3543      get { return (VariableComparisonConstraint)base.Item; }
     
    3745    }
    3846
     47    /// <summary>
     48    /// Initializes a new instance of <see cref="VariableComparisonConstraintView"/>.
     49    /// </summary>
    3950    public VariableComparisonConstraintView() {
    4051      InitializeComponent();
    4152    }
    4253
     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>
    4359    public VariableComparisonConstraintView(VariableComparisonConstraint variableComparisonConstraint)
    4460      : this() {
     
    4662    }
    4763
     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>
    4869    protected override void RemoveItemEvents() {
    4970      VariableComparisonConstraint.Changed -= new EventHandler(VariableComparisonConstraint_Changed);
     
    5172    }
    5273
     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>
    5379    protected override void AddItemEvents() {
    5480      base.AddItemEvents();
     
    6086    }
    6187
     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>
    6293    protected override void UpdateControls() {
    6394      base.UpdateControls();
  • trunk/sources/HeuristicLab.IntVector/UniformAllPositionsManipulator.cs

    r1157 r1176  
    4646
    4747    /// <summary>
    48     /// Changes all position in the given integer <paramref name="vector"/>.
     48    /// Changes all positions in the given integer <paramref name="vector"/>.
    4949    /// </summary>
    5050    /// <param name="random">A random number generator.</param>
     
    6161
    6262    /// <summary>
    63     /// Changes all position in the given integer <paramref name="vector"/>.
     63    /// Changes all positions in the given integer <paramref name="vector"/>.
    6464    /// </summary>
    6565    /// <remarks>Calls <see cref="Apply"/>.</remarks>
Note: See TracChangeset for help on using the changeset viewer.