Module org.jooq
Package org.jooq

Interface Context<C extends Context<C>>

    • Method Detail

      • visit

        @NotNull
        C visit​(QueryPart part)
         throws DataAccessException
        Visit a QueryPart in the current Context.

        This method is called by certain QueryPart implementations to recursively visit component QueryParts.

        Parameters:
        part - The component QueryPart
        Throws:
        DataAccessException - If something went wrong while visiting the component QueryPart, e.g. when binding a variable
      • start

        @NotNull
        C start​(Clause clause)
        TODO [#2667] Properties of these methods: - A clause is always started / ended, even if it isn't rendered or if it's empty!
      • end

        @NotNull
        C end​(Clause clause)
      • declareFields

        boolean declareFields()
        Whether the current context is rendering a SQL field declaration (e.g. a Field in the SELECT clause of the query).
      • declareFields

        @NotNull
        C declareFields​(boolean declareFields)
        Set the new context value for declareFields().
      • declareTables

        boolean declareTables()
        Whether the current context is rendering a SQL table declaration (e.g. a Table in the FROM or JOIN clause of the query).
      • declareTables

        @NotNull
        C declareTables​(boolean declareTables)
        Set the new context value for declareTables().
      • declareAliases

        boolean declareAliases()
        Whether the current context is rendering a SQL alias declarations in declareTables() or declareFields() sections.
      • declareAliases

        @NotNull
        C declareAliases​(boolean declareTables)
        Whether the current context is rendering a SQL alias declarations in declareTables() or declareFields() sections.
      • declareWindows

        boolean declareWindows()
        Whether the current context is rendering a SQL window declaration (e.g. a WindowDefinition in the WINDOW clause of the query).
      • declareWindows

        @NotNull
        C declareWindows​(boolean declareWindows)
        Set the new context value for declareWindows().
      • declareCTE

        boolean declareCTE()
        Whether the current context is rendering a common table expression (e.g. a CommonTableExpression in the WITH clause of the query).
      • declareCTE

        @NotNull
        C declareCTE​(boolean declareCTE)
        Set the new context value for declareCTE().
      • subquery

        boolean subquery()
        Whether the current context is rendering a sub-query (nested query).
      • subquery

        @NotNull
        C subquery​(boolean subquery)
        Set the new context value for subquery().
      • subqueryLevel

        int subqueryLevel()
        Which level of subqueries we're currently in, starting with 0 for the top level query.
      • scopeStart

        @NotNull
        C scopeStart()
        Start a new SELECT scope.
      • scopeMarkStart

        @NotNull
        C scopeMarkStart​(QueryPart part)
        Mark the beginning of a scoped query part.
      • scopeRegister

        @NotNull
        C scopeRegister​(QueryPart part)
        Register a "special" query part in the scope, reusing the object from a higher scope, if available.
      • scopeRegister

        @NotNull
        C scopeRegister​(QueryPart part,
                        boolean forceNew)
        Register a "special" query part in the scope, allowing to force registering the object in the new scope, if a higher scope already has the object.

        [#10992] This is necessary to allow for hiding identifiers from nested scopes.

      • scopeMarkEnd

        @NotNull
        C scopeMarkEnd​(QueryPart part)
        Mark the end of a scoped query part.
      • scopeEnd

        @NotNull
        C scopeEnd()
        End a previous SELECT scope.
      • stringLiteral

        boolean stringLiteral()
        whether the current context is rendering a string literal.
      • stringLiteral

        @NotNull
        C stringLiteral​(boolean stringLiteral)
        Set the new context value for stringLiteral().
      • nextIndex

        int nextIndex()
        Get the next bind index. This increments an internal counter. This is relevant for two use-cases:
      • peekIndex

        int peekIndex()
        Peek the next bind index. This won't increment the internal counter, unlike nextIndex().
      • statement

        @Nullable
        @Nullable PreparedStatement statement()
        Retrieve the context's underlying PreparedStatement if available, or null if this traversal does not operate on a PreparedStatement.
      • peekAlias

        @NotNull
        @NotNull String peekAlias()
        Peek the next alias that will be generated by nextAlias().
      • nextAlias

        @NotNull
        @NotNull String nextAlias()
        Return a new alias that is unique for the scope of one query. These aliases are sometimes needed when unaliased projections are defined in subqueries, which can lead to syntax errors.
      • render

        @NotNull
        @NotNull String render()
        Render the context's underlying SQL statement.
      • render

        @NotNull
        @NotNull String render​(QueryPart part)
        Render a query part in a new context derived from this one. The rendered SQL will not be appended to this context.
      • sql

        @NotNull
        C sql​(String sql,
              boolean literal)
        Append some SQL to the context's contained StringBuilder.

        Set literal = true to indicate that the RenderContext shall not format the argument SQL.

      • sql

        @NotNull
        C sql​(char sql)
        Append some SQL to the context's contained StringBuilder.
      • sql

        @NotNull
        C sql​(int sql)
        Append some SQL to the context's contained StringBuilder.
      • sql

        @NotNull
        C sql​(long sql)
        Append some SQL to the context's contained StringBuilder.
      • sql

        @NotNull
        C sql​(float sql)
        Append some SQL to the context's contained StringBuilder.
      • sql

        @NotNull
        C sql​(double sql)
        Append some SQL to the context's contained StringBuilder.
      • formatSeparator

        @NotNull
        C formatSeparator()
        Render a new line character (only if Settings.isRenderFormatted() is set to true), or a whitespace separator character otherwise.
      • separatorRequired

        @NotNull
        C separatorRequired​(boolean separatorRequired)
        Specify that a separator will be required before the next visit(QueryPart) call, but leave the decision whether to generate a formatSeparator() or just a whitespace to that next QueryPart.
      • separatorRequired

        boolean separatorRequired()
        Whether some sort of separator is required before rendering the next QueryPart.
      • formatIndentStart

        @NotNull
        C formatIndentStart​(int indent)
        Start indenting subsequent SQL by a number of characters, if Settings.isRenderFormatted() is set to true.
      • formatIndentLockStart

        @Deprecated
        @NotNull
        C formatIndentLockStart()
        Deprecated.
        - [#10317] - 3.14.0 - Do not reuse this method. It will be removed without replacement.
        Start indenting subsequent SQL at the same level as the current line, if Settings.isRenderFormatted() is set to true.
      • formatIndentEnd

        @NotNull
        C formatIndentEnd​(int indent)
        Stop indenting subsequent SQL by a number of characters, if Settings.isRenderFormatted() is set to true.
      • formatIndentLockEnd

        @Deprecated
        @NotNull
        C formatIndentLockEnd()
        Deprecated.
        - [#10317] - 3.14.0 - Do not reuse this method. It will be removed without replacement.
        Stop indenting subsequent SQL at the same level as the current line, if Settings.isRenderFormatted() is set to true.
      • formatPrintMargin

        @NotNull
        C formatPrintMargin​(int margin)
        Set a print margin that will be applied to formatted SQL, if Settings.isRenderFormatted() is set to true.

        The default print margin is 80. Setting this to zero or a negative value means that no print margin will be applied.

        The print margin is applied to any of these QueryParts:

      • quote

        @NotNull
        C quote​(boolean quote)
        Set the new context value for quote().
      • qualify

        boolean qualify()
        Whether query parts should render qualified names or not.
      • qualifySchema

        boolean qualifySchema()
        Whether query parts should render qualified names or not.

        This is the same as qualifySchema().

      • qualifySchema

        @NotNull
        C qualifySchema​(boolean qualifySchema)
        Set the new context value for qualifySchema().
      • qualifyCatalog

        boolean qualifyCatalog()
        Whether query parts should render qualified names or not.

        The catalog can only be qualified when qualifySchema() is true as well.

      • qualifyCatalog

        @NotNull
        C qualifyCatalog​(boolean qualifyCatalog)
        Set the new context value for qualifyCatalog().

        The catalog can only be qualified when qualifySchema() is true as well.

      • paramTypeIf

        @NotNull
        C paramTypeIf​(ParamType paramType,
                      boolean condition)
        Set the new context value for paramType(), if a condition is true.
      • castMode

        @NotNull
        @NotNull RenderContext.CastMode castMode()
        The currently applied cast mode for bind values.
      • cast

        @Nullable
        @Deprecated
        @Nullable Boolean cast()
        Deprecated.
        - [#3703] - 3.5.0 - Do not use this any longer
        Whether casting must be applied. The result follows this logic:
        CastMode result
        ALWAYS true
        NEVER false
        SOME true or false depending on the dialect
        DEFAULT null