Package net.sf.cglib.proxy
Class InterfaceMaker
- java.lang.Object
-
- net.sf.cglib.core.AbstractClassGenerator
-
- net.sf.cglib.proxy.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 $
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.cglib.core.AbstractClassGenerator
AbstractClassGenerator.ClassLoaderData, AbstractClassGenerator.Source
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Mapsignaturesprivate static AbstractClassGenerator.SourceSOURCE
-
Constructor Summary
Constructors Constructor Description InterfaceMaker()Create a newInterfaceMaker.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(java.lang.Class clazz)Add all the public methods in the specified class.voidadd(java.lang.reflect.Method method)Add a method signature to the interface.voidadd(Signature sig, org.objectweb.asm.Type[] exceptions)Add a method signature to the interface.java.lang.Classcreate()Create an interface using the current set of method signatures.protected java.lang.ObjectfirstInstance(java.lang.Class type)voidgenerateClass(org.objectweb.asm.ClassVisitor v)protected java.lang.ClassLoadergetDefaultClassLoader()protected java.lang.ObjectnextInstance(java.lang.Object instance)-
Methods inherited from class net.sf.cglib.core.AbstractClassGenerator
create, generate, getAttemptLoad, getClassLoader, getClassName, getCurrent, getNamingPolicy, getProtectionDomain, getStrategy, getUseCache, setAttemptLoad, setClassLoader, setNamePrefix, setNamingPolicy, setStrategy, setUseCache, unwrapCachedValue, wrapCachedClass
-
-
-
-
Field Detail
-
SOURCE
private static final AbstractClassGenerator.Source SOURCE
-
signatures
private java.util.Map signatures
-
-
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 interfaceexceptions- 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.
-
getDefaultClassLoader
protected java.lang.ClassLoader getDefaultClassLoader()
- Specified by:
getDefaultClassLoaderin classAbstractClassGenerator
-
firstInstance
protected java.lang.Object firstInstance(java.lang.Class type)
- Specified by:
firstInstancein classAbstractClassGenerator
-
nextInstance
protected java.lang.Object nextInstance(java.lang.Object instance)
- Specified by:
nextInstancein classAbstractClassGenerator
-
generateClass
public void generateClass(org.objectweb.asm.ClassVisitor v) throws java.lang.Exception- Throws:
java.lang.Exception
-
-