## Uses of Interface
org.eclipse.rdf4j.query.algebra.QueryModelNode

- Packages that use QueryModelNode
  Package | Description
  --- | ---
  org.eclipse.rdf4j.federated.algebra |
  org.eclipse.rdf4j.federated.optimizer |
  org.eclipse.rdf4j.query.algebra | Abstract Query Algebra model.
  org.eclipse.rdf4j.query.algebra.evaluation.impl |
  org.eclipse.rdf4j.query.algebra.helpers |
  org.eclipse.rdf4j.query.parser.sparql | The rdf4j SPARQL 1.1 parser.
  org.eclipse.rdf4j.sail.lucene | A Sail implementation that supports full-text indexing via the Lucene API.

- - ### Uses of QueryModelNode in org.eclipse.rdf4j.federated.algebra

    Subinterfaces of QueryModelNode in org.eclipse.rdf4j.federated.algebra
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ExclusiveTupleExpr` | Interface representing nodes that can exclusively be evaluated at a single `StatementSource`.
    `interface` | `ExclusiveTupleExprRenderer` | A specialization of `ExclusiveTupleExpr` which provides definitions how the expressions can be rendered to a sub-query.
    `interface` | `FedXTupleExpr` | Interface marking known FedX algebra nodes.
    `interface` | `FilterTuple` | Expressions implementing this interface can apply some `FilterValueExpr` during evaluation.
    `interface` | `FilterValueExpr` | Interface to indicate filter expressions.
    `interface` | `StatementTupleExpr` | Interface for any expression that can be evaluated

    Classes in org.eclipse.rdf4j.federated.algebra that implement QueryModelNode
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BoundFiltersNode` | A `QueryModelNode` for printing the bound filter vars (e.g.
    `class` | `CheckStatementPattern` | A statement pattern with no free variables when provided with some particular BindingSet in evaluate.
    `class` | `ConjunctiveFilterExpr` | ConjunctiveFilterExpr maintains a list of conjunctive (i.e.
    `class` | `EmptyNJoin` | Algebra construct representing an empty join.
    `class` | `EmptyNUnion` | Algebra construct representing an empty union.
    `class` | `EmptyStatementPattern` | EmptyStatementPattern represents a statement that cannot produce any results for the registered endpoints.
    `class` | `ExclusiveArbitraryLengthPath` | An `ArbitraryLengthPath` node which can be evaluated at a single node.
    `class` | `ExclusiveGroup` | Represents a group of `ExclusiveTupleExpr` that can only produce results at a single endpoint, the `StatementSource`.
    `class` | `ExclusiveStatement` | Represents a StatementPattern that can only produce results at a single endpoint, the owner.
    `class` | `FederatedDescribeOperator` | Specialized `DescribeOperator` Node for maintaining `QueryInfo`.
    `class` | `FedXLeftJoin` | Abstraction of `LeftJoin` to maintain the `QueryInfo`.
    `class` | `FedXService` |
    `class` | `FedXStatementPattern` | Base class providing all common functionality for FedX StatementPatterns
    `class` | `FilterExpr` | FilterExpr maintains information for a particular FILTER expression.
    `class` | `NJoin` | A tuple expression that represents an nary-Join.
    `class` | `NTuple` | Base class for any nary-tuple expression
    `class` | `NUnion` | A tuple expression that represents an nary-Union.
    `class` | `PassThroughTupleExpr` | Marker `TupleExpr` that is used from `FedXTupleQuery.evaluate(TupleQueryResultHandler)` to allow for passing through of results to the handler.
    `class` | `PrecompiledQueryNode` | Node representing a precompiled query.
    `class` | `SingleSourceQuery` | A query which has a single relevant source.
    `class` | `StatementSource` | A structure representing a relevant source for some expression.
    `class` | `StatementSourcePattern` | Represents statements that can produce results at a some particular endpoints, the statement sources.
    `class` | `TrueStatementPattern` | A TrueStatementPattern represents a stmt with no free variables which in addition is available at one of the provided sources.

    Methods in org.eclipse.rdf4j.federated.algebra that return QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `QueryModelNode` | CheckStatementPattern.`getParentNode()` |

    Methods in org.eclipse.rdf4j.federated.algebra with parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | CheckStatementPattern.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | NTuple.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | CheckStatementPattern.`replaceWith​(QueryModelNode replacement)` |
    `void` | CheckStatementPattern.`setParentNode​(QueryModelNode parent)` |

  - ### Uses of QueryModelNode in org.eclipse.rdf4j.federated.optimizer

    Methods in org.eclipse.rdf4j.federated.optimizer with parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | FilterOptimizer.FilterExprInsertVisitor.`meetOther​(QueryModelNode node)` |
    `void` | LimitOptimizer.`meetOther​(QueryModelNode node)` |
    `void` | StatementGroupAndJoinOptimizer.`meetOther​(QueryModelNode node)` |

  - ### Uses of QueryModelNode in org.eclipse.rdf4j.query.algebra

    Subinterfaces of QueryModelNode in org.eclipse.rdf4j.query.algebra
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `AggregateOperator` | An operator that returns aggregates values.
    `interface` | `TupleExpr` | An expression that evaluates to RDF tuples.
    `interface` | `UpdateExpr` | An expression that executes an update.
    `interface` | `ValueExpr` | An expressions that evaluates to Value objects.

    Classes in org.eclipse.rdf4j.query.algebra that implement QueryModelNode
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractAggregateOperator` | Base class for shared functionality of aggregate operators (e.g.
    `class` | `AbstractQueryModelNode` | Base implementation of `QueryModelNode`.
    `class` | `Add` |
    `class` | `AggregateOperatorBase` | Deprecated. since 2.0.
    `class` | `And` | A boolean AND operator operating on two boolean expressions.
    `class` | `ArbitraryLengthPath` | A tuple expression that matches a path of arbitrary length against an RDF graph.
    `class` | `Avg` | The AVG operator as defined in http://www.w3.org/TR/sparql11-query/#aggregates.
    `class` | `BinaryTupleOperator` | An abstract superclass for binary tuple operators which, by definition, has two arguments.
    `class` | `BinaryValueOperator` | An abstract superclass for binary value operators which, by definition, has two arguments.
    `class` | `BindingSetAssignment` |
    `class` | `BNodeGenerator` | A BNode generator, which generates a new BNode each time it needs to supply a value.
    `class` | `Bound` | The BOUND function, as defined in SPARQL Query Language for RDF; checks if a variable is bound.
    `class` | `Clear` |
    `class` | `Coalesce` |
    `class` | `Compare` | A comparison between two values.
    `class` | `CompareAll` |
    `class` | `CompareAny` |
    `class` | `CompareSubQueryValueOperator` |
    `class` | `Copy` |
    `class` | `Count` |
    `class` | `Create` |
    `class` | `Datatype` | The DATATYPE function, as defined in SPARQL Query Language for RDF.
    `class` | `DeleteData` |
    `class` | `DescribeOperator` |
    `class` | `Difference` | The MINUS set operator, which returns the result of the left tuple expression, except for the results that are also returned by the right tuple expression.
    `class` | `Distinct` |
    `class` | `EmptySet` | A tuple expression that contains zero solutions.
    `class` | `Exists` | Checks whether the wrapped Query produces any results.
    `class` | `Extension` | An extension operator that can be used to add bindings to solutions whose values are defined by `value expressions`.
    `class` | `ExtensionElem` |
    `class` | `Filter` | The FILTER operator, as defined in SPARQL Query Language for RDF.
    `class` | `FunctionCall` | A call to an (external) function that operates on zero or more arguments.
    `class` | `Group` | A tuple operator that groups tuples that have a specific set of equivalent variable bindings, and that can apply aggregate functions on the grouped results.
    `class` | `GroupConcat` | The GROUP_CONCAT operator as defined in http://www.w3.org/TR/sparql11-query/#aggregates
    `class` | `GroupElem` | A tuple operator that groups tuples that have a specific set of equivalent variable bindings, and that can apply aggregate functions on the grouped results.
    `class` | `If` | The IF function, as defined in SPARQL 1.1 Query.
    `class` | `In` | Checks whether a certain value is contained in a set of results produced by a query.
    `class` | `InsertData` |
    `class` | `Intersection` | The INTERSECT set operator, which returns the intersection of the result sets of two tuple expressions.
    `class` | `IRIFunction` | The IRI function, as defined in SPARQL 1.1 Query Language for RDF.
    `class` | `IsBNode` |
    `class` | `IsLiteral` |
    `class` | `IsNumeric` | IsNumeric - Boolean operator determining if the supplied expression represents a numeric value.
    `class` | `IsResource` |
    `class` | `IsURI` |
    `class` | `Join` | A natural join between two tuple expressions.
    `class` | `Label` | The LABEL function, which selects the label of literals.
    `class` | `Lang` | The LANG function, as defined in SPARQL Query Language for RDF.
    `class` | `LangMatches` | Checks whether a language tag (e.g.
    `class` | `LeftJoin` | The LeftJoin operator, as defined in SPARQL Query Language for RDF.
    `class` | `Like` | Deprecated, for removal: This API element is subject to removal in a future version.
    `class` | `ListMemberOperator` | ValueOperator that verifies if the first of its arguments occurs in any of the subsequent arguments.
    `class` | `Load` |
    `class` | `LocalName` | The LOCAL NAME function, which selects the local name of URIs.
    `class` | `MathExpr` | A mathematical expression consisting an operator and two arguments.
    `class` | `Max` |
    `class` | `Min` |
    `class` | `Modify` |
    `class` | `Move` |
    `class` | `MultiProjection` | A "multi-projection" that can produce multiple solutions from a single set of bindings.
    `class` | `Namespace` | The NAMESPACE function, which selects the namespace of URIs.
    `class` | `NAryValueOperator` | An abstract superclass for N-ary value operators.
    `class` | `Not` | A boolean NOT operator operating on a boolean expressions.
    `class` | `Or` | A boolean OR operator operating on two boolean expressions.
    `class` | `Order` | An order operator that can be used to order bindings as specified by a set of value expressions.
    `class` | `OrderElem` |
    `class` | `Projection` | A generalized projection (allowing the bindings to be renamed) on a tuple expression.
    `class` | `ProjectionElem` |
    `class` | `ProjectionElemList` |
    `class` | `QueryModelNodeBase` | Deprecated. since 2.0.
    `class` | `QueryRoot` | A semantics-less query model node that is used as the root of query model trees.
    `class` | `Reduced` |
    `class` | `Regex` | Compares the string representation of a value expression to a pattern.
    `class` | `SameTerm` | Checks RDF term equality.
    `class` | `Sample` | The SAMPLE operator as defined in http://www.w3.org/TR/sparql11-query/#aggregates
    `class` | `Service` | The SERVICE keyword as defined in SERVICE definition.
    `class` | `SingletonSet` | A tuple expression that contains exactly one solution with zero bindings.
    `class` | `Slice` | The SLICE operator, as defined in SPARQL Query Language for RDF.
    `class` | `StatementPattern` | A tuple expression that matches a statement pattern against an RDF graph.
    `class` | `Str` | The STR function, as defined in SPARQL Query Language for RDF; returns the label of literals or the string representation of URIs.
    `class` | `SubQueryValueOperator` |
    `class` | `Sum` | The SUM operator as defined in http://www.w3.org/TR/sparql11-query/#aggregates
    `class` | `TripleRef` | Triple lookup reference.
    `class` | `TupleFunctionCall` | A call to a TupleFunction.
    `class` | `UnaryTupleOperator` | An abstract superclass for unary tuple operators which, by definition, has one argument.
    `class` | `UnaryValueOperator` | An abstract superclass for unary value operators which, by definition, has one argument.
    `class` | `Union` | The UNION set operator, which return the union of the result sets of two tuple expressions.
    `class` | `ValueConstant` | A ValueExpr with a constant value.
    `class` | `ValueExprTripleRef` |
    `class` | `Var` | A variable that can contain a Value.
    `class` | `ZeroLengthPath` | A tuple expression that matches a path of length zero against an RDF graph.

    Methods in org.eclipse.rdf4j.query.algebra with type parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected <T extends QueryModelNode> boolean` | AbstractQueryModelNode.`replaceNodeInList​(List<T> list, QueryModelNode current, QueryModelNode replacement)` |

    Methods in org.eclipse.rdf4j.query.algebra that return QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `QueryModelNode` | QueryModelNode.`clone()` | Returns a (deep) clone of this query model node.
    `QueryModelNode` | AbstractQueryModelNode.`getParentNode()` |
    `QueryModelNode` | QueryModelNode.`getParentNode()` | Gets the node's parent.
    `QueryModelNode` | QueryRoot.`getParentNode()` |

    Methods in org.eclipse.rdf4j.query.algebra with parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | QueryModelVisitor.`meetOther​(QueryModelNode node)` |
    `void` | AbstractQueryModelNode.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` | Default implementation of `replaceChildNode(QueryModelNode, QueryModelNode)` that throws an `IllegalArgumentException` indicating that current is not a child node of this node.
    `void` | Add.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | ArbitraryLengthPath.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | BinaryTupleOperator.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | BinaryValueOperator.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Bound.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Clear.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | CompareSubQueryValueOperator.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Copy.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Create.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Extension.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | ExtensionElem.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Filter.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | FunctionCall.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Group.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | GroupElem.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | If.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | LeftJoin.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Load.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Modify.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Move.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | MultiProjection.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | NAryValueOperator.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Order.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | OrderElem.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | Projection.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | ProjectionElemList.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | QueryModelNode.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` | Replaces one of the child nodes with a new node.
    `void` | Service.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | StatementPattern.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | SubQueryValueOperator.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | TripleRef.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | TupleFunctionCall.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | UnaryTupleOperator.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | UnaryValueOperator.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `void` | ZeroLengthPath.`replaceChildNode​(QueryModelNode current, QueryModelNode replacement)` |
    `protected <T extends QueryModelNode> boolean` | AbstractQueryModelNode.`replaceNodeInList​(List<T> list, QueryModelNode current, QueryModelNode replacement)` |
    `void` | AbstractQueryModelNode.`replaceWith​(QueryModelNode replacement)` | Default implementation of `replaceWith(QueryModelNode)` that throws an `IllegalArgumentException` indicating that current is not a child node of this node.
    `void` | QueryModelNode.`replaceWith​(QueryModelNode replacement)` | Substitutes this node with a new node in the query model tree.
    `void` | AbstractQueryModelNode.`setParentNode​(QueryModelNode parent)` |
    `void` | QueryModelNode.`setParentNode​(QueryModelNode parent)` | Sets the node's parent.
    `void` | QueryRoot.`setParentNode​(QueryModelNode parent)` |

  - ### Uses of QueryModelNode in org.eclipse.rdf4j.query.algebra.evaluation.impl

    Methods in org.eclipse.rdf4j.query.algebra.evaluation.impl with parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected long` | StrictEvaluationStrategy.`getLimit​(QueryModelNode node)` | Returns the limit of the current variable bindings before any further projection.
    `protected boolean` | StrictEvaluationStrategy.`isReducedOrDistinct​(QueryModelNode node)` |
    `protected void` | EvaluationStatistics.CardinalityCalculator.`meetNode​(QueryModelNode node)` |
    `protected void` | FilterOptimizer.FilterRelocator.`meetNode​(QueryModelNode node)` |
    `protected void` | TupleFunctionEvaluationStatistics.TupleFunctionCardinalityCalculator.`meetNode​(QueryModelNode node)` |

  - ### Uses of QueryModelNode in org.eclipse.rdf4j.query.algebra.helpers

    Methods in org.eclipse.rdf4j.query.algebra.helpers with parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | AbstractQueryModelVisitor.`meetNode​(QueryModelNode node)` | Method called by all of the other meet methods that are not overridden in subclasses.
    `protected void` | BGPCollector.`meetNode​(QueryModelNode node)` |
    `protected void` | QueryModelNodeReplacer.`meetNode​(QueryModelNode node)` | Deprecated.
    `protected void` | QueryModelTreePrinter.`meetNode​(QueryModelNode node)` |
    `protected void` | QueryModelTreeToGenericPlanNode.`meetNode​(QueryModelNode node)` |
    `void` | AbstractQueryModelVisitor.`meetOther​(QueryModelNode node)` |
    `static String` | QueryModelTreePrinter.`printTree​(QueryModelNode node)` |
    `static List<StatementPattern>` | StatementPatternCollector.`process​(QueryModelNode node)` |
    `static Set<String>` | VarNameCollector.`process​(QueryModelNode node)` |
    `void` | QueryModelNodeReplacer.`removeChildNode​(QueryModelNode parent, QueryModelNode former)` | Deprecated.
    `void` | QueryModelNodeReplacer.`removeNode​(QueryModelNode former)` | Deprecated.
    `void` | QueryModelNodeReplacer.`replaceChildNode​(QueryModelNode parent, QueryModelNode former, QueryModelNode replacement)` | Deprecated.
    `void` | QueryModelNodeReplacer.`replaceNode​(QueryModelNode former, QueryModelNode replacement)` | Deprecated.

    Constructors in org.eclipse.rdf4j.query.algebra.helpers with parameters of type QueryModelNode
    Constructor | Description
    --- | ---
    `QueryModelTreeToGenericPlanNode​(QueryModelNode topTupleExpr)` |

  - ### Uses of QueryModelNode in org.eclipse.rdf4j.query.parser.sparql

    Methods in org.eclipse.rdf4j.query.parser.sparql with parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | TripleRefCollector.`meetOther​(QueryModelNode node)` |
    `static Map<String,​Object>` | TripleRefCollector.`process​(QueryModelNode node)` |

  - ### Uses of QueryModelNode in org.eclipse.rdf4j.sail.lucene

    Methods in org.eclipse.rdf4j.sail.lucene that return QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `QueryModelNode` | DistanceQuerySpec.`getParentQueryModelNode()` |
    `QueryModelNode` | GeoRelationQuerySpec.`getParentQueryModelNode()` |
    `QueryModelNode` | QuerySpec.`getParentQueryModelNode()` |
    `QueryModelNode` | SearchQueryEvaluator.`getParentQueryModelNode()` |
    `QueryModelNode` | DistanceQuerySpec.`removeQueryPatterns()` |
    `QueryModelNode` | GeoRelationQuerySpec.`removeQueryPatterns()` |
    `QueryModelNode` | QuerySpec.`removeQueryPatterns()` |
    `QueryModelNode` | SearchQueryEvaluator.`removeQueryPatterns()` | Removes the query patterns and returns a placeholder where the query results could be placed.

    Methods in org.eclipse.rdf4j.sail.lucene with parameters of type QueryModelNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | GeoRelationQuerySpec.`setFunctionParent​(QueryModelNode functionParent)` |