@@ -18,12 +18,6 @@ namespace Xtensive.Orm.Model
18
18
public class NodeCollection < TNode > : CollectionBaseSlim < TNode >
19
19
where TNode : Node
20
20
{
21
- [ NonSerialized , DebuggerBrowsable ( DebuggerBrowsableState . Never ) ]
22
- private EventHandler < ChangeNotifierEventArgs > itemChangedHandler ;
23
-
24
- [ NonSerialized , DebuggerBrowsable ( DebuggerBrowsableState . Never ) ]
25
- private EventHandler < ChangeNotifierEventArgs > itemChangingHandler ;
26
-
27
21
protected IDictionary < string , TNode > NameIndex ;
28
22
29
23
/// <summary>
@@ -63,7 +57,6 @@ public override void Add(TNode item)
63
57
try {
64
58
base . Add ( item ) ;
65
59
NameIndex . Add ( item . Name , item ) ;
66
- TrySubscribe ( item ) ;
67
60
}
68
61
catch ( ArgumentException e ) {
69
62
throw new InvalidOperationException (
@@ -88,7 +81,6 @@ public override void AddRange(IEnumerable<TNode> nodes)
88
81
public override bool Remove ( TNode item )
89
82
{
90
83
if ( base . Remove ( item ) ) {
91
- TryUnsubscribe ( item ) ;
92
84
NameIndex . Remove ( item . Name ) ;
93
85
return true ;
94
86
}
@@ -99,9 +91,6 @@ public override bool Remove(TNode item)
99
91
public override void Clear ( )
100
92
{
101
93
EnsureNotLocked ( ) ;
102
- foreach ( var item in this ) {
103
- TryUnsubscribe ( item ) ;
104
- }
105
94
base . Clear ( ) ;
106
95
NameIndex . Clear ( ) ;
107
96
}
@@ -163,43 +152,6 @@ protected virtual string GetExceptionMessage(string key)
163
152
return string . Format ( Strings . ExItemWithKeyXWasNotFound , key ) ;
164
153
}
165
154
166
- /// <summary>
167
- /// Tries to subscribe the collection on
168
- /// change notifications from the specified item.
169
- /// </summary>
170
- /// <param name="item">The item to try.</param>
171
- protected void TrySubscribe ( TNode item )
172
- {
173
- if ( item is IChangeNotifier notifier ) {
174
- notifier . Changing += itemChangingHandler ;
175
- notifier . Changed += itemChangedHandler ;
176
- }
177
- }
178
-
179
- /// <summary>
180
- /// Tries to unsubscribe the collection from
181
- /// change notifications from the specified item.
182
- /// </summary>
183
- /// <param name="item">The item to try.</param>
184
- protected void TryUnsubscribe ( TNode item )
185
- {
186
- if ( item is IChangeNotifier notifier ) {
187
- notifier . Changing -= itemChangingHandler ;
188
- notifier . Changed -= itemChangedHandler ;
189
- }
190
- }
191
-
192
- protected virtual void OnItemChanging ( object sender , ChangeNotifierEventArgs e )
193
- {
194
- NameIndex . Remove ( ( ( TNode ) sender ) . Name ) ;
195
- }
196
-
197
- protected virtual void OnItemChanged ( object sender , ChangeNotifierEventArgs e )
198
- {
199
- var tNode = ( TNode ) sender ;
200
- NameIndex . Add ( tNode . Name , tNode ) ;
201
- }
202
-
203
155
/// <inheritdoc/>
204
156
public override void Lock ( bool recursive )
205
157
{
@@ -230,8 +182,6 @@ protected NodeCollection(Node owner, string name, Dictionary<string, TNode> name
230
182
NameIndex = nameIndex ;
231
183
Owner = owner ;
232
184
Name = name ;
233
- itemChangingHandler = OnItemChanging ;
234
- itemChangedHandler = OnItemChanged ;
235
185
}
236
186
237
187
// Type initializer
0 commit comments