jodd.proxetta
Class ProxettaBuilder

java.lang.Object
  extended by jodd.proxetta.ProxettaBuilder
Direct Known Subclasses:
InvokeProxettaBuilder, ProxyProxettaBuilder, WrapperProxettaBuilder

public abstract class ProxettaBuilder
extends java.lang.Object

Proxetta builder. While Proxetta only holds aspects and configuration, ProxettaBuilder deals with the actually building proxies and wrappers over provided target.


Field Summary
protected  org.objectweb.asm.ClassWriter destClassWriter
           
protected  Proxetta proxetta
           
protected  boolean proxyApplied
           
protected  java.lang.String proxyClassName
           
protected  java.lang.String requestedProxyClassName
          Requested proxy class name (or class name template).
protected static int suffixCounter
          Number appended to proxy class name, incremented on each use to make classnames unique in the system (e.g. classloader).
 
Constructor Summary
protected ProxettaBuilder(Proxetta proxetta)
          Creates new builder.
 
Method Summary
protected  void checkAccepted()
          Checks if proxy is created and throws an exception if not.
 byte[] create()
          Returns byte array of created class.
 java.lang.Class define()
          Defines class.
protected  void dumpClass(byte[] bytes)
          Writes created class content to output folder for debugging purposes.
 java.lang.String getProxyClassName()
          Returns proxy class name.
 boolean isProxyApplied()
          Returns true if at least one method was wrapped.
 java.lang.Object newInstance()
          Creates new instance of created class.
protected  void process()
          Reads the target and creates destination class.
protected abstract  WorkData process(org.objectweb.asm.ClassReader cr, TargetClassInfoReader targetClassInfoReader)
          Creates custom class builder and process the target class with it.
protected  java.lang.String resolveClassNameSuffix()
          Returns new suffix or null if suffix is not in use.
protected  void setTarget(java.lang.Class target)
          Defines class as a target.
protected  void setTarget(java.io.InputStream target)
          Defines class input stream as a target.
protected  void setTarget(java.lang.String targetName)
          Defines class name as a target.
 void setTargetProxyClassName(java.lang.String targetProxyClassName)
          Sets requested proxy class name.
protected  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

proxetta

protected final Proxetta proxetta

requestedProxyClassName

protected java.lang.String requestedProxyClassName
Requested proxy class name (or class name template).


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:
Proxetta.setVariableClassName(boolean)

destClassWriter

protected org.objectweb.asm.ClassWriter destClassWriter

proxyApplied

protected boolean proxyApplied

proxyClassName

protected java.lang.String proxyClassName
Constructor Detail

ProxettaBuilder

protected ProxettaBuilder(Proxetta proxetta)
Creates new builder.

Method Detail

setTargetProxyClassName

public void setTargetProxyClassName(java.lang.String targetProxyClassName)
Sets requested proxy class name.


setTarget

protected void setTarget(java.io.InputStream target)
Defines class input stream as a target.


setTarget

protected void setTarget(java.lang.String targetName)
Defines class name as a target. Class will not be loaded by classloader!


setTarget

protected void setTarget(java.lang.Class target)
Defines class as a target.


resolveClassNameSuffix

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


process

protected abstract WorkData process(org.objectweb.asm.ClassReader cr,
                                    TargetClassInfoReader targetClassInfoReader)
Creates custom class builder and process the target class with it.


process

protected void process()
Reads the target and creates destination class.


create

public byte[] create()
Returns byte array of created class.


define

public java.lang.Class define()
Defines class.


newInstance

public java.lang.Object newInstance()
Creates new instance of created class. Assumes default no-arg constructor.


dumpClass

protected void dumpClass(byte[] bytes)
Writes created class content to output folder for debugging purposes.


checkAccepted

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


toByteArray

protected 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-2012 Jodd Team