public class ReflectorLoader extends ClassLoader
Reflector creation helper. This class is used to define the Reflector classes. For each ClassLoader such a loader will be created by MetaClass. Special about this loader is, that it knows the classes form the Groovy Runtime. The Reflector class is resolved in different ways: During the definition of a class Reflector will resolve to the Reflector class of the runtime, even if there is another Reflector class in the parent loader. After the new class is defined Reflector will resolve like other Groovy classes. This loader is able to resolve all Groovy classes even if the parent does not know them, but the parent serves first (Reflector during a class definition is different).
Constructor and description |
---|
ReflectorLoader(ClassLoader parent) creates a ReflectorLoader. |
Type Params | Return Type | Name and description |
---|---|---|
|
public Class |
defineClass(String name, byte[] bytecode, ProtectionDomain domain) helper method to define Reflector classes. |
|
protected Class |
findClass(String name) Tries to find a Groovy class. |
|
public Class |
getLoadedClass(String name) try to load one of the defined Reflector classes by name. |
|
protected Class |
loadClass(String name, boolean resolve) Loads a class per name. |
Methods inherited from class | Name |
---|---|
class ClassLoader |
getName, loadClass, getPlatformClassLoader, getSystemClassLoader, getSystemResourceAsStream, getResourceAsStream, getSystemResource, getResource, getResources, getDefinedPackage, resources, isRegisteredAsParallelCapable, getSystemResources, getParent, getUnnamedModule, getDefinedPackages, setDefaultAssertionStatus, setPackageAssertionStatus, setClassAssertionStatus, clearAssertionStatus, wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
creates a ReflectorLoader.
parent
- the parent loader. This should never be null!helper method to define Reflector classes.
name
- of the Reflectorbytecode
- the bytecodedomain
- the protection domainTries to find a Groovy class.
try to load one of the defined Reflector classes by name.
name
- of the Reflector classLoads a class per name. Unlike a normal loadClass this version behaves different during a class definition. In that case it checks if the class we want to load is Reflector and returns class if the check is successful. If it is not during a class definition it just calls the super class version of loadClass.
name
- of the class to loadresolve
- is true if the class should be resolvedCopyright © 2003-2022 The Apache Software Foundation. All rights reserved.