jodd.proxetta.asm
Class ProxettaCreator

java.lang.Object
  extended by jodd.proxetta.asm.ProxettaCreator

public class ProxettaCreator
extends java.lang.Object

Creates the proxy subclass using ASM library.


Field Summary
protected  ProxyAspect[] aspects
           
protected  java.lang.String classNameSuffix
           
protected  org.objectweb.asm.ClassWriter destClassWriter
           
protected  boolean proxyApplied
           
protected  java.lang.String proxyClassName
           
protected static int suffixCounter
          Number appended to proxy class name, incremented on each use to make classnames unique in the system (e.g. classloader).
protected  boolean useSuffix
           
 
Constructor Summary
ProxettaCreator(ProxyAspect... aspects)
           
 
Method Summary
protected  ProxettaCreator accept(org.objectweb.asm.ClassReader cr, java.lang.String reqProxyClassName)
          Single point of class reader acceptance.
 ProxettaCreator accept(java.lang.Class target, java.lang.String reqProxyClassName)
           
 ProxettaCreator accept(java.io.InputStream in, java.lang.String reqProxyClassName)
           
 ProxettaCreator accept(java.lang.String targetName, java.lang.String reqProxyClassName)
           
protected  void checkAccepted()
          Checks if proxy is created and throws an exception if not.
protected  java.lang.String classNameSuffix()
          Returns new suffix or null if suffix is not in use.
 java.lang.String getProxyClassName()
          Returns proxy class name.
 boolean isProxyApplied()
          Returns true if at least one method was wrapped.
 void setClassNameSuffix(java.lang.String classNameSuffix)
          Specifies class name suffix for created class.
 void setUseVariableClassName(boolean useVariableClassName)
          Specifies class name will vary on each creation.
 byte[] toByteArray()
          Returns raw bytecode.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

aspects

protected final ProxyAspect[] aspects

suffixCounter

protected static int suffixCounter
Number appended to proxy class name, incremented on each use to make classnames unique in the system (e.g. classloader).

See Also:
setUseVariableClassName(boolean)

useSuffix

protected boolean useSuffix

classNameSuffix

protected java.lang.String classNameSuffix

destClassWriter

protected org.objectweb.asm.ClassWriter destClassWriter

proxyApplied

protected boolean proxyApplied

proxyClassName

protected java.lang.String proxyClassName
Constructor Detail

ProxettaCreator

public ProxettaCreator(ProxyAspect... aspects)
Method Detail

setUseVariableClassName

public void setUseVariableClassName(boolean useVariableClassName)
Specifies class name will vary on each creation. This prevents java.lang.LinkageError: duplicate class definition.


setClassNameSuffix

public void setClassNameSuffix(java.lang.String classNameSuffix)
Specifies class name suffix for created class. If set to null suffix is not used.


classNameSuffix

protected java.lang.String classNameSuffix()
Returns new suffix or null if suffix is not in use.


accept

protected ProxettaCreator accept(org.objectweb.asm.ClassReader cr,
                                 java.lang.String reqProxyClassName)
Single point of class reader acceptance. Reads the target and creates destination class.


accept

public ProxettaCreator accept(java.io.InputStream in,
                              java.lang.String reqProxyClassName)

accept

public ProxettaCreator accept(java.lang.String targetName,
                              java.lang.String reqProxyClassName)

accept

public ProxettaCreator accept(java.lang.Class target,
                              java.lang.String reqProxyClassName)

checkAccepted

protected void checkAccepted()
Checks if proxy is created and throws an exception if not.


toByteArray

public byte[] toByteArray()
Returns raw bytecode.


isProxyApplied

public boolean isProxyApplied()
Returns true if at least one method was wrapped.


getProxyClassName

public java.lang.String getProxyClassName()
Returns proxy class name.



Copyright © 2003-2010 Jodd Team