|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjodd.proxetta.asm.EmptyVisitor
jodd.proxetta.asm.ProxettaCreator
public class ProxettaCreator
Creates the proxy subclass using ASM library.
Field Summary | |
---|---|
protected ProxyAspect[] |
aspects
|
protected org.objectweb.asm.ClassWriter |
cw
|
protected jodd.proxetta.asm.DestinationData |
dd
|
protected org.objectweb.asm.ClassVisitor |
dest
|
protected java.lang.String |
nextSupername
|
protected boolean |
proxyApplied
|
protected jodd.proxetta.asm.ProxyAspectData[] |
proxyAspects
|
protected static int |
suffix
|
protected java.lang.String |
superReference
|
protected java.lang.String |
targetClassname
|
protected java.lang.String |
targetPackage
|
protected java.lang.String |
thisReference
|
protected java.util.Set<java.lang.String> |
topMethodSignatures
|
protected boolean |
variableClassName
|
Constructor Summary | |
---|---|
ProxettaCreator(ProxyAspect... aspects)
|
Method Summary | |
---|---|
ProxettaCreator |
accept(java.lang.Class target)
|
ProxettaCreator |
accept(java.io.InputStream in)
|
ProxettaCreator |
accept(java.lang.String targetName)
|
protected void |
destinationReady()
Invoked after destination class is ready for manipulation. |
java.lang.String |
getProxyClassName()
Returns proxy class name. |
boolean |
isProxyApplied()
Returns true if at least one method was wrapped. |
void |
setVariableClassName(boolean varname)
If true class name will vary for each creation. |
byte[] |
toByteArray()
Returns raw bytecode. |
void |
visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String supername,
java.lang.String[] interfaces)
Creates destination subclass for current target class. |
org.objectweb.asm.AnnotationVisitor |
visitAnnotation(java.lang.String signature,
boolean b)
Copies all destination type annotations to the target. |
void |
visitEnd()
Finalize destination proxy class. |
org.objectweb.asm.MethodVisitor |
visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
Creates methods and constructors. |
Methods inherited from class jodd.proxetta.asm.EmptyVisitor |
---|
visitAnnotationDefault, visitAttribute, visitCode, visitField, visitFieldInsn, visitFrame, visitIincInsn, visitInnerClass, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitOuterClass, visitParameterAnnotation, visitSource, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final org.objectweb.asm.ClassVisitor dest
protected jodd.proxetta.asm.ProxyAspectData[] proxyAspects
protected java.lang.String targetClassname
protected java.lang.String nextSupername
protected java.lang.String targetPackage
protected java.lang.String thisReference
protected java.lang.String superReference
protected boolean proxyApplied
protected org.objectweb.asm.ClassWriter cw
protected final ProxyAspect[] aspects
protected final java.util.Set<java.lang.String> topMethodSignatures
protected boolean variableClassName
protected static int suffix
protected jodd.proxetta.asm.DestinationData dd
Constructor Detail |
---|
public ProxettaCreator(ProxyAspect... aspects)
Method Detail |
---|
public ProxettaCreator accept(java.io.InputStream in)
public ProxettaCreator accept(java.lang.String targetName)
public ProxettaCreator accept(java.lang.Class target)
public byte[] toByteArray()
public boolean isProxyApplied()
true
if at least one method was wrapped.
public java.lang.String getProxyClassName()
public void setVariableClassName(boolean varname)
true
class name will vary for each creation. This prevents
java.lang.LinkageError: duplicate class definition.
protected void destinationReady()
public void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String supername, java.lang.String[] interfaces)
destinationReady()
is invoked.
visit
in interface org.objectweb.asm.ClassVisitor
visit
in class EmptyVisitor
public org.objectweb.asm.MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
Destination proxy will have all constructors as a target class, using ProxettaCreator.ConstructorBuilder
.
For a method, ProxettaCreator.MethodBuilder
first determines if method matches
pointcut. If so, method will be proxified.
visitMethod
in interface org.objectweb.asm.ClassVisitor
visitMethod
in class EmptyVisitor
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String signature, boolean b)
visitAnnotation
in interface org.objectweb.asm.ClassVisitor
visitAnnotation
in interface org.objectweb.asm.FieldVisitor
visitAnnotation
in interface org.objectweb.asm.MethodVisitor
visitAnnotation
in class EmptyVisitor
public void visitEnd()
visitEnd
in interface org.objectweb.asm.ClassVisitor
visitEnd
in interface org.objectweb.asm.FieldVisitor
visitEnd
in interface org.objectweb.asm.MethodVisitor
visitEnd
in class EmptyVisitor
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |