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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd all the public methods in the specified class.voidAdd a method signature to the interface.voidAdd a method signature to the interface.create()Create an interface using the current set of method signatures.protected ObjectfirstInstance(Class type) voidprotected ClassLoaderprotected ObjectnextInstance(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 newInterfaceMakerobject 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:
class- the class containing the methods to add to the interface
-
create
Create an interface using the current set of method signatures. -
getDefaultClassLoader
- Specified by:
getDefaultClassLoaderin classAbstractClassGenerator
-
firstInstance
- Specified by:
firstInstancein classAbstractClassGenerator
-
nextInstance
- Specified by:
nextInstancein classAbstractClassGenerator
-
generateClass
- Throws:
Exception
-