* @param cp the <code>ClassPool</code> object for obtaining
* a class file.
* @param t a translator.
+ * @throws NotFoundException if <code>t.start()</code> throws an exception.
+ * @throws CannotCompileException if <code>t.start()</code> throws an exception.
*/
public void addTranslator(ClassPool cp, Translator t)
throws NotFoundException, CannotCompileException {
/**
* Is invoked by a <code>Loader</code> for initialization
* when the object is attached to the <code>Loader</code> object.
+ * This method can be used for getting (for caching) some
+ * <code>CtClass</code> objects that will be accessed
+ * in <code>onLoad()</code> in <code>Translator</code>.
*
* @param pool the <code>ClassPool</code> that this translator
* should use.
* @see Loader
+ * @throws NotFoundException if a <code>CtClass</code> cannot be found.
+ * @throws CannotCompileException if the initialization by this method
+ * fails.
*/
void start(ClassPool pool)
throws NotFoundException, CannotCompileException;
*
* to read the class file after <code>onLoad()</code> returns.
*
- * <p>The class specified by <code>classname</code> may not exist.
- * If so, <code>onLoad()</code> should create that class so that
- * the <code>Loader</code> can read it.
+ * <p><code>classname</code> may be the name of a class
+ * that has not been created yet.
+ * If so, <code>onLoad()</code> must create that class so that
+ * the <code>Loader</code> can read it after <code>onLoad()</code>
+ * returns.
*
* @param pool the <code>ClassPool</code> that this translator
* should use.
* @param classname the name of the class being loaded.
* @see Loader
+ * @throws NotFoundException if a <code>CtClass</code> cannot be found.
+ * @throws CannotCompileException if the code transformation
+ * by this method fails.
*/
void onLoad(ClassPool pool, String classname)
throws NotFoundException, CannotCompileException;