Package: org.codehaus.groovy.runtime.metaclass

## [Java] Class ReflectorLoader

- org.codehaus.groovy.runtime.metaclass.ReflectorLoader

-     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 Summary

    Constructors
    Constructor and description
    `ReflectorLoader(ClassLoader parent)` creates a ReflectorLoader.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public Class` | `defineClass(String name, byte[] bytecode, ProtectionDomain domain)` helper method to define Reflector classes.
    `` | `public Class` | `getLoadedClass(String name)` try to load one of the defined Reflector classes by name.

  - ### Inherited Methods Summary

    Inherited Methods
    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`

- - ### Constructor Detail

    - #### public ReflectorLoader(ClassLoader parent)

      creates a ReflectorLoader.

      Parameters:
        `parent` - the parent loader. This should never be null!

  - ### Method Detail

    - #### public Class defineClass(String name, byte[] bytecode, ProtectionDomain domain)

      helper method to define Reflector classes.

      Parameters:
        `name` - of the Reflector
        `bytecode` - the bytecode
        `domain` - the protection domain
      Returns:
        the generated class

    - #### public Class getLoadedClass(String name)

      try to load one of the defined Reflector classes by name.

      Parameters:
        `name` - of the Reflector class
      Returns:
        the Reflector class if defined else null.