Package org.eclipse.rdf4j.queryrender

## Class BaseTupleExprRenderer

- java.lang.Object
- - org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor<Exception>
  - - org.eclipse.rdf4j.queryrender.BaseTupleExprRenderer

- All Implemented Interfaces:
    `QueryModelVisitor<Exception>`
  Direct Known Subclasses:
    `SparqlQueryRenderer`, `SparqlTupleExprRenderer`

      public abstract class BaseTupleExprRenderer
      extends AbstractQueryModelVisitor<Exception>

  Base class for rendering RDF4J query API objects into strings.

  Author:
    Michael Grove

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `mDistinct` | Whether or not the query is distinct
    `protected Map<String,​ValueExpr>` | `mExtensions` | A map of the extensions specified in the query.
    `protected long` | `mLimit` | The limit of results for the query, or -1 for no limit
    `protected long` | `mOffset` | The query offset, or -1 for no offset
    `protected List<OrderElem>` | `mOrdering` | The elements specified in the order by clause of the query
    `protected List<ProjectionElemList>` | `mProjection` | The list of elements include in the projection of the query
    `protected boolean` | `mReduced` | Whether or not the query is reduced

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BaseTupleExprRenderer()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Map<String,​ValueExpr>` | `getExtensions()` |
    `long` | `getLimit()` |
    `long` | `getOffset()` |
    `List<OrderElem>` | `getOrdering()` |
    `List<ProjectionElemList>` | `getProjection()` |
    `boolean` | `isDistinct()` |
    `boolean` | `isReduced()` |
    `protected boolean` | `isSelect()` | Returns whether or not the results of scanning the query model indicates that this represents a select query
    `static boolean` | `isSPOElemList​(ProjectionElemList theList)` | Return whether or not this projection looks like an spo binding for a construct query
    `void` | `meet​(Distinct theDistinct)`
    `void` | `meet​(ExtensionElem theExtensionElem)`
    `void` | `meet​(OrderElem theOrderElem)`
    `void` | `meet​(ProjectionElemList theProjectionElemList)`
    `void` | `meet​(Reduced theReduced)`
    `void` | `meet​(Slice theSlice)`
    `void` | `meet​(StatementPattern theStatementPattern)`
    `abstract String` | `render​(TupleExpr theExpr)` | Render the TupleExpr as a query or query fragment depending on what kind of TupleExpr it is
    `String` | `render​(ParsedQuery theQuery)` | Render the ParsedQuery as a query string
    `protected abstract String` | `renderValueExpr​(ValueExpr theExpr)` | Render the given ValueExpr
    `void` | `reset()` | Reset the state of the renderer
    `static String` | `scrubVarName​(String theName)` | Scrub any illegal characters out of the variable name
    `StatementPattern` | `toStatementPattern​(ProjectionElemList theList)` | Turn a ProjectionElemList for a construct query projection (three elements aliased as 'subject', 'predicate' and 'object' in that order) into a StatementPattern.

    - ### Methods inherited from class org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor

      `meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meetBinaryTupleOperator, meetBinaryValueOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetNode, meetOther, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUpdateExpr`

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

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

- - ### Field Detail

    - #### mExtensions

          protected Map<String,​ValueExpr> mExtensions

      A map of the extensions specified in the query.

    - #### mProjection

          protected List<ProjectionElemList> mProjection

      The list of elements include in the projection of the query

    - #### mOrdering

          protected List<OrderElem> mOrdering

      The elements specified in the order by clause of the query

    - #### mDistinct

          protected boolean mDistinct

      Whether or not the query is distinct

    - #### mReduced

          protected boolean mReduced

      Whether or not the query is reduced

    - #### mLimit

          protected long mLimit

      The limit of results for the query, or -1 for no limit

    - #### mOffset

          protected long mOffset

      The query offset, or -1 for no offset

  - ### Constructor Detail

    - #### BaseTupleExprRenderer

          public BaseTupleExprRenderer()

  - ### Method Detail

    - #### reset

          public void reset()

      Reset the state of the renderer

    - #### getExtensions

          public Map<String,​ValueExpr> getExtensions()

    - #### getProjection

          public List<ProjectionElemList> getProjection()

    - #### getOrdering

          public List<OrderElem> getOrdering()

    - #### isDistinct

          public boolean isDistinct()

    - #### isReduced

          public boolean isReduced()

    - #### getLimit

          public long getLimit()

    - #### getOffset

          public long getOffset()

    - #### render

          public String render​(ParsedQuery theQuery)
                        throws Exception

      Render the ParsedQuery as a query string
      Parameters:
        `theQuery` - the parsed query to render
      Returns:
        the query object rendered in the query language syntax
      Throws:
        `Exception` - if there is an error while rendering

    - #### render

          public abstract String render​(TupleExpr theExpr)
                                 throws Exception

      Render the TupleExpr as a query or query fragment depending on what kind of TupleExpr it is
      Parameters:
        `theExpr` - the expression to render
      Returns:
        the TupleExpr rendered in the query language syntax
      Throws:
        `Exception` - if there is an error while rendering

    - #### renderValueExpr

          protected abstract String renderValueExpr​(ValueExpr theExpr)
                                             throws Exception

      Render the given ValueExpr
      Parameters:
        `theExpr` - the expr to render
      Returns:
        the rendered expression
      Throws:
        `Exception` - if there is an error while rendering

    - #### toStatementPattern

          public StatementPattern toStatementPattern​(ProjectionElemList theList)
                                              throws Exception

      Turn a ProjectionElemList for a construct query projection (three elements aliased as 'subject', 'predicate' and 'object' in that order) into a StatementPattern.
      Parameters:
        `theList` - the elem list to render
      Returns:
        the elem list for a construct projection as a statement pattern
      Throws:
        `Exception` - if there is an exception while rendering

    - #### scrubVarName

          public static String scrubVarName​(String theName)

      Scrub any illegal characters out of the variable name
      Parameters:
        `theName` - the potential variable name
      Returns:
        the name scrubbed of any illegal characters

    - #### isSelect

          protected boolean isSelect()

      Returns whether or not the results of scanning the query model indicates that this represents a select query
      Returns:
        true if its a select query, false if its a construct query

    - #### isSPOElemList

          public static boolean isSPOElemList​(ProjectionElemList theList)

      Return whether or not this projection looks like an spo binding for a construct query
      Parameters:
        `theList` - the projection element list to inspect
      Returns:
        true if it has the format of a spo construct projection element, false otherwise

    - #### meet

          public void meet​(StatementPattern theStatementPattern)
                    throws Exception

      Specified by:
        `meet` in interface `QueryModelVisitor<Exception>`
      Overrides:
        `meet` in class `AbstractQueryModelVisitor<Exception>`
      Throws:
        `Exception`

    - #### meet

          public void meet​(Slice theSlice)
                    throws Exception

      Specified by:
        `meet` in interface `QueryModelVisitor<Exception>`
      Overrides:
        `meet` in class `AbstractQueryModelVisitor<Exception>`
      Throws:
        `Exception`

    - #### meet

          public void meet​(ExtensionElem theExtensionElem)
                    throws Exception

      Specified by:
        `meet` in interface `QueryModelVisitor<Exception>`
      Overrides:
        `meet` in class `AbstractQueryModelVisitor<Exception>`
      Throws:
        `Exception`

    - #### meet

          public void meet​(ProjectionElemList theProjectionElemList)
                    throws Exception

      Specified by:
        `meet` in interface `QueryModelVisitor<Exception>`
      Overrides:
        `meet` in class `AbstractQueryModelVisitor<Exception>`
      Throws:
        `Exception`

    - #### meet

          public void meet​(OrderElem theOrderElem)
                    throws Exception

      Specified by:
        `meet` in interface `QueryModelVisitor<Exception>`
      Overrides:
        `meet` in class `AbstractQueryModelVisitor<Exception>`
      Throws:
        `Exception`

    - #### meet

          public void meet​(Distinct theDistinct)
                    throws Exception

      Specified by:
        `meet` in interface `QueryModelVisitor<Exception>`
      Overrides:
        `meet` in class `AbstractQueryModelVisitor<Exception>`
      Throws:
        `Exception`

    - #### meet

          public void meet​(Reduced theReduced)
                    throws Exception

      Specified by:
        `meet` in interface `QueryModelVisitor<Exception>`
      Overrides:
        `meet` in class `AbstractQueryModelVisitor<Exception>`
      Throws:
        `Exception`