Package org.h2.schema

# Class FunctionAlias

java.lang.Object
org.h2.engine.DbObject
org.h2.schema.SchemaObject
org.h2.schema.UserDefinedFunction
org.h2.schema.FunctionAlias

All Implemented Interfaces:
  `HasSQL`

public final class FunctionAlias extends UserDefinedFunction
Represents a user-defined function, or alias.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`FunctionAlias.JavaMethod`
There may be multiple Java methods that match a function name.

## Field Summary

### Fields inherited from class org.h2.engine.DbObject

`AGGREGATE, comment, COMMENT, CONSTANT, CONSTRAINT, database, DOMAIN, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, SYNONYM, TABLE_OR_VIEW, trace, TRIGGER, USER`

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

Modifier and Type
Method
Description
`FunctionAlias.JavaMethod`
`findJavaMethod(Expression[] args)`
Find the Java method that matches the arguments.
`String`
`getCreateSQL()`
Construct the CREATE ...
`String`
`getDropSQL()`
Construct a DROP ...
`String`
`getJavaMethodName()`
`FunctionAlias.JavaMethod[]`
`getJavaMethods()`
Get the Java methods mapped by this function.
`String`
`getSource()`
`int`
`getType()`
Get the object type.
`boolean`
`isDeterministic()`
`static FunctionAlias`
`newInstance(Schema schema, int id, String name, String javaClassMethod, boolean force)`
Create a new alias based on a method name.
`static FunctionAlias`
`newInstanceFromSource(Schema schema, int id, String name, String source, boolean force)`
Create a new alias based on source code.
`void`
`removeChildrenAndResources(SessionLocal session)`
Delete all dependent children objects and resources of this object.
`void`
`setDeterministic(boolean deterministic)`

### Methods inherited from class org.h2.schema.UserDefinedFunction

`checkRename, getJavaClassName`

### Methods inherited from class org.h2.schema.SchemaObject

`getSchema, getSQL, getSQL`

### Methods inherited from class org.h2.engine.DbObject

`equals, getChildren, getComment, getCreateSQLForCopy, getCreateSQLForMeta, getDatabase, getId, getModificationId, getName, hashCode, invalidate, isTemporary, isValid, rename, setComment, setModified, setObjectName, setTemporary, toString`

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

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

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

`getTraceSQL`

## Method Details

### newInstance

public static FunctionAlias newInstance(Schema schema, int id, String name, String javaClassMethod, boolean force)
Create a new alias based on a method name.

Parameters:
  `schema` - the schema
  `id` - the id
  `name` - the name
  `javaClassMethod` - the class and method name
  `force` - create the object even if the class or method does not exist
Returns:
  the database object

### newInstanceFromSource

public static FunctionAlias newInstanceFromSource(Schema schema, int id, String name, String source, boolean force)
Create a new alias based on source code.

Parameters:
  `schema` - the schema
  `id` - the id
  `name` - the name
  `source` - the source code
  `force` - create the object even if the class or method does not exist
Returns:
  the database object

### getDropSQL

public String getDropSQL()
Description copied from class: `DbObject`
Construct a DROP ... SQL statement for this object.

Overrides:
  `getDropSQL` in class `DbObject`
Returns:
  the SQL statement

### getCreateSQL

public String getCreateSQL()
Description copied from class: `DbObject`
Construct the CREATE ... SQL statement for this object.

Specified by:
  `getCreateSQL` in class `DbObject`
Returns:
  the SQL statement

### getType

public int getType()
Description copied from class: `DbObject`
Get the object type.

Specified by:
  `getType` in class `DbObject`
Returns:
  the object type

### removeChildrenAndResources

public void removeChildrenAndResources(SessionLocal session)
Description copied from class: `DbObject`
Delete all dependent children objects and resources of this object.

Specified by:
  `removeChildrenAndResources` in class `DbObject`
Parameters:
  `session` - the session

### findJavaMethod

public FunctionAlias.JavaMethod findJavaMethod(Expression[] args)
Find the Java method that matches the arguments.

Parameters:
  `args` - the argument list
Returns:
  the Java method
Throws:
  `DbException` - if no matching method could be found

### getJavaMethodName

public String getJavaMethodName()

### getJavaMethods

public FunctionAlias.JavaMethod[] getJavaMethods()
Get the Java methods mapped by this function.

Returns:
  the Java methods.

### setDeterministic

public void setDeterministic(boolean deterministic)

### isDeterministic

public boolean isDeterministic()

### getSource

public String getSource()