abstract class AbstractMultiTree<ImplementingTree : AbstractMultiTree<ImplementingTree>> : Cloneable
(source)
AbstractMultiTree(query: Query, leaf: Edge? = null) |
var children: MutableList<ImplementingTree> |
|
val isLeaf: Boolean |
|
var leaf: Edge? |
|
val nodeRepresentation: String |
|
abstract var operator: Int |
|
abstract val operatorName: String? |
|
val query: Query |
open fun clone(): ImplementingTree
Deep clone; also clone its children recusively. |
|
open fun equals(other: Any?): Boolean |
|
fun flatten(): ImplementingTree
Delegate parse-tree-flattening to our MultiTreeFlattener. |
|
fun getChild(index: Int): ImplementingTree?
Return the child at a given index or null when not existent. |
|
fun hasChild(index: Int): Boolean
|
|
open fun hashCode(): Int |
|
fun height(): Int
Recursive function calculating the height of this tree. |
|
fun postOrderTraversal(): Sequence<ImplementingTree>
Post-order traversal. |
|
fun print(): Unit
Delegate parse-tree-printing to our MultiTreePrinter. |
|
fun setChild(index: Int, tree: ImplementingTree): Unit
Set a child at a given index in our children list. We'll replace or add when needed. |
|
fun setLeaf(label: String): Unit
Set the leaf by giving in a String which we'll convert to an Edge. |
|
open fun toString(): String |
class LogicalPlan : AbstractMultiTree<LogicalPlan>
Data-structure to represent the given user input, and physical plans. |
|
class PhysicalPlan : AbstractMultiTree<PhysicalPlan>
Representation of the physical plan. |