Class ImportHandler

java.lang.Object
jakarta.el.ImportHandler

public class ImportHandler extends Object
Manages class and package imports for EL expressions, similar to Java import statements. The ImportHandler resolves unqualified class names to their fully qualified counterparts, supports static imports, and maintains a set of standard packages that are automatically available in EL expressions.
Since:
EL 3.0
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs an ImportHandler with the java.lang package pre-imported.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Imports a class so it can be referenced by its simple name in EL expressions.
    void
    Imports all classes from a package so they can be referenced by their simple names in EL expressions.
    void
    Imports a static field or method so it can be referenced by its simple name in EL expressions.
    Resolves an unqualified class name to a Class object by searching the registered class imports and package imports.
    Resolves a statically imported member name to the Class that declares it.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ImportHandler

      public ImportHandler()
      Constructs an ImportHandler with the java.lang package pre-imported. The java.lang package is automatically available in all EL expressions.
  • Method Details

    • importStatic

      public void importStatic(String name) throws ELException
      Imports a static field or method so it can be referenced by its simple name in EL expressions. The argument must be a fully qualified name in the form className.staticMemberName. The static member must be public.
      Parameters:
      name - the fully qualified name of the static member to import
      Throws:
      ELException - if the name is invalid, the class cannot be found, the static member does not exist, or the import would be ambiguous
    • importClass

      public void importClass(String name) throws ELException
      Imports a class so it can be referenced by its simple name in EL expressions. The argument must be a fully qualified class name. If the simple name conflicts with a previously imported class, an exception is thrown.
      Parameters:
      name - the fully qualified class name to import
      Throws:
      ELException - if the class name is invalid or conflicts with an existing import
    • importPackage

      public void importPackage(String name)
      Imports all classes from a package so they can be referenced by their simple names in EL expressions. Classes from the imported package are resolved during expression evaluation. If a simple name is ambiguous across multiple imported packages, an ELException is thrown at resolution time.
      Parameters:
      name - the package name to import
    • resolveClass

      public Class<?> resolveClass(String name)
      Resolves an unqualified class name to a Class object by searching the registered class imports and package imports. The name must not contain a dot. Results are cached for performance. If the name is ambiguous across multiple packages, an ELException is thrown.
      Parameters:
      name - the unqualified class name to resolve
      Returns:
      the resolved Class, or null if the class cannot be found
      Throws:
      ELException - if the class name is ambiguous across imported packages
    • resolveStatic

      public Class<?> resolveStatic(String name)
      Resolves a statically imported member name to the Class that declares it. The name is the simple name of the static field or method as registered by importStatic(String).
      Parameters:
      name - the simple name of the static member
      Returns:
      the declaring Class, or null if not found