org.h2.engine
Class FunctionAlias

java.lang.Object
  extended by org.h2.engine.DbObjectBase
      extended by 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()