Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/08/14 03:27:24 (10 years ago)
Author:
swagner
Message:

#2205: Worked on optimization networks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/PortCollection.cs

    r11421 r11423  
    3030  [Item("PortCollection", "Represents a collection of ports in an optimization network node.")]
    3131  public class PortCollection : NamedItemCollection<IPort> {
    32     [Storable]
    33     private INode node;
    34     public INode Node {
    35       get { return node; }
    36     }
    37 
    3832    [StorableConstructor]
    3933    protected PortCollection(bool deserializing) : base(deserializing) { }
    40     protected PortCollection(PortCollection original, Cloner cloner)
    41       : base(original, cloner) {
    42       if (!cloner.ClonedObjectRegistered(original.node))
    43         // NOTE: cannot clone port collection alone if referenced node is not cloned
    44         throw new InvalidOperationException("Node of port collection is not cloned.");
    45       node = cloner.Clone(original.node);
    46     }
    47     public PortCollection(INode node)
    48       : base() {
    49       this.node = node;
    50     }
    51     public PortCollection(INode node, int capacity)
    52       : base(capacity) {
    53       this.node = node;
    54     }
    55     public PortCollection(INode node, IEnumerable<IPort> collection)
    56       : base(collection) {
    57       this.node = node;
    58     }
     34    protected PortCollection(PortCollection original, Cloner cloner) : base(original, cloner) { }
     35    public PortCollection() : base() { }
     36    public PortCollection(INode node, int capacity) : base(capacity) { }
     37    public PortCollection(INode node, IEnumerable<IPort> collection) : base(collection) { }
    5938
    6039    public override IDeepCloneable Clone(Cloner cloner) { return new PortCollection(this, cloner); }
    61 
    62     protected override void OnItemsAdded(IEnumerable<IPort> items) {
    63       foreach (var p in items)
    64         p.Node = node;
    65       base.OnItemsAdded(items);
    66     }
    67     protected override void OnItemsRemoved(IEnumerable<IPort> items) {
    68       foreach (var p in items)
    69         p.Node = null;
    70       base.OnItemsRemoved(items);
    71     }
    72     protected override void OnItemsReplaced(IEnumerable<IPort> items, IEnumerable<IPort> oldItems) {
    73       foreach (var p in oldItems)
    74         p.Node = null;
    75       foreach (var p in items)
    76         p.Node = node;
    77       base.OnItemsReplaced(items, oldItems);
    78     }
    79     protected override void OnCollectionReset(IEnumerable<IPort> items, IEnumerable<IPort> oldItems) {
    80       foreach (var p in oldItems)
    81         p.Node = null;
    82       foreach (var p in items)
    83         p.Node = node;
    84       base.OnCollectionReset(items, oldItems);
    85     }
    8640  }
    8741}
Note: See TracChangeset for help on using the changeset viewer.