|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.webbeans.proxy.AbstractProxyFactory
org.apache.webbeans.proxy.SubclassProxyFactory
public class SubclassProxyFactory
This factory creates subclasses for abstract classes. This is being used for Abstract Decorators.
| Field Summary |
|---|
| Fields inherited from class org.apache.webbeans.proxy.AbstractProxyFactory |
|---|
FIELD_BEAN_PASSIVATION_ID, MAX_CLASSLOAD_TRIES, MODIFIER_VARARGS, webBeansContext |
| Constructor Summary | |
|---|---|
SubclassProxyFactory(WebBeansContext webBeansContext)
|
|
| Method Summary | ||
|---|---|---|
protected void |
createConstructor(org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
String classFileName,
Constructor<?> constructor)
Each of our interceptor/decorator proxies has exactly 1 constructor which invokes the super ct + sets the delegation field. |
|
|
createImplementedSubclass(ClassLoader classLoader,
javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
|
|
protected void |
createInstanceVariables(org.apache.xbean.asm5.ClassWriter cw,
Class<?> classToProxy,
String classFileName)
generate the bytecode for creating the instance variables of the class |
|
protected void |
createSerialisation(org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
String classFileName)
generate the bytecode for serialization. |
|
|
createSubClass(ClassLoader classLoader,
javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
|
|
protected void |
delegateInterceptedMethods(ClassLoader classLoader,
org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
Method[] interceptedMethods)
generate the bytecode for invoking all intercepted methods |
|
protected void |
delegateNonInterceptedMethods(ClassLoader classLoader,
org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
Method[] noninterceptedMethods)
generate the bytecode for invoking all non-intercepted methods |
|
protected Class |
getMarkerInterface()
|
|
| Methods inherited from class org.apache.webbeans.proxy.AbstractProxyFactory |
|---|
createArrayDefinition, createProxyClass, createProxyClass, fixPreservedPackages, generateReturn, getCastType, getPrimitiveMethod, getProxyClassLoader, getReturnInsn, getUnusedProxyClassName, getVarInsn, getWrapperType, pushIntOntoStack, pushMethodParameterArray, unproxyableMethod, unsafeNewInstance |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public SubclassProxyFactory(WebBeansContext webBeansContext)
| Method Detail |
|---|
protected Class getMarkerInterface()
getMarkerInterface in class AbstractProxyFactory
public <T> Class<T> createImplementedSubclass(ClassLoader classLoader,
javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
public <T> Class<T> createSubClass(ClassLoader classLoader,
javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
throws ProxyGenerationException
T - classLoader - to use for creating the class inannotatedType - the annotatedType for which a subclass will get generated
ProxyGenerationException
protected void createConstructor(org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
String classFileName,
Constructor<?> constructor)
throws ProxyGenerationException
AbstractProxyFactory
createConstructor in class AbstractProxyFactoryProxyGenerationException
protected void createInstanceVariables(org.apache.xbean.asm5.ClassWriter cw,
Class<?> classToProxy,
String classFileName)
AbstractProxyFactory
createInstanceVariables in class AbstractProxyFactory
protected void delegateInterceptedMethods(ClassLoader classLoader,
org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
Method[] interceptedMethods)
throws ProxyGenerationException
AbstractProxyFactory
delegateInterceptedMethods in class AbstractProxyFactoryProxyGenerationException
protected void createSerialisation(org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
String classFileName)
AbstractProxyFactory
createSerialisation in class AbstractProxyFactory
protected void delegateNonInterceptedMethods(ClassLoader classLoader,
org.apache.xbean.asm5.ClassWriter cw,
String proxyClassFileName,
Class<?> classToProxy,
Method[] noninterceptedMethods)
throws ProxyGenerationException
AbstractProxyFactory
delegateNonInterceptedMethods in class AbstractProxyFactoryProxyGenerationException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||