|
|||||||||
| 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.ClassVisitorvisit 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.ClassVisitorvisitMethod in class EmptyVisitor
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String signature,
boolean b)
visitAnnotation in interface org.objectweb.asm.ClassVisitorvisitAnnotation in interface org.objectweb.asm.FieldVisitorvisitAnnotation in interface org.objectweb.asm.MethodVisitorvisitAnnotation in class EmptyVisitorpublic void visitEnd()
visitEnd in interface org.objectweb.asm.ClassVisitorvisitEnd in interface org.objectweb.asm.FieldVisitorvisitEnd in interface org.objectweb.asm.MethodVisitorvisitEnd in class EmptyVisitor
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||