Class ConstructorMethod

java.lang.Object
org.apache.commons.jexl3.internal.introspection.ConstructorMethod
All Implemented Interfaces:
JexlMethod

public final class ConstructorMethod extends Object implements JexlMethod
A JexlMethod that wraps a constructor.
  • Field Details

    • ctor

      private final Constructor<?> ctor
      The wrapped constructor.
  • Constructor Details

    • ConstructorMethod

      ConstructorMethod(Constructor<?> theCtor)
      Creates a constructor method.
      Parameters:
      theCtor - the constructor to wrap
  • Method Details

    • discover

      public static ConstructorMethod discover(Introspector is, Object ctorHandle, Object... args)
      Discovers a class constructor and wrap it as a JexlMethod.
      Parameters:
      is - the introspector
      ctorHandle - a class or class name
      args - constructor arguments
      Returns:
      a JexlMethod
    • getReturnType

      public Class<?> getReturnType()
      Description copied from interface: JexlMethod
      returns the return type of the method invoked.
      Specified by:
      getReturnType in interface JexlMethod
      Returns:
      return type
    • invoke

      public Object invoke(Object obj, Object... params) throws Exception
      Description copied from interface: JexlMethod
      Invocation method, called when the method invocation should be performed and a value returned.
      Specified by:
      invoke in interface JexlMethod
      Parameters:
      obj - the object
      params - method parameters.
      Returns:
      the result
      Throws:
      Exception - on any error.
    • isCacheable

      public boolean isCacheable()
      Description copied from interface: JexlMethod
      Specifies if this JexlMethod is cacheable and able to be reused for this class of object it was returned for.
      Specified by:
      isCacheable in interface JexlMethod
      Returns:
      true if can be reused for this class, false if not
    • tryFailed

      public boolean tryFailed(Object rval)
      Description copied from interface: JexlMethod
      Checks whether a tryInvoke return value indicates a failure or not.

      Usage is : Object r = tryInvoke(...); if (tryFailed(r) {...} else {...}

      Specified by:
      tryFailed in interface JexlMethod
      Parameters:
      rval - the value returned by tryInvoke
      Returns:
      true if tryInvoke failed, false otherwise
    • tryInvoke

      public Object tryInvoke(String name, Object obj, Object... args)
      Description copied from interface: JexlMethod
      Attempts to reuse this JexlMethod, checking that it is compatible with the actual set of arguments. Related to isCacheable since this method is often used with cached JexlMethod instances.
      Specified by:
      tryInvoke in interface JexlMethod
      Parameters:
      name - the method name
      obj - the object to invoke the method upon
      args - the method arguments
      Returns:
      the result of the method invocation that should be checked by tryFailed to determine if it succeeded or failed.