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 $
- Author:
- Chris Nokleberg
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.cglib.core.AbstractClassGenerator
AbstractClassGenerator.ClassLoaderData, AbstractClassGenerator.Source
-
-
Constructor Summary
Constructors Constructor Description InterfaceMaker()Create a newInterfaceMaker.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(Class clazz)Add all the public methods in the specified class.voidadd(Method method)Add a method signature to the interface.voidadd(Signature sig, org.objectweb.asm.Type[] exceptions)Add a method signature to the interface.Classcreate()Create an interface using the current set of method signatures.protected ObjectfirstInstance(Class type)voidgenerateClass(org.objectweb.asm.ClassVisitor v)protected ClassLoadergetDefaultClassLoader()protected ObjectnextInstance(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
-
-
-
-
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(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.
-
getDefaultClassLoader
protected ClassLoader getDefaultClassLoader()
- Specified by:
getDefaultClassLoaderin classAbstractClassGenerator
-
firstInstance
protected Object firstInstance(Class type)
- Specified by:
firstInstancein classAbstractClassGenerator
-
nextInstance
protected Object nextInstance(Object instance)
- Specified by:
nextInstancein classAbstractClassGenerator
-
-