## org.h2.engine
Class FunctionAlias

    java.lang.Object
      org.h2.engine.DbObjectBase
          org.h2.engine.FunctionAlias

All Implemented Interfaces:
  DbObject

    public class FunctionAlias

extends DbObjectBase

Represents a user-defined function, or alias.

Nested Class Summary
`static class` `FunctionAlias.JavaMethod` There may be multiple Java methods that match a function name.

Field Summary

Fields inherited from class org.h2.engine.DbObjectBase
`comment, database, trace`

Fields inherited from interface org.h2.engine.DbObject
`AGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE`

Method Summary
`void` `checkRename()` Check if this object can be renamed.
`FunctionAlias.JavaMethod` `findJavaMethod(Expression[] args)` Find the Java method that matches the arguments.
`java.lang.String` `getCreateSQL()` Build a SQL statement to re-create this object.
`java.lang.String` `getCreateSQLForCopy(Table table, java.lang.String quotedName)` Build a SQL statement to re-create the object, or to create a copy of the object with a different name or referencing a different table
`java.lang.String` `getDropSQL()` Build a SQL statement to drop this object.
`java.lang.String` `getJavaClassName()`
`java.lang.String` `getJavaMethodName()`
`FunctionAlias.JavaMethod[]` `getJavaMethods()` Get the Java methods mapped by this function.
`int` `getType()` Get the object type.
`boolean` `isDeterministic()`
`static FunctionAlias` `newInstance(Database db, int id, java.lang.String name, java.lang.String javaClassMethod, boolean force)` Create a new alias based on a method name.
`static FunctionAlias` `newInstanceFromSource(Database db, int id, java.lang.String name, java.lang.String source, boolean force)` Create a new alias based on source code.
`void` `removeChildrenAndResources(Session session)` Remove all dependent objects and free all resources (files, blocks in files) of this object.
`void` `setDeterministic(boolean deterministic)`

Methods inherited from class org.h2.engine.DbObjectBase
`getChildren, getComment, getDatabase, getHeadPos, getId, getModificationId, getName, getSQL, initDbObjectBase, invalidate, isTemporary, rename, setComment, setModified, setObjectName, setTemporary, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Method Detail

### newInstance

    public static FunctionAlias newInstance(Database db,
                                            int id,
                                            java.lang.String name,
                                            java.lang.String javaClassMethod,
                                            boolean force)
                                     throws java.sql.SQLException

  Create a new alias based on a method name.

  Parameters:
    `db` - the database
    `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
  Throws:
    `java.sql.SQLException`

### newInstanceFromSource

    public static FunctionAlias newInstanceFromSource(Database db,
                                                      int id,
                                                      java.lang.String name,
                                                      java.lang.String source,
                                                      boolean force)
                                               throws java.sql.SQLException

  Create a new alias based on source code.

  Parameters:
    `db` - the database
    `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
  Throws:
    `java.sql.SQLException`

### getCreateSQLForCopy

    public java.lang.String getCreateSQLForCopy(Table table,
                                                java.lang.String quotedName)

  Description copied from class: `DbObjectBase`
  Build a SQL statement to re-create the object, or to create a copy of the object with a different name or referencing a different table

  Specified by:
    `getCreateSQLForCopy` in interface `DbObject`
  Specified by:
    `getCreateSQLForCopy` in class `DbObjectBase`
  Parameters:
    `table` - the new table name
    `quotedName` - the new quoted name
  Returns:
    the SQL statement

### getDropSQL

    public java.lang.String getDropSQL()

  Description copied from class: `DbObjectBase`
  Build a SQL statement to drop this object.

  Specified by:
    `getDropSQL` in interface `DbObject`
  Specified by:
    `getDropSQL` in class `DbObjectBase`
  Returns:
    the SQL statement

### getCreateSQL

    public java.lang.String getCreateSQL()

  Description copied from class: `DbObjectBase`
  Build a SQL statement to re-create this object.

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

### getType

    public int getType()

  Description copied from class: `DbObjectBase`
  Get the object type.

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

### removeChildrenAndResources

    public void removeChildrenAndResources(Session session)
                                    throws java.sql.SQLException

  Description copied from class: `DbObjectBase`
  Remove all dependent objects and free all resources (files, blocks in files) of this object.

  Specified by:
    `removeChildrenAndResources` in interface `DbObject`
  Specified by:
    `removeChildrenAndResources` in class `DbObjectBase`
  Parameters:
    `session` - the session
  Throws:
    `java.sql.SQLException`

### checkRename

    public void checkRename()
                     throws java.sql.SQLException

  Description copied from class: `DbObjectBase`
  Check if this object can be renamed. System objects may not be renamed.

  Specified by:
    `checkRename` in interface `DbObject`
  Specified by:
    `checkRename` in class `DbObjectBase`
  Throws:
    `java.sql.SQLException` - if renaming is not allowed

### findJavaMethod

    public FunctionAlias.JavaMethod findJavaMethod(Expression[] args)
                                            throws java.sql.SQLException

  Find the Java method that matches the arguments.

  Parameters:
    `args` - the argument list
  Returns:
    the Java method
  Throws:
    `java.sql.SQLException` - if no matching method could be found

### getJavaClassName

    public java.lang.String getJavaClassName()

### getJavaMethodName

    public java.lang.String getJavaMethodName()

### getJavaMethods

    public FunctionAlias.JavaMethod[] getJavaMethods()
                                              throws java.sql.SQLException

  Get the Java methods mapped by this function.

  Returns:
    the Java methods.
  Throws:
    `java.sql.SQLException`

### setDeterministic

    public void setDeterministic(boolean deterministic)

### isDeterministic

    public boolean isDeterministic()