Package jodd.util
Class ClassLoaderStrategy.DefaultClassLoaderStrategy
- java.lang.Object
-
- jodd.util.ClassLoaderStrategy.DefaultClassLoaderStrategy
-
- All Implemented Interfaces:
ClassLoaderStrategy
- Enclosing interface:
- ClassLoaderStrategy
public static class ClassLoaderStrategy.DefaultClassLoaderStrategy extends java.lang.Object implements ClassLoaderStrategy
Default Jodd class loader strategy. Loads a class with a given name dynamically, more reliable thenClass.forName.Class will be loaded using class loaders in the following order:
- provided class loader (if any)
Thread.currentThread().getContextClassLoader()}- caller classloader
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jodd.util.ClassLoaderStrategy
ClassLoaderStrategy.DefaultClassLoaderStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanloadArrayClassByComponentTypesstatic char[]PRIMITIVE_BYTECODE_NAMEList of primitive bytecode characters that matches names list.static java.lang.String[]PRIMITIVE_TYPE_NAMESList of primitive type names.static java.lang.Class[]PRIMITIVE_TYPESList of primitive types that matches names list.
-
Constructor Summary
Constructors Constructor Description DefaultClassLoaderStrategy()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisLoadArrayClassByComponentTypes()Returns arrays class loading strategy.protected java.lang.ClassloadArrayClassByComponentType(java.lang.String className, java.lang.ClassLoader classLoader)Loads array class using component type.java.lang.ClassloadClass(java.lang.String className, java.lang.ClassLoader classLoader)Loads class by name.protected java.lang.ClassloadClass(java.lang.String className, java.lang.String arrayClassName, java.lang.ClassLoader classLoader)Loads a class using provided class loader.static java.lang.StringprepareArrayClassnameForLoading(java.lang.String className)Prepares classname for loading, respecting the arrays.voidsetLoadArrayClassByComponentTypes(boolean loadArrayClassByComponentTypes)Defines arrays class loading strategy.
-
-
-
Field Detail
-
PRIMITIVE_TYPE_NAMES
public static final java.lang.String[] PRIMITIVE_TYPE_NAMES
List of primitive type names.
-
PRIMITIVE_TYPES
public static final java.lang.Class[] PRIMITIVE_TYPES
List of primitive types that matches names list.
-
PRIMITIVE_BYTECODE_NAME
public static final char[] PRIMITIVE_BYTECODE_NAME
List of primitive bytecode characters that matches names list.
-
loadArrayClassByComponentTypes
protected boolean loadArrayClassByComponentTypes
-
-
Method Detail
-
isLoadArrayClassByComponentTypes
public boolean isLoadArrayClassByComponentTypes()
Returns arrays class loading strategy.
-
setLoadArrayClassByComponentTypes
public void setLoadArrayClassByComponentTypes(boolean loadArrayClassByComponentTypes)
Defines arrays class loading strategy. Iffalse(default), classes will be loaded byClass.forName. Iftrue, classes will be loaded by reflection and component types.
-
prepareArrayClassnameForLoading
public static java.lang.String prepareArrayClassnameForLoading(java.lang.String className)
Prepares classname for loading, respecting the arrays. Returnsnullif class name is not an array.
-
loadClass
public java.lang.Class loadClass(java.lang.String className, java.lang.ClassLoader classLoader) throws java.lang.ClassNotFoundExceptionLoads class by name.- Specified by:
loadClassin interfaceClassLoaderStrategy- Throws:
java.lang.ClassNotFoundException
-
loadClass
protected java.lang.Class loadClass(java.lang.String className, java.lang.String arrayClassName, java.lang.ClassLoader classLoader)Loads a class using provided class loader. If class is an array, it will be first loaded using theClass.forName! We must use this since for JDK >= 6 arrays will be not loaded using classloader, but only withforNamemethod. However, array loading strategy can bechanged.
-
loadArrayClassByComponentType
protected java.lang.Class loadArrayClassByComponentType(java.lang.String className, java.lang.ClassLoader classLoader) throws java.lang.ClassNotFoundExceptionLoads array class using component type.- Throws:
java.lang.ClassNotFoundException
-
-