Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bea.jvm
Interface ClassLibrary

All Superinterfaces:
  Describable, JVMComponent

public interface ClassLibrary
extends JVMComponent

Interface to query and monitor the JVM's set of currently loaded classes and their classloaders.

Author:
  Calle Wilund, Marcus Hirt

Method Summary
`void` | `addClassLoadListener(java.lang.ClassLoader loader, ClassLoadListener listener)` Add a listener to receive event notification of Class load/unload.
`void` | `addClassLoadListener(ClassLoadListener listener)` Adds a listener to receive event notification of any Class load/unload.
`java.util.Collection` | `getAllClasses(java.lang.ClassLoader loader)` Find all (loaded) classes in this loader (will _not_ include parent loaders).
`java.util.Collection` | `getAllClasses(java.lang.String className)` Find all classes with this name in the JVM (will search through all class loaders, but will not load the Class if not found.)
`java.util.Collection` | `getAllClassLoaders()` Returns all the ClassLoaders currently in use.
`java.lang.Class` | `getClass(java.lang.String className, java.lang.ClassLoader loader)` Find an already loaded class in the JVM.
`java.lang.Class` | `getClass(java.lang.String className, java.lang.ClassLoader loader, boolean load)` Find a named class in the JVM.
`ClassPreProcessor` | `getClassPreProcessor()` Returns the ClassPreProcessor currently in use.
`void` | `redefineClass(java.lang.Class cl, byte[] buffer, int offset, int length)` Redefines the specified class.
`void` | `removeClassLoadListener(ClassLoadListener listener)` Removes the specified ClassLoadListener.
`void` | `setClassPreProcessor(ClassPreProcessor preProcessor)` Registers a class preprocessor.

Methods inherited from interface com.bea.jvm.Describable
`getDescription`

Method Detail

### getAllClassLoaders

    public java.util.Collection getAllClassLoaders()
                                            throws NotAvailableException

  Returns all the ClassLoaders currently in use.

  Returns:
    all java.lang.ClassLoaders currently in the system.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.
  See Also:
    `ClassLoader`

### getClass

    public java.lang.Class getClass(java.lang.String className,
                                    java.lang.ClassLoader loader,
                                    boolean load)
                             throws NotAvailableException,
                                    java.lang.ClassNotFoundException

  Find a named class in the JVM.

  Parameters:
    `className` - the fully qualified name of the class.
    `loader` - the ClassLoader to search in (will include all parent loaders also).
    `load` - whether to initiate a Class load if the class is not already loaded.
  Returns:
    the class matching the the parameters above.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.
    `java.lang.ClassNotFoundException` - if the class can't be found using the specified ClassLoader, or if either the loader or name is null.
  See Also:
    `Class`

### getClass

    public java.lang.Class getClass(java.lang.String className,
                                    java.lang.ClassLoader loader)
                             throws NotAvailableException,
                                    java.lang.ClassNotFoundException

  Find an already loaded class in the JVM.

  Parameters:
    `className` - the fully qualified name of the class.
    `loader` - the ClassLoader to search in (will include all parent loaders also).
  Returns:
    the class mathing the name, and that is loaded in the specified ClassLoader.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.
    `java.lang.ClassNotFoundException` - if either the name or the loader is null.
  See Also:
    `Class`

### getAllClasses

    public java.util.Collection getAllClasses(java.lang.String className)
                                       throws NotAvailableException,
                                              java.lang.ClassNotFoundException

  Find all classes with this name in the JVM (will search through all class loaders, but will not load the Class if not found.) Will only return the classes from the defining class loaders, i.e. there will be no duplicates.

  Parameters:
    `className` - the fully qualified name of the class.
  Returns:
    all classes in the JVM matching the specified name.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.
    `java.lang.ClassNotFoundException` - if the argument is null, or if the class can't be found.
  See Also:
    `Class`

### getAllClasses

    public java.util.Collection getAllClasses(java.lang.ClassLoader loader)
                                       throws NotAvailableException

  Find all (loaded) classes in this loader (will _not_ include parent loaders). This method throws a NullPointerException if the argument is null.

  Parameters:
    `loader` - the ClassLoader to search.
  Returns:
    all the classes loaded in the specified ClassLoader.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.
  See Also:
    `Class`, `ClassLoader`

### addClassLoadListener

    public void addClassLoadListener(java.lang.ClassLoader loader,
                                     ClassLoadListener listener)
                              throws NotAvailableException

  Add a listener to receive event notification of Class load/unload. If either of the argument is null, a NullPointerException will be thrown.

  Parameters:
    `loader` - the ClassLoader on which we want to listen.
    `listener` - the event listener to add.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.

### addClassLoadListener

    public void addClassLoadListener(ClassLoadListener listener)
                              throws NotAvailableException

  Adds a listener to receive event notification of any Class load/unload. This method throws a NullPointerException if the argument is null.

  Parameters:
    `listener` - the listener to add.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.

### removeClassLoadListener

    public void removeClassLoadListener(ClassLoadListener listener)
                                 throws NotAvailableException

  Removes the specified ClassLoadListener. If the argument is null, the request is going to be ignored. This method throws a NullPointerException if the argument is null.

  Parameters:
    `listener` - the ClassLoadListener to stop receiving class load events.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.

### redefineClass

    public void redefineClass(java.lang.Class cl,
                              byte[] buffer,
                              int offset,
                              int length)
                       throws NotAvailableException,
                              ClassRedefinitionException

  Redefines the specified class. This method throws a NullPointerException if the class or byte buffer is null. It throws ArrayIndexOutOfBounds if either offset or length are wrong.

  Parameters:
    `cl` - the class to be redefined.
    `buffer` - the byte buffer containing the bytecode for the new version of the class.
    `offset` - the offset to start reading from.
    `length` - the length to read.
  Throws:
    `ClassRedefinitionException` - if the transform could not be completed due to an illegal transform (error in the supplied bytecode). Note that this is an unchecked (Runtime) exception; it will not be verified by the compiler!
    NullPointerException if either class or byte buffer is null.
    ArrayIndexOutOfBoundsException if either offset or length mismatch.
    NotAvailableException if this functionality isn't available in this JVM. This exception will be thrown by JRockit versions earlier than Ariane.
    `NotAvailableException`

### setClassPreProcessor

    public void setClassPreProcessor(ClassPreProcessor preProcessor)
                              throws NotAvailableException

  Registers a class preprocessor. The preprocessor may redefine all byte buffers from which the vm will create a class, i.e, it is called after ClassLoader.defineClass, but before the actual class is created in the virtual machine.

  NOTE: Only one (1) preprocessor can be active in the system at any time. If a client needs to chain preprocessors, this should be done by wrapping, i.e. getting the previous preprocessor and explicitly calling it either before or after the preprocessing is done.

  If preProcessor is null, any previously registered preprocessor is removed.

  Parameters:
    `preProcessor` - a ClassPreProcessor to recieve callbacks on class definitions.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.
  See Also:
    `getClassPreProcessor()`, `ClassPreProcessor`

### getClassPreProcessor

    public ClassPreProcessor getClassPreProcessor()
                                           throws NotAvailableException

  Returns the ClassPreProcessor currently in use. Returns null if no ClassPreProcessor is in use.

  Returns:
    the ClassPreProcessor currently in use.
  Throws:
    `NotAvailableException` - if this functionality isn't available in this JVM.
  See Also:
    `ClassPreProcessor`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD