/* * Javassist, a Java-bytecode translator toolkit. * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved. * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. Alternatively, the contents of this file may be used under * the terms of the GNU Lesser General Public License Version 2.1 or later. * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. */ package javassist; /** * 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 Loader#addTranslator(ClassPool, Translator) */ public interface Translator { /** * 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. * * @param pool the ClassPool that this translator * should use. * @see Loader * @throws NotFoundException if a CtClass cannot be found. * @throws CannotCompileException if the initialization by this method * fails. */ void start(ClassPool pool) throws NotFoundException, CannotCompileException; /** * Is invoked by a Loader for notifying that * a class is loaded. The Loader calls * * * * 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. * * @param pool the ClassPool that this translator * should use. * @param classname the name of the class being loaded. * @see Loader * @throws NotFoundException if a CtClass cannot be found. * @throws CannotCompileException if the code transformation * by this method fails. */ void onLoad(ClassPool pool, String classname) throws NotFoundException, CannotCompileException; }