Package org.h2.schema

Class FunctionAlias.JavaMethod

java.lang.Object
org.h2.schema.FunctionAlias.JavaMethod
All Implemented Interfaces:
Comparable<FunctionAlias.JavaMethod>
Enclosing class:
FunctionAlias

public static class FunctionAlias.JavaMethod extends Object implements Comparable<FunctionAlias.JavaMethod>
There may be multiple Java methods that match a function name. Each method must have a different number of parameters however. This helper class represents one such method.
  • Field Details

    • id

      private final int id
    • method

      private final Method method
    • dataType

      private final TypeInfo dataType
    • hasConnectionParam

      private boolean hasConnectionParam
    • varArgs

      private boolean varArgs
    • varArgClass

      private Class<?> varArgClass
    • paramCount

      private int paramCount
  • Constructor Details

    • JavaMethod

      JavaMethod(Method method, int id)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hasConnectionParam

      public boolean hasConnectionParam()
      Check if this function requires a database connection.
      Returns:
      if the function requires a connection
    • getValue

      public Value getValue(SessionLocal session, Expression[] args, boolean columnList)
      Call the user-defined function and return the value.
      Parameters:
      session - the session
      args - the argument list
      columnList - true if the function should only return the column list
      Returns:
      the value
    • getTableValue

      public ResultInterface getTableValue(SessionLocal session, Expression[] args, boolean columnList)
      Call the table user-defined function and return the value.
      Parameters:
      session - the session
      args - the argument list
      columnList - true if the function should only return the column list
      Returns:
      the value
    • resultSetToResult

      public static ResultInterface resultSetToResult(SessionLocal session, ResultSet rs, int maxrows)
      Create a result for the given result set.
      Parameters:
      session - the session
      rs - the result set
      maxrows - the maximum number of rows to read (0 to just read the meta data)
      Returns:
      the value
    • execute

      private Object execute(SessionLocal session, Expression[] args, boolean columnList)
    • getColumnClasses

      public Class<?>[] getColumnClasses()
    • getDataType

      public TypeInfo getDataType()
      Returns data type information for regular functions or null for table value functions.
      Returns:
      data type information for regular functions or null for table value functions
    • getParameterCount

      public int getParameterCount()
    • isVarArgs

      public boolean isVarArgs()
    • compareTo

      public int compareTo(FunctionAlias.JavaMethod m)
      Specified by:
      compareTo in interface Comparable<FunctionAlias.JavaMethod>