java.lang.Object
edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.AbstractExecutor
edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.AbstractExecutor.Get
All Implemented Interfaces:
JexlPropertyGet
Direct Known Subclasses:
BooleanGetExecutor, DuckGetExecutor, ListGetExecutor, MapGetExecutor, PropertyGetExecutor
Enclosing class:
AbstractExecutor

public abstract static class AbstractExecutor.Get extends AbstractExecutor implements JexlPropertyGet
Abstract class that is used to execute an arbitrary 'get' method.
  • Constructor Details

    • Get

      protected Get(Class<?> theClass, Method theMethod)
      Default and sole constructor.
      Parameters:
      theClass - the class this executor applies to
      theMethod - the method held by this executor
  • Method Details

    • invoke

      public final Object invoke(Object obj) throws Exception
      Method used to get the property value of an object.
      Specified by:
      invoke in interface JexlPropertyGet
      Parameters:
      obj - the object to get the property value from.
      Returns:
      the property value.
      Throws:
      Exception - on any error.
    • tryInvoke

      public final Object tryInvoke(Object obj, Object key)
      Attempts to reuse this JexlPropertyGet, checking that it is compatible with the actual set of arguments.
      Specified by:
      tryInvoke in interface JexlPropertyGet
      Parameters:
      obj - the object to invoke the property get upon
      key - the property key to get
      Returns:
      the result of the method invocation that should be checked by tryFailed to determine if it succeeded or failed.
    • execute

      public abstract Object execute(Object obj) throws IllegalAccessException, InvocationTargetException
      Gets the property value from an object.
      Parameters:
      obj - The object to get the property from.
      Returns:
      The property value.
      Throws:
      IllegalAccessException - Method is inaccessible.
      InvocationTargetException - Method body throws an exception.
    • tryExecute

      public Object tryExecute(Object obj, Object key)
      Tries to reuse this executor, checking that it is compatible with the actual set of arguments.

      Compatibility means that: o must be of the same class as this executor's target class and property must be of the same class as this executor's target property (for list and map based executors) and have the same value (for other types).

      Parameters:
      obj - The object to get the property from.
      key - The property to get from the object.
      Returns:
      The property value or TRY_FAILED if checking failed.