QueryTreeBuilder

This class should be used when there is a builder for each type of node.

The type of node may be defined in 2 different ways: - by the field name, when the node implements the FieldableNode interface - by its class, it keeps checking the class and all the interfaces and classes this class implements/extends until it finds a builder for that class/interface

This class always check if there is a builder for the field name before it checks for the node class. So, field name builders have precedence over class builders.

When a builder is found for a node, it's called and the node is passed to the builder. If the returned built object is not null, it's tagged on the node using the tag QUERY_TREE_BUILDER_TAGID.

The children are usually built before the parent node. However, if a builder associated to a node is an instance of QueryTreeBuilder, the node is delegated to this builder and it's responsible to build the node and its children.

See also

Inheritors

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open override fun build(queryNode: QueryNode): Any?

Builds some kind of object from a query tree. Each node in the query tree is built using an specific builder associated to it.

Link copied to clipboard
fun setBuilder(fieldName: CharSequence, builder: QueryBuilder)

Associates a field name with a builder.

fun setBuilder(queryNodeClass: KClass<out QueryNode>, builder: QueryBuilder)

Associates a class with a builder