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 Modifier and Type Field Description private boolean
deterministic
private FunctionAlias.JavaMethod[]
javaMethods
private java.lang.String
methodName
private java.lang.String
source
-
Fields inherited from class org.h2.schema.UserDefinedFunction
className
-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description private
FunctionAlias(Schema schema, int id, java.lang.String name)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FunctionAlias.JavaMethod
findJavaMethod(Expression[] args)
Find the Java method that matches the arguments.java.lang.String
getCreateSQL()
Construct the CREATE ...java.lang.String
getDropSQL()
Construct a DROP ...java.lang.String
getJavaMethodName()
FunctionAlias.JavaMethod[]
getJavaMethods()
Get the Java methods mapped by this function.private static java.lang.String
getMethodSignature(java.lang.reflect.Method m)
java.lang.String
getSource()
int
getType()
Get the object type.private void
init(boolean force)
boolean
isDeterministic()
private void
load()
private void
loadClass()
private void
loadFromSource()
static FunctionAlias
newInstance(Schema schema, int id, java.lang.String name, java.lang.String javaClassMethod, boolean force)
Create a new alias based on a method name.static FunctionAlias
newInstanceFromSource(Schema schema, int id, java.lang.String name, java.lang.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, getCreateSQLForCopy, getJavaClassName
-
Methods inherited from class org.h2.schema.SchemaObject
getSchema, getSQL, getSQL, isHidden
-
Methods inherited from class org.h2.engine.DbObject
getChildren, getComment, getCreateSQLForMeta, getDatabase, getId, getModificationId, getName, invalidate, isTemporary, isValid, rename, setComment, setModified, setObjectName, setTemporary, toString
-
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
-
methodName
private java.lang.String methodName
-
source
private java.lang.String source
-
javaMethods
private FunctionAlias.JavaMethod[] javaMethods
-
deterministic
private boolean deterministic
-
-
Constructor Detail
-
FunctionAlias
private FunctionAlias(Schema schema, int id, java.lang.String name)
-
-
Method Detail
-
newInstance
public static FunctionAlias newInstance(Schema schema, int id, java.lang.String name, java.lang.String javaClassMethod, boolean force)
Create a new alias based on a method name.- Parameters:
schema
- the schemaid
- the idname
- the namejavaClassMethod
- the class and method nameforce
- 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, java.lang.String name, java.lang.String source, boolean force)
Create a new alias based on source code.- Parameters:
schema
- the schemaid
- the idname
- the namesource
- the source codeforce
- create the object even if the class or method does not exist- Returns:
- the database object
-
init
private void init(boolean force)
-
load
private void load()
-
loadFromSource
private void loadFromSource()
-
loadClass
private void loadClass()
-
getMethodSignature
private static java.lang.String getMethodSignature(java.lang.reflect.Method m)
-
getDropSQL
public java.lang.String getDropSQL()
Description copied from class:DbObject
Construct a DROP ... SQL statement for this object.- Overrides:
getDropSQL
in classDbObject
- Returns:
- the SQL statement
-
getCreateSQL
public java.lang.String getCreateSQL()
Description copied from class:DbObject
Construct the CREATE ... SQL statement for this object.- Specified by:
getCreateSQL
in classDbObject
- Returns:
- the SQL statement
-
getType
public int getType()
Description copied from class:DbObject
Get 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 classDbObject
- 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 java.lang.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 java.lang.String getSource()
-
-