net.sf.cglib.proxy

Class InterfaceMaker

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

Constructor Summary

InterfaceMaker()
Create a new InterfaceMaker.

Method Summary

void
add(Class clazz)
Add all the public methods in the specified class.
void
add(Method method)
Add a method signature to the interface.
void
add(Signature sig, Type[] exceptions)
Add a method signature to the interface.
Class
create()
Create an interface using the current set of method signatures.
void
generateClass(ClassVisitor v)

Methods inherited from class net.sf.cglib.core.AbstractClassGenerator

getAttemptLoad, getClassLoader, getCurrent, getNamingPolicy, getStrategy, getUseCache, setAttemptLoad, setClassLoader, setNamingPolicy, setStrategy, setUseCache

Constructor Details

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 Details

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:

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(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

create

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

generateClass

public void generateClass(ClassVisitor v)
            throws Exception
Specified by:
generateClass in interface ClassGenerator

Copyright (c) 2001 - Apache Software Foundation