Class JexlPermissions.Delegate

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Delegate​(JexlPermissions delegate)
      Constructs a new instance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean allow​(java.lang.Class<?> clazz)
      Checks whether a class allows JEXL introspection.
      boolean allow​(java.lang.Package pack)
      Checks whether a package allows JEXL introspection.
      boolean allow​(java.lang.reflect.Constructor<?> ctor)
      Checks whether a constructor allows JEXL introspection.
      boolean allow​(java.lang.reflect.Field field)
      Checks whether a field explicitly disallows JEXL introspection.
      boolean allow​(java.lang.reflect.Method method)
      Checks whether a method allows JEXL introspection.
      JexlPermissions compose​(java.lang.String... src)
      Compose these permissions with a new set.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • base

        protected final JexlPermissions base
        The permissions we delegate to.
    • Constructor Detail

      • Delegate

        protected Delegate​(JexlPermissions delegate)
        Constructs a new instance.
        Parameters:
        delegate - the delegate.
    • Method Detail

      • allow

        public boolean allow​(java.lang.Class<?> clazz)
        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 interface JexlPermissions
        Parameters:
        clazz - the class to check
        Returns:
        true if JEXL is allowed to introspect, false otherwise
      • allow

        public boolean allow​(java.lang.reflect.Constructor<?> ctor)
        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 interface JexlPermissions
        Parameters:
        ctor - the constructor to check
        Returns:
        true if JEXL is allowed to introspect, false otherwise
      • allow

        public boolean allow​(java.lang.reflect.Field field)
        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 interface JexlPermissions
        Parameters:
        field - the field to check
        Returns:
        true if JEXL is allowed to introspect, false otherwise
      • allow

        public boolean allow​(java.lang.reflect.Method method)
        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 interface JexlPermissions
        Parameters:
        method - the method to check
        Returns:
        true if JEXL is allowed to introspect, false otherwise
      • allow

        public boolean allow​(java.lang.Package pack)
        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 interface JexlPermissions
        Parameters:
        pack - the package
        Returns:
        true if JEXL is allowed to introspect, false otherwise
      • compose

        public JexlPermissions compose​(java.lang.String... src)
        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 JexlPermissions.RESTRICTED.compose("com.my.app.*") would extend the restricted set of permissions by allowing the com.my.app package.

        Specified by:
        compose in interface JexlPermissions
        Parameters:
        src - the new constraints
        Returns:
        the new permissions