Package javassist

# Interface Translator

All Known Implementing Classes:
  `Reflection`, `StubGenerator`

public interface Translator
An observer of `Loader`. The users can define a class implementing this interface and attach an instance of that class to a `Loader` object so that it can translate a class file when the class file is loaded into the JVM.

See Also:
  - `Loader.addTranslator(ClassPool, Translator)`

## Method Summary

Modifier and Type
Method
Description
`void`
`onLoad(ClassPool pool, String classname)`
Is invoked by a `Loader` for notifying that a class is loaded.
`void`
`start(ClassPool pool)`
Is invoked by a `Loader` for initialization when the object is attached to the `Loader` object.

## Method Details

### start

void start(ClassPool pool) throws NotFoundException, CannotCompileException
Is invoked by a `Loader` for initialization when the object is attached to the `Loader` object. This method can be used for getting (for caching) some `CtClass` objects that will be accessed in `onLoad()` in `Translator`.

Parameters:
  `pool` - the `ClassPool` that this translator should use.
Throws:
  `NotFoundException` - if a `CtClass` cannot be found.
  `CannotCompileException` - if the initialization by this method fails.
See Also:
  - `Loader`

### onLoad

void onLoad(ClassPool pool, String classname) throws NotFoundException, CannotCompileException
Is invoked by a `Loader` for notifying that a class is loaded. The `Loader` calls

     pool.get(classname).toBytecode()

to read the class file after `onLoad()` returns.

`classname` may be the name of a class that has not been created yet. If so, `onLoad()` must create that class so that the `Loader` can read it after `onLoad()` returns.

Parameters:
  `pool` - the `ClassPool` that this translator should use.
  `classname` - the name of the class being loaded.
Throws:
  `NotFoundException` - if a `CtClass` cannot be found.
  `CannotCompileException` - if the code transformation by this method fails.
See Also:
  - `Loader`