All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scouter.javassist.Translator Maven / Gradle / Ivy

There is a newer version: 2.20.0
Show newest version
/*
 * Javassist, a Java-bytecode translator toolkit.
 * Copyright (C) 1999- 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,
 * or the Apache License Version 2.0.
 *
 * 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 scouter.javassist;

import scouter.javassist.CannotCompileException;
import scouter.javassist.ClassPool;
import scouter.javassist.Loader;
import scouter.javassist.NotFoundException;

/**
 * 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
     *
     * 
     * 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. * * @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; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy