net.sf.cglib.proxy

Class InterfaceMaker

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.3 2004/09/18 21:22:22 herbyderby Exp $

Author: Chris Nokleberg

Constructor Summary
InterfaceMaker()
Create a new InterfaceMaker.
Method Summary
voidadd(Signature sig, Type[] exceptions)
Add a method signature to the interface.
voidadd(Method method)
Add a method signature to the interface.
voidadd(Class clazz)
Add all the public methods in the specified class.
Classcreate()
Create an interface using the current set of method signatures.
voidgenerateClass(ClassVisitor v)

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, 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(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(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 Class create()
Create an interface using the current set of method signatures.

generateClass

public void generateClass(ClassVisitor v)
Copyright (c) 2001 - Apache Software Foundation