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 classFunctionAlias.JavaMethodThere may be multiple Java methods that match a function name.
-
Field Summary
Fields Modifier and Type Field Description private booleandeterministicprivate FunctionAlias.JavaMethod[]javaMethodsprivate java.lang.StringmethodNameprivate java.lang.Stringsource-
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 privateFunctionAlias(Schema schema, int id, java.lang.String name)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FunctionAlias.JavaMethodfindJavaMethod(Expression[] args)Find the Java method that matches the arguments.java.lang.StringgetCreateSQL()Construct the CREATE ...java.lang.StringgetDropSQL()Construct a DROP ...java.lang.StringgetJavaMethodName()FunctionAlias.JavaMethod[]getJavaMethods()Get the Java methods mapped by this function.private static java.lang.StringgetMethodSignature(java.lang.reflect.Method m)java.lang.StringgetSource()intgetType()Get the object type.private voidinit(boolean force)booleanisDeterministic()private voidload()private voidloadClass()private voidloadFromSource()static FunctionAliasnewInstance(Schema schema, int id, java.lang.String name, java.lang.String javaClassMethod, boolean force)Create a new alias based on a method name.static FunctionAliasnewInstanceFromSource(Schema schema, int id, java.lang.String name, java.lang.String source, boolean force)Create a new alias based on source code.voidremoveChildrenAndResources(SessionLocal session)Delete all dependent children objects and resources of this object.voidsetDeterministic(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:DbObjectConstruct a DROP ... SQL statement for this object.- Overrides:
getDropSQLin classDbObject- Returns:
- the SQL statement
-
getCreateSQL
public java.lang.String getCreateSQL()
Description copied from class:DbObjectConstruct the CREATE ... SQL statement for this object.- Specified by:
getCreateSQLin classDbObject- Returns:
- the SQL statement
-
getType
public int getType()
Description copied from class:DbObjectGet the object type.
-
removeChildrenAndResources
public void removeChildrenAndResources(SessionLocal session)
Description copied from class:DbObjectDelete all dependent children objects and resources of this object.- Specified by:
removeChildrenAndResourcesin 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()
-
-