/// <summary> /// Initializes a new instance of the <see cref="ReadOnlyBrowsingNewBlockNodeIndex"/> class. /// </summary> /// <param name="parentNode">Node containing the block list.</param> /// <param name="node">First node in the block.</param> /// <param name="propertyName">Property in <paramref name="parentNode"/> corresponding to the block list.</param> /// <param name="blockIndex">Position of the block in the block list.</param> public ReadOnlyBrowsingNewBlockNodeIndex(Node parentNode, Node node, string propertyName, int blockIndex) : base(node, propertyName, blockIndex) { Debug.Assert(!string.IsNullOrEmpty(propertyName)); Debug.Assert(blockIndex >= 0); Debug.Assert(NodeTreeHelperBlockList.IsBlockChildNode(parentNode, propertyName, blockIndex, 0, node)); ParentNode = parentNode; }
/// <summary> /// Initializes a new instance of the <see cref="ReadOnlyBrowsingExistingBlockNodeIndex"/> class. /// </summary> /// <param name="parentNode">Node containing the block list.</param> /// <param name="node">Indexed node in the block.</param> /// <param name="propertyName">Property in <paramref name="parentNode"/> corresponding to the block list.</param> /// <param name="blockIndex">Position of the block in the block list.</param> /// <param name="index">Position of the node in the block.</param> public ReadOnlyBrowsingExistingBlockNodeIndex(INode parentNode, INode node, string propertyName, int blockIndex, int index) : base(node, propertyName, blockIndex) { Debug.Assert(parentNode != null); Debug.Assert(node != null); Debug.Assert(!string.IsNullOrEmpty(propertyName)); Debug.Assert(blockIndex >= 0); Debug.Assert(index >= 0); Debug.Assert(NodeTreeHelperBlockList.IsBlockChildNode(parentNode, propertyName, blockIndex, index, node)); ParentNode = parentNode; Index = index; }
/// <summary> /// Initializes a new instance of the <see cref="ReadOnlyBrowsingExistingBlockNodeIndex"/> class. /// </summary> /// <param name="parentNode">Node containing the block list.</param> /// <param name="node">Indexed node in the block.</param> /// <param name="propertyName">Property in <paramref name="parentNode"/> corresponding to the block list.</param> /// <param name="blockIndex">Position of the block in the block list.</param> /// <param name="index">Position of the node in the block.</param> public ReadOnlyBrowsingExistingBlockNodeIndex(Node parentNode, Node node, string propertyName, int blockIndex, int index) : base(node, propertyName, blockIndex) { Contract.RequireNotNull(parentNode, out Node ParentNode); Contract.RequireNotNull(node, out Node Node); Contract.RequireNotNull(propertyName, out string PropertyName); Debug.Assert(PropertyName.Length > 0); Debug.Assert(blockIndex >= 0); Debug.Assert(index >= 0); Debug.Assert(NodeTreeHelperBlockList.IsBlockChildNode(ParentNode, PropertyName, blockIndex, index, Node)); this.ParentNode = ParentNode; Index = index; }