Package jakarta.el
Class ImportHandler
- java.lang.Object
-
- jakarta.el.ImportHandler
-
public class ImportHandler extends java.lang.ObjectHandles imports of class names and package names. An imported package name implicitly imports all the classes in the package. A class that has been imported can be used without its package name. The name is resolved to its full (package and class) name at evaluation time.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.lang.Class<?>>classMapprivate java.util.Map<java.lang.String,java.lang.String>classNameMapprivate java.util.HashSet<java.lang.String>notAClassprivate java.util.List<java.lang.String>packagesprivate java.util.Map<java.lang.String,java.lang.String>staticNameMap
-
Constructor Summary
Constructors Constructor Description ImportHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidcheckModifiers(int modifiers)private java.lang.Class<?>getClassFor(java.lang.String className)voidimportClass(java.lang.String name)Import a class.voidimportPackage(java.lang.String packageName)Import all the classes in a package.voidimportStatic(java.lang.String name)Import a static field or method.java.lang.Class<?>resolveClass(java.lang.String name)Resolve a class name.private java.lang.Class<?>resolveClassFor(java.lang.String className)java.lang.Class<?>resolveStatic(java.lang.String name)Resolve a static field or method name.
-
-
-
Field Detail
-
classNameMap
private java.util.Map<java.lang.String,java.lang.String> classNameMap
-
classMap
private java.util.Map<java.lang.String,java.lang.Class<?>> classMap
-
staticNameMap
private java.util.Map<java.lang.String,java.lang.String> staticNameMap
-
notAClass
private java.util.HashSet<java.lang.String> notAClass
-
packages
private java.util.List<java.lang.String> packages
-
-
Method Detail
-
importStatic
public void importStatic(java.lang.String name) throws ELExceptionImport a static field or method.- Parameters:
name- The static member name, including the full class name, to be imported- Throws:
ELException- if the name does not include a ".".
-
importClass
public void importClass(java.lang.String name) throws ELExceptionImport a class.- Parameters:
name- The full class name of the class to be imported- Throws:
ELException- if the name does not include a ".".
-
importPackage
public void importPackage(java.lang.String packageName)
Import all the classes in a package.- Parameters:
packageName- The package name to be imported
-
resolveClass
public java.lang.Class<?> resolveClass(java.lang.String name)
Resolve a class name.- Parameters:
name- The name of the class (without package name) to be resolved.- Returns:
- If the class has been imported previously, with
importClass(java.lang.String)orimportPackage(java.lang.String), then its Class instance. Otherwisenull. - Throws:
ELException- if the class is abstract or is an interface, or not public.
-
resolveStatic
public java.lang.Class<?> resolveStatic(java.lang.String name)
Resolve a static field or method name.- Parameters:
name- The name of the member(without package and class name) to be resolved.- Returns:
- If the field or method has been imported previously, with
importStatic(java.lang.String), then the class object representing the class that declares the static field or method. Otherwisenull. - Throws:
ELException- if the class is not public, or is abstract or is an interface.
-
resolveClassFor
private java.lang.Class<?> resolveClassFor(java.lang.String className)
-
getClassFor
private java.lang.Class<?> getClassFor(java.lang.String className)
-
checkModifiers
private void checkModifiers(int modifiers)
-
-