Changeset 11423 for branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/PortCollection.cs
- Timestamp:
- 10/08/14 03:27:24 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/PortCollection.cs
r11421 r11423 30 30 [Item("PortCollection", "Represents a collection of ports in an optimization network node.")] 31 31 public class PortCollection : NamedItemCollection<IPort> { 32 [Storable]33 private INode node;34 public INode Node {35 get { return node; }36 }37 38 32 [StorableConstructor] 39 33 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) { } 59 38 60 39 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 }86 40 } 87 41 }
Note: See TracChangeset
for help on using the changeset viewer.