Package org.springframework.cglib.proxy
Class InterfaceMaker
java.lang.Object
org.springframework.cglib.core.AbstractClassGenerator
org.springframework.cglib.proxy.InterfaceMaker
- All Implemented Interfaces:
ClassGenerator
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.
- Author:
- Chris Nokleberg
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.cglib.core.AbstractClassGenerator
AbstractClassGenerator.ClassLoaderData, AbstractClassGenerator.Source
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add all the public methods in the specified class.void
Add a method signature to the interface.void
Add a method signature to the interface.create()
Create an interface using the current set of method signatures.protected Object
firstInstance
(Class type) void
protected ClassLoader
protected Object
nextInstance
(Object instance) Methods inherited from class org.springframework.cglib.core.AbstractClassGenerator
create, generate, getAttemptLoad, getClassLoader, getClassName, getCurrent, getNamingPolicy, getProtectionDomain, getStrategy, getUseCache, setAttemptLoad, setClassLoader, setContextClass, setNamePrefix, setNamingPolicy, setStrategy, setUseCache, unwrapCachedValue, wrapCachedClass
-
Constructor Details
-
InterfaceMaker
public InterfaceMaker()Create a newInterfaceMaker
. A newInterfaceMaker
object should be used for each generated interface, and should not be shared across threads.
-
-
Method Details
-
add
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
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
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:
clazz
- the class containing the methods to add to the interface
-
create
Create an interface using the current set of method signatures. -
getDefaultClassLoader
- Specified by:
getDefaultClassLoader
in classAbstractClassGenerator
-
firstInstance
- Specified by:
firstInstance
in classAbstractClassGenerator
-
nextInstance
- Specified by:
nextInstance
in classAbstractClassGenerator
-
generateClass
- Throws:
Exception
-