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

com.feilong.lib.javassist.Translator Maven / Gradle / Ivy

Go to download

feilong is a suite of core and expanded libraries that include utility classes, http, excel,cvs, io classes, and much much more.

There is a newer version: 4.3.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 com.feilong.lib.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
     *
     * 
     * 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