forked from ReClassNET/ReClass.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBaseReferenceNode.cs
More file actions
35 lines (27 loc) · 879 Bytes
/
BaseReferenceNode.cs
File metadata and controls
35 lines (27 loc) · 879 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Diagnostics.Contracts;
namespace ReClassNET.Nodes
{
public abstract class BaseReferenceNode : BaseNode
{
private readonly bool performCycleCheck;
/// <summary>Gets or sets the inner node.</summary>
public ClassNode InnerNode { get; protected set; }
/// <summary>Gets signaled if the inner node was changed.</summary>
public event NodeEventHandler InnerNodeChanged;
/// <summary>True to perform class cycle checks when changing the inner node.</summary>
public abstract bool PerformCycleCheck { get; }
/// <summary>Changes the inner node.</summary>
/// <param name="node">The new node.</param>
public void ChangeInnerNode(ClassNode node)
{
Contract.Requires(node != null);
if (InnerNode != node)
{
InnerNode = node;
InnerNodeChanged?.Invoke(this);
ParentNode?.ChildHasChanged(this);
}
}
}
}