# Package org.apache.commons.jexl3.introspection

package org.apache.commons.jexl3.introspection

## Provides high-level introspective services.

The Uberspect, JexlMethod, JexlPropertyGet and JexlPropertySet interfaces form the exposed face of introspective services.

The Uberspectimpl is the concrete class implementing the Uberspect interface. Deriving from this class is the preferred way of augmenting Jexl introspective capabilities when special needs to be fulfilled or when default behaviors need to be modified.

- Related Packages
  Package
  Description
  org.apache.commons.jexl3
  Provides a framework for evaluating JEXL expressions.
  org.apache.commons.jexl3.annotations
  Provides annotation for introspection services.
  org.apache.commons.jexl3.scripting
  Contains the JSR-223 Scripting Engine for JEXL script.
- Class
  Description
  JexlMethod
  Interface used for regular method invocation.
  JexlPermissions
  This interface describes permissions used by JEXL introspection that constrain which packages/classes/constructors/fields/methods are made visible to JEXL scripts.
  JexlPermissions.ClassPermissions
  A permission delegation that augments the RESTRICTED permission with an explicit set of classes.
  JexlPermissions.Delegate
  A base for permission delegation allowing functional refinement.
  JexlPropertyGet
  Interface for getting values that appear to be properties.
  JexlPropertySet
  Interface used for setting values that appear to be properties.
  JexlSandbox
  A sandbox describes permissions on a class by explicitly allowing or forbidding access to methods and properties through "allowlists" and "blocklists".
  JexlSandbox.BlackSet
  Deprecated.
  since 3.2, use `JexlSandbox.BlockSet`
  JexlSandbox.Names
  A base set of names.
  JexlSandbox.Permissions
  Contains the allow or block lists for properties and methods for a given class.
  JexlSandbox.WhiteSet
  Deprecated.
  since 3.2, use `JexlSandbox.AllowSet`
  JexlUberspect
  'Federated' introspection/reflection interface to allow JEXL introspection behavior to be customized.
  JexlUberspect.ClassConstantResolver
  A marker interface that solves a class constant by name.
  JexlUberspect.ClassNameResolver
  A marker interface that solves a simple class name into a fully qualified one.
  JexlUberspect.ConstantResolverFactory
  The factory type for creating constant resolvers.
  JexlUberspect.JexlResolver
  The various builtin property resolvers.
  JexlUberspect.PropertyResolver
  Abstracts getting property setter and getter.
  JexlUberspect.ResolverStrategy
  Determines property resolution strategy.