Skip to main content

Class AstNode

AstNode is the base type from which all other Biml language model classes derive. It provides a variety of methods and properties that are useful to the language framework.

Namespace: Varigence.Languages.Biml

Assembly: Biml.dll

C#


[AstDoNotEmitXmlSchemaType]
public abstract class AstNode : VulcanNotifyPropertyChanged, IBindableItem, IGetJsonProvider, IFrameworkItem, IValidationInfo

Inheritance System.Object AstNode

Derived AstAnnotationNode

  • Implements

    Varigence.Utility.Collections.IVulcanCollectionParent, Varigence.Utility.ComponentModel.IVulcanNotifyPropertyChanged, Varigence.Utility.ComponentModel.IPropertyChangeNotificationTarget, System.ComponentModel.INotifyPropertyChanged, Varigence.Utility.Xml.IXObjectMappingProvider, System.ComponentModel.IDataErrorInfo,

Properties

PropertiesDescription
AnnotationsThis is a collection of annotation items that can be used to specify documentation, tags, or other information. Annotations are particularly useful for storing information about nodes that can be used by BimlScript code.
BimlFileThis value specifies the BimlFile in which the Biml code that defines AstNode resides.
FriendlyTypeNameStaticGets the friendly name of the type of this node
Guid
ItemLabelGets a label that can be used to identify this node
ObjectTagThis property provides a general purpose storage mechanism for .NET objects to be associated with AstNode objects. It supplements the annotation system, which is intended for use with string-based metadata.
ParentItemThis value specifies the parent of the current node. All nodes must have a valid parent in the Biml framework, except for the root node.

Methods

MethodsDescription
AllDefinedSuccessors()Retrieves the collection of all nodes defined as a child of this or any successor node or the current node
AllDefinedSuccessors(Boolean)Retrieves the collection of all nodes defined as a child of this or any successor node or optionally the current node
AncestorDistance(IFrameworkItem)Retrieves the number of steps between this node and the nearest shared ancestor with the specified relative node.
BindingScopeBoundaries()Retrieves the permitted scope boundaries to bind references from this node.
DefinedAstNodes()Retrieves a collection of nodes that have been defined as direct children of the current node.
Duplicate()Creates a duplicate of the current node
Duplicate(IFrameworkItem)Creates a duplicate of the current node with the specified parent item
FirstChildOfType<TChild>()Gets the first defined descendant node of the specified type
FirstParent<TAstNode>()Retrieves the first parent or ancestor node of the specified type
FirstParent<TAstNode>(Type)Retrieves the first parent or ancestor node of the specified type with the specified custom attribute type
FirstThisOrParent<TAstNode>()Retrieves the first parent or ancestor node of the specified type, including this node
FirstThisOrParent<TAstNode>(Type)Retrieves the first parent or ancestor node (including this node) of the specified type with the specified custom attribute type
GetAllItemsReferencedByDefinedSuccessors()Builds a list of all items referenced by this node and its successors.
Each tuple in the returned list represents a FrameworkItemReference.
The first item is the ReferencingItem, the second item is the property name, and the third item is the ReferencedItem.
GetDefaultValue(String)Retrieves the default value for the property with the name propertyName
GetDefaultValue<T>(String)Retrieves the default value for the property with the name propertyName
GetExternalJson()Generates a JavaScript Object Notation (JSON) representation of the current node
GetJson()Generates a JavaScript Object Notation (JSON) representation of the current node
GetJson(Boolean, Boolean, Boolean, Boolean, Boolean)Generates a JavaScript Object Notation (JSON) representation of the current node
GetSchemaLocalName()Retrieves the local XML element name that corresponds to this node in Biml code.
GetXObjectName()Gets the fully qualified XML element name for this node in the code document.
IsDirectAncestor(IFrameworkItem)Retrieves a value indicating whether the specified node is a direct ancestor of this node.
RemoveFromParent()Removes this node definition from its parent
StructureEquals(Object)Compares this node to the provided object to determine if all defined children and references are equal.