Skip to content

Node<TNode> Class

Definition

Abstract base class for nodes in a tree.

public abstract class Node<TNode>
   where TNode : Node<TNode>

View source

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, i.e. the Parent, grandparent, great-grandparent and so on up to the root node.
Children The children of this node.
Descendents Enumerates all descendents 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, i.e. 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, i.e. the children from the same Parent at subsequent positional indices in ascending index order.
Parent The parent of this node.
PreviousSibling The previous sibling, i.e. 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, i.e. the children from the same Parent at precedent positional indices in descending index order.
Root The root node, i.e. the highest parent above this node. Returns this node if it is the root, i.e. it has no parents.
SourcePosition The position of the node in the source code.
ThisAndAncestors Lazily enumerates over this node and its Ancestors, i.e. this node, the Parent, grandparent, great-grandparent and so on up to the root node.
ThisAndDescendents Enumerates this node then all descendents of this node in depth first pre-order.
ThisAndDescendentsHaveErrors Returns true if this node or any of its descendents have any Messages with Level Error, false otherwise.
ThisAndDescendentsHaveInfos Returns true if this node or any of its descendents have any Messages with Level Info, false otherwise.
ThisAndDescendentsHaveMessages Returns true if this node or any of its descendents have any Messages, false otherwise.
ThisAndDescendentsHaveWarnings Returns true if this node or any of its descendents have any Messages with Level Warning, false otherwise.
ThisAndDescendentsWithErrors Lazily enumerates over this node and its descendents returning only those that have Messages with Level Error.
ThisAndDescendentsWithInfos Lazily enumerates over this node and its descendents returning only those that have Messages with Level Info.
ThisAndDescendentsWithMessages Lazily enumerates over this node and its descendents returning only those that have Messages.
ThisAndDescendentsWithWarnings Lazily enumerates over this node and its descendents returning only those that have Messages with Level Warning.
ThisAndNextSiblings Lazily enumerates over this node then the next siblings, i.e. the children from the same Parent at subsequent positional indices in ascending index order.
ThisAndPreviousSiblings Lazily enumerates over this node then the previous siblings, i.e. 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.