Class JsonConstructorFunction

java.lang.Object
org.h2.expression.Expression
org.h2.expression.OperationN
org.h2.expression.function.JsonConstructorFunction
All Implemented Interfaces:
ExpressionWithFlags, ExpressionWithVariableParameters, NamedExpression, HasSQL, Typed

public final class JsonConstructorFunction extends OperationN implements ExpressionWithFlags, NamedExpression
JSON constructor function.
  • Field Details

    • array

      private final boolean array
    • flags

      private int flags
  • Constructor Details

    • JsonConstructorFunction

      public JsonConstructorFunction(boolean array)
      Creates a new instance of JSON constructor function.
      Parameters:
      array - false for JSON_OBJECT, true for JSON_ARRAY.
  • Method Details

    • setFlags

      public void setFlags(int flags)
      Description copied from interface: ExpressionWithFlags
      Set the flags for this expression.
      Specified by:
      setFlags in interface ExpressionWithFlags
      Parameters:
      flags - the flags to set
    • getFlags

      public int getFlags()
      Description copied from interface: ExpressionWithFlags
      Returns the flags.
      Specified by:
      getFlags in interface ExpressionWithFlags
      Returns:
      the flags
    • getValue

      public Value getValue(SessionLocal session)
      Description copied from class: Expression
      Return the resulting value for the current row.
      Specified by:
      getValue in class Expression
      Parameters:
      session - the session
      Returns:
      the result
    • jsonObject

      private Value jsonObject(SessionLocal session, Expression[] args)
    • jsonArray

      private Value jsonArray(SessionLocal session, Expression[] args)
    • optimize

      public Expression optimize(SessionLocal session)
      Description copied from class: Expression
      Try to optimize the expression.
      Specified by:
      optimize in class Expression
      Parameters:
      session - the session
      Returns:
      the optimized expression
    • getUnenclosedSQL

      public StringBuilder getUnenclosedSQL(StringBuilder builder, int sqlFlags)
      Description copied from class: Expression
      Get the SQL statement of this expression. This may not always be the original SQL statement, especially after optimization. Enclosing '(' and ')' are never appended.
      Specified by:
      getUnenclosedSQL in class Expression
      Parameters:
      builder - string builder
      sqlFlags - formatting flags
      Returns:
      the specified string builder
    • getJsonFunctionFlagsSQL

      public static StringBuilder getJsonFunctionFlagsSQL(StringBuilder builder, int flags, boolean forArray)
      Appends flags of a JSON function to the specified string builder.
      Parameters:
      builder - string builder to append to
      flags - flags to append
      forArray - whether the function is an array function
      Returns:
      the specified string builder
    • getName

      public String getName()
      Description copied from interface: NamedExpression
      Get the name.
      Specified by:
      getName in interface NamedExpression
      Returns:
      the name in uppercase