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

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void onLoad​(ClassPool pool, java.lang.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 Detail

      • 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,
                    java.lang.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