org.h2.mode

## Class ModeFunction

- java.lang.Object
- - org.h2.expression.Expression
  - - org.h2.expression.OperationN
    - - org.h2.expression.function.FunctionN
      - - org.h2.mode.ModeFunction

All Implemented Interfaces:
  ExpressionWithVariableParameters, NamedExpression, HasSQL, Typed

Direct Known Subclasses:
  FunctionsDB2Derby, FunctionsMSSQLServer, FunctionsMySQL, FunctionsOracle, FunctionsPostgreSQL

    public abstract class ModeFunction
    extends FunctionN

Base class for mode-specific functions.

### Field Summary

Fields
`protected FunctionInfo` `info` The information about this function.
`protected static int` `VAR_ARGS` Constant for variable number of arguments.

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

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `doneWithParameters()` This method must be called after all the parameters have been set.
`static ModeFunction` `getFunction(Database database, java.lang.String name)` Get an instance of the given function for this database.
`java.lang.String` `getName()` Get the name.
`boolean` `isEverything(ExpressionVisitor visitor)` Check if this expression and all sub-expressions can fulfill a criteria.

### Methods inherited from class org.h2.expression.function.FunctionN

`getUnenclosedSQL, getValue, getValue`

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

`addParameter, getCost, getSubexpression, getSubexpressionCount, getType, 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, getWhenSQL, getWhenValue, isConstant, isIdentity, isNullConstant, isValueSet, isWhenConditionOperand, needParentheses, optimize, 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`

### Field Detail

#### VAR_ARGS

    protected static final int VAR_ARGS

Constant for variable number of arguments.

See Also:
  Constant Field Values

#### info

    protected final FunctionInfo info

The information about this function.

### Method Detail

#### getFunction

    public static ModeFunction getFunction(Database database,
                                           java.lang.String name)

Get an instance of the given function for this database. If no function with this name is found, null is returned.

Parameters:
  `database` - the database
  `name` - the upper case function name
Returns:
  the function object or null

#### doneWithParameters

    public void doneWithParameters()

Description copied from interface: `ExpressionWithVariableParameters`
This method must be called after all the parameters have been set. It checks if the parameter count is correct when required by the implementation.

Specified by:
  `doneWithParameters` in interface `ExpressionWithVariableParameters`
Overrides:
  `doneWithParameters` in class `OperationN`

#### getName

    public java.lang.String getName()

Description copied from interface: `NamedExpression`
Get the name.

Returns:
  the name in uppercase

#### isEverything

    public boolean isEverything(ExpressionVisitor visitor)

Description copied from class: `Expression`
Check if this expression and all sub-expressions can fulfill a criteria. If any part returns false, the result is false.

Overrides:
  `isEverything` in class `OperationN`
Parameters:
  `visitor` - the visitor
Returns:
  if the criteria can be fulfilled