Class InterfaceMaker

  • All Implemented Interfaces:
    ClassGenerator

    public class InterfaceMaker
    extends AbstractClassGenerator
    Generates new interfaces at runtime. By passing a generated interface to the Enhancer's list of interfaces to implement, you can make your enhanced classes handle an arbitrary set of method signatures.
    Version:
    $Id: InterfaceMaker.java,v 1.4 2006/03/05 02:43:19 herbyderby Exp $
    • Constructor Detail

      • InterfaceMaker

        public InterfaceMaker()
        Create a new InterfaceMaker. A new InterfaceMaker object should be used for each generated interface, and should not be shared across threads.
    • Method Detail

      • add

        public void add​(Signature sig,
                        org.objectweb.asm.Type[] exceptions)
        Add a method signature to the interface.
        Parameters:
        sig - the method signature to add to the interface
        exceptions - an array of exception types to declare for the method
      • add

        public void add​(java.lang.reflect.Method method)
        Add a method signature to the interface. The method modifiers are ignored, since interface methods are by definition abstract and public.
        Parameters:
        method - the method to add to the interface
      • add

        public void add​(java.lang.Class clazz)
        Add all the public methods in the specified class. Methods from superclasses are included, except for methods declared in the base Object class (e.g. getClass, equals, hashCode).
        Parameters:
        class - the class containing the methods to add to the interface
      • create

        public java.lang.Class create()
        Create an interface using the current set of method signatures.
      • generateClass

        public void generateClass​(org.objectweb.asm.ClassVisitor v)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception