# Package org.apache.commons.jexl3.internal.introspection

Provides low-level introspective services.

See: Description

- Class Summary
  Class | Description
  --- | ---
  ArrayIterator | An Iterator wrapper for an Object[].
  ArrayListWrapper | A class that wraps an array within an AbstractList.
  BooleanGetExecutor | Specialized executor to get a boolean property from an object.
  ConstructorMethod | A JexlMethod that wraps a constructor.
  DuckGetExecutor | Specialized executor to get a property from an object.
  DuckSetExecutor | Specialized executor to set a property of an object.
  EnumerationIterator<T> | An Iterator wrapper for an Enumeration.
  FieldGetExecutor | A JexlPropertyGet for public fields.
  FieldSetExecutor | A JexlPropertySet for public fields.
  IndexedType | Abstract an indexed property container.
  IndexedType.IndexedContainer | A generic indexed property container, exposes get(key) and set(key, value) and solves method call dynamically based on arguments.
  Introspector | This basic function of this class is to return a Method object for a particular class given the name of a method and the parameters to the method in the form of an Object[].
  ListGetExecutor | Specialized executor to get a property from a List or array.
  ListSetExecutor | Specialized executor to set a property in a List or array.
  MapGetExecutor | Specialized executor to get a property from a Map.
  MapSetExecutor | Specialized executor to set a property in a Map.
  MethodExecutor | Specialized executor to invoke a method on an object.
  MethodKey | A method key usable by the introspector cache.
  Permissions | Checks whether an element (ctor, field or method) is visible by JEXL introspection.
  PropertyGetExecutor | Specialized executor to get a property from an object.
  PropertySetExecutor | Specialized executor to set a property in an object.
  SandboxUberspect | An uberspect that controls usage of properties, methods and constructors through a sandbox.
  Uberspect | Implementation of Uberspect to provide the default introspective functionality of JEXL.

- Exception Summary
  Exception | Description
  --- | ---
  MethodKey.AmbiguousException | Simple distinguishable exception, used when we run across ambiguous overloading.

## Package org.apache.commons.jexl3.internal.introspection Description

Provides low-level introspective services.

This internal package is not intended for public usage and there is no guarantee that its public classes or methods will remain as is in subsequent versions.

The IntrospectorBase, ClassMap, MethodKey, MethodMap form the base of the introspection service. They allow to describe classes and their methods, keeping them in a cache (@see IntrospectorBase) to speed up property getters/setters and method discovery used during expression evaluation.

The cache materialized in Introspector creates one entry per class containing a map of all accessible public methods keyed by name and signature.

Copyright © 2001–2021 The Apache Software Foundation. All rights reserved.