Node<TNode> Class ​
Definition ​
Abstract base class for nodes in a tree.
c#
public abstract class Node<TNode>
where TNode : Node<TNode>Type Parameters ​
| Name | Description |
|---|---|
TNode | Self generic node parameter. |
Constructors ​
| Name | Description |
|---|---|
Node() | Initialises a new instance of the Node<TNode> class. |
Node(IEnumerable<TNode>) | Initialises a new instance of the Node<TNode> class with the specified children. |
Properties ​
| Name | Description |
|---|---|
Ancestors | Lazily enumerates over the ancestors of this node, that is, the Parent, grandparent, great-grandparent and all remaining ancestors up to the root node. |
Children | The children of this node. |
Descendants | Enumerates all descendants of this node in depth first pre-order. |
Errors | The Messages with Level Error associated with this node. |
HasChildren | Returns true if this node has any Children, false otherwise. |
HasErrors | Returns true if this node has any Messages with Level Error, false otherwise. |
HasInfos | Returns true if this node has any Messages with Level Info, false otherwise. |
HasMessages | Returns true if this node has any Messages, false otherwise. |
HasNextSibling | Returns true if this node has a NextSibling, false otherwise. |
HasParent | Returns true if this node has a Parent, false otherwise. Nodes will not have parents if they are the root node, or they have just been constructed and not yet added to a parent. |
HasPreviousSibling | Returns true if this node has a PreviousSibling, false otherwise. |
HasWarnings | Returns true if this node has any Messages with Level Warning, false otherwise. |
IndexInParent | The index of this node in the Parent or -1 if this node has no Parent. |
Infos | The Messages with Level Info associated with this node. |
IsFirstChild | true if this node is the first child in Parent, false if not or if the node has no Parent. |
IsLastChild | true if this node is the last child in Parent, false if not or if the node has no Parent. |
Messages | The Messages associated with this node. |
NextSibling | The next sibling, that is, the child from the same Parent at the next positional index. Returns null if this node is the last child. |
NextSiblings | Lazily enumerates over the next siblings, that is, the children from the same Parent at subsequent positional indices in ascending index order. |
Parent | The parent of this node. |
PreviousSibling | The previous sibling, that is, the child from the same Parent at the previous positional index. Returns null if this node is the first child. |
PreviousSiblings | Lazily enumerates over the previous siblings, that is, the children from the same Parent at precedent positional indices in descending index order. |
Root | The root node, that is, the highest parent above this node. Returns this node if it is the root, that is, it has no parents. |
SourcePosition | The position of the node in the source code. |
ThisAndAncestors | Lazily enumerates over this node and its Ancestors, that is, this node, the Parent, grandparent, great-grandparent and all remaining ancestors up to the root node. |
ThisAndDescendants | Enumerates this node then all descendants of this node in depth first pre-order. |
ThisAndDescendantsHaveErrors | Returns true if this node or any of its descendants have any Messages with Level Error, false otherwise. |
ThisAndDescendantsHaveInfos | Returns true if this node or any of its descendants have any Messages with Level Info, false otherwise. |
ThisAndDescendantsHaveMessages | Returns true if this node or any of its descendants have any Messages, false otherwise. |
ThisAndDescendantsHaveWarnings | Returns true if this node or any of its descendants have any Messages with Level Warning, false otherwise. |
ThisAndDescendantsWithErrors | Lazily enumerates over this node and its descendants returning only those that have Messages with Level Error. |
ThisAndDescendantsWithInfos | Lazily enumerates over this node and its descendants returning only those that have Messages with Level Info. |
ThisAndDescendantsWithMessages | Lazily enumerates over this node and its descendants returning only those that have Messages. |
ThisAndDescendantsWithWarnings | Lazily enumerates over this node and its descendants returning only those that have Messages with Level Warning. |
ThisAndNextSiblings | Lazily enumerates over this node then the next siblings, that is, the children from the same Parent at subsequent positional indices in ascending index order. |
ThisAndPreviousSiblings | Lazily enumerates over this node then the previous siblings, that is, the children from the same Parent at precedent positional indices in descending index order. |
Warnings | The Messages with Level Warning associated with this node. |
Methods ​
| Name | Description |
|---|---|
AddError(String) | Adds a Message with Level Error and the specified text to this node. |
AddError(String, String) | Adds a Message with Level Error and the specified text to this node. |
AddInfo(String) | Adds a Message with Level Info and the specified text to this node. |
AddInfo(String, String) | Adds a Message with Level Info and the specified text to this node. |
AddMessage(Message) | Adds a Message to this node. |
AddMessage(MessageLevel, String) | Adds a Message with the specified Level and Text to this node. |
AddMessage(MessageLevel, String, String) | Adds a Message with the specified Level, Code and Text to this node. |
AddNextSibling(TNode) | Adds the specified node as the NextSibling to this node. Existing next siblings will be moved on index to the right to accommodate. |
AddPreviousSibling(TNode) | Adds the specified node as the PreviousSibling to this node. This and any next siblings will be moved one index to the right to accommodate. |
AddWarning(String) | Adds a Message with Level Warning and the specified text to this node. |
AddWarning(String, String) | Adds a Message with Level Warning and the specified text to this node. |
AncestorsOfType<TAncestor>() | Lazily enumerates over this node and its Ancestors, returning only ancestors of the specified type. |
MoveTo(TNode) | Moves this node to a new parent. |
RemoveFromParent() | Removes this node from its Parent. |
RemoveNextSibling() | Removes the NextSibling from Parent if it exists. |
RemovePreviousSibling() | Removes the PreviousSibling from Parent if it exists. |
ReplaceWith(Node<TNode>) | Removes this node from it's parent and puts another node in its place. |
ThisAnd(IEnumerable<TNode>) | Lazily enumerates over this node and then the specified enumeration of nodes. |
ThisAndAncestorsOfType<TAncestor>() | Lazily enumerates over the Ancestors of this node, returning only ancestors of the specified type. |
ToString() | Returns a string that represents the current node. Defaults to the name of the type of the node. |