Package org.h2.expression.function

# 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 Summary

### Fields inherited from class org.h2.expression.OperationN

`args, argsCount, type`

### Fields inherited from class org.h2.expression.Expression

`AUTO_PARENTHESES, MAP_IN_AGGREGATE, MAP_IN_WINDOW, MAP_INITIAL, WITH_PARENTHESES, WITHOUT_PARENTHESES`

### Fields inherited from interface org.h2.util.HasSQL

`ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS`

## Constructor Summary

Constructors
Constructor
Description
`JsonConstructorFunction(boolean array)`
Creates a new instance of JSON constructor function.

## Method Summary

Modifier and Type
Method
Description
`int`
`getFlags()`
Returns the flags.
`static StringBuilder`
`getJsonFunctionFlagsSQL(StringBuilder builder, int flags, boolean forArray)`
Appends flags of a JSON function to the specified string builder.
`String`
`getName()`
Get the name.
`StringBuilder`
`getUnenclosedSQL(StringBuilder builder, int sqlFlags)`
Get the SQL statement of this expression.
`Value`
`getValue(SessionLocal session)`
Return the resulting value for the current row.
`Expression`
`optimize(SessionLocal session)`
Try to optimize the expression.
`void`
`setFlags(int flags)`
Set the flags for this expression.

### Methods inherited from class org.h2.expression.OperationN

`addParameter, doneWithParameters, getCost, getSubexpression, getSubexpressionCount, getType, isEverything, mapColumns, optimizeArguments, setEvaluatable, updateAggregate`

### Methods inherited from class org.h2.expression.Expression

`addFilterConditions, createIndexConditions, getAlias, getBooleanValue, getColumnName, getColumnNameForView, getEnclosedSQL, getNonAliasExpression, getNotIfPossible, getNullable, getSchemaName, getSQL, getSQL, getSQL, getSQL, getTableAlias, getTableName, getTypeIfStaticallyKnown, getWhenSQL, getWhenValue, isConstant, isIdentity, isNullConstant, isValueSet, isWhenConditionOperand, needParentheses, optimizeCondition, toString, writeExpressions, writeExpressions`

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

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

### Methods inherited from interface org.h2.util.HasSQL

`getTraceSQL`

## 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

### 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