Package org.eclipse.rdf4j.federated.algebra

## Interface ExclusiveTupleExprRenderer

- All Superinterfaces:
    `Cloneable`, `ExclusiveTupleExpr`, `FedXTupleExpr`, `QueryModelNode`, `QueryRef`, `Serializable`, `TupleExpr`, `VariableExpr`
  All Known Implementing Classes:
    `ExclusiveArbitraryLengthPath`

      public interface ExclusiveTupleExprRenderer
      extends ExclusiveTupleExpr

  A specialization of `ExclusiveTupleExpr` which provides definitions how the expressions can be rendered to a sub-query.

  This is required for the evaluation of sub queries.

  Author:
    Andreas Schwarte

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `TupleExpr` | `toQueryAlgebra​(Set<String> varNames, BindingSet bindings)` | Returns a SPARQL algebra representation of this expression that can be inserted into a SELECT `TupleExpr`
    `String` | `toQueryString​(Set<String> varNames, BindingSet bindings)` | Returns a SPARQL string representation of this expression that can be inserted into a SELECT query.

    - ### Methods inherited from interface org.eclipse.rdf4j.federated.algebra.ExclusiveTupleExpr

      `getOwner`

    - ### Methods inherited from interface org.eclipse.rdf4j.federated.algebra.FedXTupleExpr

      `getFreeVarCount`

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

      `equals, getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getSignature, getTotalTimeNanosActual, replaceChildNode, replaceWith, setCostEstimate, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, toString, visit, visitChildren`

    - ### Methods inherited from interface org.eclipse.rdf4j.federated.algebra.QueryRef

      `getQueryInfo`

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

      `clone, getAssuredBindingNames, getBindingNames`

    - ### Methods inherited from interface org.eclipse.rdf4j.federated.algebra.VariableExpr

      `getFreeVars`

- - ### Method Detail

    - #### toQueryString

          String toQueryString​(Set<String> varNames,
                               BindingSet bindings)

      Returns a SPARQL string representation of this expression that can be inserted into a SELECT query.

      Implementations are required to create a valid query string for this expression where the given bindings are inserted.

      Parameters:
        `varNames` - the set of resulting (unbound) variables from this expression
        `bindings` - the optional input bindings
      Returns:
        the query string part

    - #### toQueryAlgebra

          TupleExpr toQueryAlgebra​(Set<String> varNames,
                                   BindingSet bindings)

      Returns a SPARQL algebra representation of this expression that can be inserted into a SELECT `TupleExpr`

      Implementations are required to create a new equivalent expression or clone, where any provided input bindings are inserted. The free variable names after insertion need to be added to the provided set.

      Parameters:
        `varNames` - the set of resulting (unbound) variables from this expression
        `bindings` - the input bindings that need to be inserted
      Returns:
        the algebra expression