Skip to content

editorGlobalsTree

Class: Tree ‹ElementType

This is a simple implementation of a tree. It does not enforce any constraints.

Type parameters

ElementType

Hierarchy

  • Tree

Index

Constructors

Properties

Methods

Constructors

constructor

+ new Tree(root?: ElementType): Tree

Defined in src/util/Tree.ts:106

Parameters:

Name Type
root? ElementType

Returns: Tree

Properties

Private elementMap

elementMap: Map‹ElementType, ITreeElement‹ElementType›› = new Map>()

Defined in src/util/Tree.ts:106


Private root

root: ITreeElement‹ElementType›

Defined in src/util/Tree.ts:105

Methods

Private _traverseDepthFirst

_traverseDepthFirst(treeElement: ITreeElement‹ElementType›, callback: function, depth: number): void

Defined in src/util/Tree.ts:219

Parameters:

treeElement: ITreeElement‹ElementType›

callback: function

▸ (element: ElementType, depth: number): void

Parameters:

Name Type
element ElementType
depth number

depth: number

Returns: void


addChild

addChild(parentElement: ElementType, element: ElementType): void

Defined in src/util/Tree.ts:139

Parameters:

Name Type
parentElement ElementType
element ElementType

Returns: void


getChildren

getChildren(element: any): ElementType[]

Defined in src/util/Tree.ts:194

Parameters:

Name Type
element any

Returns: ElementType[]


getParent

getParent(element: any): ElementType

Defined in src/util/Tree.ts:181

Parameters:

Name Type
element any

Returns: ElementType


getRoot

getRoot(): ElementType

Defined in src/util/Tree.ts:125

Returns: ElementType


has

has(element: ElementType): boolean

Defined in src/util/Tree.ts:135

Parameters:

Name Type
element ElementType

Returns: boolean


isEmpty

isEmpty(): boolean

Defined in src/util/Tree.ts:131

Returns: boolean


remove

remove(element: ElementType): void

Defined in src/util/Tree.ts:158

Parameters:

Name Type
element ElementType

Returns: void


setRoot

setRoot(element: ElementType): void

Defined in src/util/Tree.ts:114

Parameters:

Name Type
element ElementType

Returns: void


traverseBreadthFirst

traverseBreadthFirst(callback: function): void

Defined in src/util/Tree.ts:206

Parameters:

callback: function

▸ (element: ElementType, depth: number): void

Parameters:

Name Type
element ElementType
depth number

Returns: void


traverseDepthFirst

traverseDepthFirst(callback: function): void

Defined in src/util/Tree.ts:202

Parameters:

callback: function

▸ (element: ElementType, depth: number): void

Parameters:

Name Type
element ElementType
depth number

Returns: void


Static findCommonNodeIndexFromPaths

findCommonNodeIndexFromPathsT›(path1: T[], path2: T[], comparator: function): number

Defined in src/util/Tree.ts:56

Given two paths in a tree, finds last common node, where the two paths meet. Returns the indices of the found node or -1 if there is no common element.

Example 1:

s: Start path1 and path2
e1: End path1
e2: End path2
O: Common node
*: Node

   s
   *
   O
  * *
 e1  *
      e2

Example 2:

  s
  *
  O and e1
  *
  e2

Example 3:

 s1    s2
 *     *
 *     *
 e1    e2

 O = -1

Type parameters:

T

Parameters:

path1: T[]

first path

path2: T[]

second path

Default value comparator: function= (t1, t2) => t1 === t2

optional function used to compare if two nodes are equal

▸ (t1: T, t2: T): boolean

Parameters:

Name Type
t1 T
t2 T

Returns: number

index of node in path1 and path2 or -1 if there is no common element


Static traverseToRoot

traverseToRootT›(start: T, parentOf: function): T[]

Defined in src/util/Tree.ts:86

Path from given node to root. Includes given node.

throws if a cyclic dependency is detected

Type parameters:

T

Parameters:

start: T

node to traverse from

parentOf: function

function which returns parent of given node, or null if node is at root.

▸ (child: T): T | null

Parameters:

Name Type
child T

Returns: T[]