Groovy 1.7.0

## org.codehaus.groovy.runtime.metaclass
Class ReflectorLoader

    java.lang.Object
      java.lang.ClassLoader
          org.codehaus.groovy.runtime.metaclass.ReflectorLoader

    class ReflectorLoader
    extends ClassLoader

Reflector creation helper. This class is used to define the Refloctor 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).

author:
  Jochen Theodorou

version:
  $Revision: 16708 $

Constructor Summary
`ReflectorLoader(ClassLoader parent)` creates a RelfectorLoader.

Method Summary
`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.
`Class` | `getLoadedClass(String name)` try to load one of the defined Reflector classes by name.
`static String` | `getReflectorName(Class theClass)`
`protected Class` | `loadClass(String name, boolean resolve)` Loads a class per name.

Methods inherited from class ClassLoader
loadClass, getSystemClassLoader, getResource, getResourceAsStream, getSystemResource, getSystemResourceAsStream, clearAssertionStatus, getParent, getResources, getSystemResources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, wait, wait, wait, hashCode, getClass, equals, toString, notify, notifyAll

Methods inherited from class Object
wait, wait, wait, hashCode, getClass, equals, toString, notify, notifyAll

Constructor Detail

### ReflectorLoader

    public ReflectorLoader(ClassLoader parent)

  creates a RelfectorLoader.
  param:
    parent the parent loader. This should never be null!

Method Detail

### defineClass

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

  helper method to define Reflector classes.
  param:
    name of the Reflector
  param:
    bytecode the bytecode
  param:
    domain the protection domain
  return:
    the generated class

### findClass

    protected Class findClass(String name)

  Tries to find a Groovy class.
  return:
    the class if found
  throws:
    ClassNotFoundException if not found

### getLoadedClass

    public Class getLoadedClass(String name)

  try to load one of the defined Reflector classes by name.
  param:
    name of the Reflector class
  return:
    the Reflector class if defined else null.

### getReflectorName

    public static String getReflectorName(Class theClass)

### loadClass

    protected Class loadClass(String name, boolean resolve)

  Loads 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.
  param:
    name of the class to load
  param:
    resolve is true if the class should be resolved
  see:
    Reflector
  see:
    ClassLoader#loadClass(String, boolean)

Copyright © 2003-2009 The Codehaus. All rights reserved.