org.eclipse.rdf4j.query.algebra

## Class AbstractQueryModelNode

- java.lang.Object
- - org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode

- All Implemented Interfaces:
    Serializable, Cloneable, GraphPatternGroupable, QueryModelNode, VariableScopeChange
  Direct Known Subclasses:
    AbstractNaryOperator, Add, ArbitraryLengthPath, BinaryTupleOperator, BinaryValueOperator, BindingSetAssignment, BNodeGenerator, Bound, BoundFiltersNode, Clear, ConjunctiveFilterExpr, Copy, Create, DeleteData, EmptySet, ExclusiveGroup, ExtensionElem, ExternalSet, FedXService, FilterExpr, FunctionCall, GroupElem, If, InsertData, Load, Modify, Move, NAryValueOperator, NTuple, OrderElem, PassThroughTupleExpr, ProjectionElem, ProjectionElemList, QueryModelNodeBase, SingleSourceQuery, SingletonSet, StatementPattern, StatementSource, SubQueryValueOperator, TripleRef, UnaryTupleOperator, UnaryValueOperator, ValueConstant, ValueExprTripleRef, Var, ZeroLengthPath

      public abstract class AbstractQueryModelNode
      extends Object
      implements QueryModelNode, VariableScopeChange, GraphPatternGroupable

  Base implementation of `QueryModelNode`.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractQueryModelNode()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `AbstractQueryModelNode` | `clone()` Returns a (deep) clone of this query model node.
    `double` | `getCostEstimate()`
    `QueryModelNode` | `getParentNode()` Gets the node's parent.
    `long` | `getResultSizeActual()`
    `double` | `getResultSizeEstimate()` Returns the number of tuples that this QueryNode predicts will be outputted.
    `String` | `getSignature()` Default implementation of `QueryModelNode.getSignature()` that prints the name of the node's class.
    `long` | `getTotalTimeNanosActual()`
    `boolean` | `isGraphPatternGroup()` Deprecated.
    `boolean` | `isVariableScopeChange()` indicates if the node represents a variable scope change.
    `protected boolean` | `nullEquals(Object o1, Object o2)`
    `void` | `replaceChildNode(QueryModelNode current, QueryModelNode replacement)` Default implementation of `QueryModelNode.replaceChildNode(QueryModelNode, QueryModelNode)` that throws an `IllegalArgumentException` indicating that `current` is not a child node of this node.
    `protected <T extends QueryModelNode> boolean` | `replaceNodeInList(List<T> list, QueryModelNode current, QueryModelNode replacement)`
    `void` | `replaceWith(QueryModelNode replacement)` Default implementation of `QueryModelNode.replaceWith(QueryModelNode)` that throws an `IllegalArgumentException` indicating that `current` is not a child node of this node.
    `void` | `setCostEstimate(double costEstimate)`
    `void` | `setGraphPatternGroup(boolean isGraphPatternGroup)` Deprecated.
    `void` | `setParentNode(QueryModelNode parent)` Sets the node's parent.
    `void` | `setResultSizeActual(long resultSizeActual)`
    `void` | `setResultSizeEstimate(double resultSizeEstimate)`
    `void` | `setTotalTimeNanosActual(long totalTimeNanosActual)`
    `void` | `setVariableScopeChange(boolean isVariableScopeChange)` Set the value of `VariableScopeChange.isVariableScopeChange()` to true or false.
    `String` | `toString()` Returns an indented print of the node tree, starting from this node.
    `<X extends Exception> void` | `visitChildren(QueryModelVisitor<X> visitor)` Dummy implementation of `QueryModelNode.visitChildren(org.eclipse.rdf4j.query.algebra.QueryModelVisitor<X>)` that does nothing.

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.rdf4j.query.algebra.QueryModelNode

      `equals, visit`

- - ### Constructor Detail

    - #### AbstractQueryModelNode

          public AbstractQueryModelNode()

  - ### Method Detail

    - #### getParentNode

          public QueryModelNode getParentNode()

      Description copied from interface: `QueryModelNode`
      Gets the node's parent.
      Specified by:
        `getParentNode` in interface `QueryModelNode`
      Returns:
        The parent node, if any.

    - #### setParentNode

          public void setParentNode(QueryModelNode parent)

      Description copied from interface: `QueryModelNode`
      Sets the node's parent.
      Specified by:
        `setParentNode` in interface `QueryModelNode`
      Parameters:
        `parent` - The parent node for this node.

    - #### isVariableScopeChange

          public boolean isVariableScopeChange()

      Description copied from interface: `VariableScopeChange`
      indicates if the node represents a variable scope change.
      Specified by:
        `isVariableScopeChange` in interface `VariableScopeChange`
      Returns:
        true iff the node represents a variable scope change.

    - #### setVariableScopeChange

          public void setVariableScopeChange(boolean isVariableScopeChange)

      Description copied from interface: `VariableScopeChange`
      Set the value of `VariableScopeChange.isVariableScopeChange()` to true or false.
      Specified by:
        `setVariableScopeChange` in interface `VariableScopeChange`

    - #### isGraphPatternGroup

          @Deprecated
          public boolean isGraphPatternGroup()

      Deprecated.
      Description copied from interface: `GraphPatternGroupable`
      indicates if the node represents the root of a graph pattern group.
      Specified by:
        `isGraphPatternGroup` in interface `GraphPatternGroupable`
      Returns:
        true iff the node represents the node of a graph pattern group.

    - #### setGraphPatternGroup

          @Deprecated
          public void setGraphPatternGroup(boolean isGraphPatternGroup)

      Deprecated.
      Description copied from interface: `GraphPatternGroupable`
      Set the value of `GraphPatternGroupable.isGraphPatternGroup()` to true or false.
      Specified by:
        `setGraphPatternGroup` in interface `GraphPatternGroupable`

    - #### visitChildren

          public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor)
                                                   throws X extends Exception

      Dummy implementation of `QueryModelNode.visitChildren(org.eclipse.rdf4j.query.algebra.QueryModelVisitor<X>)` that does nothing. Subclasses should override this method when they have child nodes.
      Specified by:
        `visitChildren` in interface `QueryModelNode`
      Throws:
        `X extends Exception`

    - #### replaceChildNode

          public void replaceChildNode(QueryModelNode current,
                                       QueryModelNode replacement)

      Default implementation of `QueryModelNode.replaceChildNode(QueryModelNode, QueryModelNode)` that throws an `IllegalArgumentException` indicating that `current` is not a child node of this node.
      Specified by:
        `replaceChildNode` in interface `QueryModelNode`
      Parameters:
        `current` - The current child node.
        `replacement` - The new child node.

    - #### replaceWith

          public void replaceWith(QueryModelNode replacement)

      Default implementation of `QueryModelNode.replaceWith(QueryModelNode)` that throws an `IllegalArgumentException` indicating that `current` is not a child node of this node.
      Specified by:
        `replaceWith` in interface `QueryModelNode`
      Parameters:
        `replacement` - The new node.

    - #### getSignature

          public String getSignature()

      Default implementation of `QueryModelNode.getSignature()` that prints the name of the node's class.
      Specified by:
        `getSignature` in interface `QueryModelNode`
      Returns:
        The node's signature, e.g. `SLICE (offset=10, limit=10)`.

    - #### toString

          public String toString()

      Description copied from interface: `QueryModelNode`
      Returns an indented print of the node tree, starting from this node.
      Specified by:
        `toString` in interface `QueryModelNode`
      Overrides:
        `toString` in class `Object`

    - #### clone

          public AbstractQueryModelNode clone()

      Description copied from interface: `QueryModelNode`
      Returns a (deep) clone of this query model node. This method recursively clones the entire node tree, starting from this nodes.
      Specified by:
        `clone` in interface `QueryModelNode`
      Overrides:
        `clone` in class `Object`
      Returns:
        A deep clone of this query model node.

    - #### replaceNodeInList

          protected <T extends QueryModelNode> boolean replaceNodeInList(List<T> list,
                                                                         QueryModelNode current,
                                                                         QueryModelNode replacement)

    - #### nullEquals

          protected boolean nullEquals(Object o1,
                                       Object o2)

    - #### getResultSizeEstimate

          public double getResultSizeEstimate()

      Description copied from interface: `QueryModelNode`
      Returns the number of tuples that this QueryNode predicts will be outputted. For a StatementPattern this would be the estimated cardinality provided by the EvaluationStatistics. For a Join the would be the resulting number of joined tuples.
      Specified by:
        `getResultSizeEstimate` in interface `QueryModelNode`
      Returns:
        rows

    - #### setResultSizeEstimate

          public void setResultSizeEstimate(double resultSizeEstimate)

      Specified by:
        `setResultSizeEstimate` in interface `QueryModelNode`

    - #### getResultSizeActual

          public long getResultSizeActual()

      Specified by:
        `getResultSizeActual` in interface `QueryModelNode`

    - #### setResultSizeActual

          public void setResultSizeActual(long resultSizeActual)

      Specified by:
        `setResultSizeActual` in interface `QueryModelNode`

    - #### getCostEstimate

          public double getCostEstimate()

      Specified by:
        `getCostEstimate` in interface `QueryModelNode`

    - #### setCostEstimate

          public void setCostEstimate(double costEstimate)

      Specified by:
        `setCostEstimate` in interface `QueryModelNode`

    - #### getTotalTimeNanosActual

          public long getTotalTimeNanosActual()

      Specified by:
        `getTotalTimeNanosActual` in interface `QueryModelNode`

    - #### setTotalTimeNanosActual

          public void setTotalTimeNanosActual(long totalTimeNanosActual)

      Specified by:
        `setTotalTimeNanosActual` in interface `QueryModelNode`

Copyright © 2015-2022 Eclipse Foundation. All Rights Reserved.