Castle.MicroKernel.SubSystems.Naming.BinaryTreeComponentName.PromoteNode C# (CSharp) Method

PromoteNode() private method

private PromoteNode ( TreeNode oldNode, TreeNode promoted ) : void
oldNode TreeNode
promoted TreeNode
return void
		private void PromoteNode(TreeNode oldNode, TreeNode promoted)
		{
			if (promoted.Right != null || promoted.Left != null)
				throw new InvalidOperationException("promoted node can not have child nodes, remove node from tree before promoting");

			promoted.Right = oldNode.Right;
			promoted.Left = oldNode.Left;

			if (root == oldNode)
				root = promoted;
			else
				ReplaceNode(oldNode, promoted);
		}