Class JexlPermissions.Delegate
- All Implemented Interfaces:
JexlPermissions
- Direct Known Subclasses:
JexlPermissions.ClassPermissions
- Enclosing interface:
- JexlPermissions
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.commons.jexl3.introspection.JexlPermissions
JexlPermissions.ClassPermissions, JexlPermissions.Delegate
-
Field Summary
Fields inherited from interface org.apache.commons.jexl3.introspection.JexlPermissions
RESTRICTED, UNRESTRICTED
-
Constructor Summary
ModifierConstructorDescriptionprotected
Delegate
(JexlPermissions delegate) Constructs a new instance. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks whether a class allows JEXL introspection.boolean
Checks whether a package allows JEXL introspection.boolean
allow
(Constructor<?> ctor) Checks whether a constructor allows JEXL introspection.boolean
Checks whether a field explicitly disallows JEXL introspection.boolean
Checks whether a method allows JEXL introspection.Compose these permissions with a new set.
-
Field Details
-
base
The permissions we delegate to.
-
-
Constructor Details
-
Delegate
Constructs a new instance.- Parameters:
delegate
- the delegate.
-
-
Method Details
-
allow
Description copied from interface:JexlPermissions
Checks whether a class allows JEXL introspection.If the class disallows JEXL introspection, none of its constructors, methods or fields as well as derived classes are visible to JEXL and can not be used in scripts or expressions. If one of its super-classes is not allowed, tbe class is not allowed either.
For interfaces, only methods and fields are disallowed in derived interfaces or implementing classes.
- Specified by:
allow
in interfaceJexlPermissions
- Parameters:
clazz
- the class to check- Returns:
- true if JEXL is allowed to introspect, false otherwise
-
allow
Description copied from interface:JexlPermissions
Checks whether a constructor allows JEXL introspection.If a constructor is not allowed, the new operator can not be used to instantiate its declared class in scripts or expressions.
- Specified by:
allow
in interfaceJexlPermissions
- Parameters:
ctor
- the constructor to check- Returns:
- true if JEXL is allowed to introspect, false otherwise
-
allow
Description copied from interface:JexlPermissions
Checks whether a field explicitly disallows JEXL introspection.If a field is not allowed, it can not resolved and accessed in scripts or expressions.
- Specified by:
allow
in interfaceJexlPermissions
- Parameters:
field
- the field to check- Returns:
- true if JEXL is allowed to introspect, false otherwise
-
allow
Description copied from interface:JexlPermissions
Checks whether a method allows JEXL introspection.If a method is not allowed, it can not resolved and called in scripts or expressions.
Since methods can be overridden and overloaded, this also checks that no superclass or interface explicitly disallows this methods.
- Specified by:
allow
in interfaceJexlPermissions
- Parameters:
method
- the method to check- Returns:
- true if JEXL is allowed to introspect, false otherwise
-
allow
Description copied from interface:JexlPermissions
Checks whether a package allows JEXL introspection.If the package disallows JEXL introspection, none of its classes or interfaces are visible to JEXL and can not be used in scripts or expression.
- Specified by:
allow
in interfaceJexlPermissions
- Parameters:
pack
- the package- Returns:
- true if JEXL is allowed to introspect, false otherwise
-
compose
Description copied from interface:JexlPermissions
Compose these permissions with a new set.This is a convenience method meant to easily give access to the packages JEXL is used to integrate with. For instance, using
would extend the restricted set of permissions by allowing the com.my.app package.JexlPermissions.RESTRICTED
.compose("com.my.app.*")- Specified by:
compose
in interfaceJexlPermissions
- Parameters:
src
- the new constraints- Returns:
- the new permissions
-