public class ProxettaClassBuilder extends EmptyClassVisitor
| Modifier and Type | Field and Description |
|---|---|
protected ProxyAspect[] |
aspects |
protected java.lang.String |
reqProxyClassName |
protected java.lang.String |
suffix |
protected TargetClassInfoReader |
targetClassInfo |
protected WorkData |
wd |
| Constructor and Description |
|---|
ProxettaClassBuilder(jodd.asm5.ClassVisitor dest,
ProxyAspect[] aspects,
java.lang.String suffix,
java.lang.String reqProxyClassName,
TargetClassInfoReader targetClassInfoReader)
Constructs new Proxetta class builder.
|
| Modifier and Type | Method and Description |
|---|---|
protected ProxettaMethodBuilder |
applyProxy(MethodSignatureVisitor msign)
Check if proxy should be applied on method and return proxy method builder if so.
|
WorkData |
getWorkData()
Returns working data.
|
protected void |
makeProxyConstructor()
Creates init method that simply calls all advice constructor methods in correct order.
|
protected void |
makeStaticInitBlock()
Creates static initialization block that simply calls all
advice static init methods in correct order.
|
protected java.util.List<jodd.proxetta.asm.ProxyAspectData> |
matchMethodPointcuts(MethodSignatureVisitor msign)
Matches pointcuts on method.
|
protected void |
processSuperMethods()
Checks for all public super methods that are not overridden.
|
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 header from current target class.
|
jodd.asm5.AnnotationVisitor |
visitAnnotation(java.lang.String desc,
boolean visible)
Copies all destination type annotations to the target.
|
void |
visitAttribute(jodd.asm5.Attribute attr)
Visits a non standard attribute of the class (not used).
|
void |
visitEnd()
Finalizes creation of destination proxy class.
|
jodd.asm5.FieldVisitor |
visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
Ignores fields.
|
void |
visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
Visits information about an inner class (not used).
|
jodd.asm5.MethodVisitor |
visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
Creates proxified methods and constructors.
|
void |
visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String desc)
Visits the enclosing class of the class (not used).
|
void |
visitSource(java.lang.String source,
java.lang.String debug)
Visits the source of the class (not used).
|
protected final ProxyAspect[] aspects
protected final java.lang.String suffix
protected final java.lang.String reqProxyClassName
protected final TargetClassInfoReader targetClassInfo
protected final WorkData wd
public ProxettaClassBuilder(jodd.asm5.ClassVisitor dest,
ProxyAspect[] aspects,
java.lang.String suffix,
java.lang.String reqProxyClassName,
TargetClassInfoReader targetClassInfoReader)
dest - destination visitoraspects - set of aspects to applysuffix - proxy class name suffix, may be nullreqProxyClassName - requested proxy class name, may be nullstargetClassInfoReader - target info reader, already invoked.public WorkData getWorkData()
public void visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
visit in class jodd.asm5.ClassVisitorpublic jodd.asm5.MethodVisitor visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
ProxettaCtorBuilder.
Static initializers are removed, since they will be execute in target anyway.
For each method, ProxettaMethodBuilder determines if method matches pointcut. If so, method will be proxified.visitMethod in class jodd.asm5.ClassVisitorpublic jodd.asm5.FieldVisitor visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
visitField in class jodd.asm5.ClassVisitorpublic jodd.asm5.AnnotationVisitor visitAnnotation(java.lang.String desc,
boolean visible)
visitAnnotation in class jodd.asm5.ClassVisitorpublic void visitEnd()
visitEnd in class jodd.asm5.ClassVisitorprotected void makeStaticInitBlock()
protected void makeProxyConstructor()
protected void processSuperMethods()
public void visitSource(java.lang.String source,
java.lang.String debug)
visitSource in class jodd.asm5.ClassVisitorpublic void visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String desc)
visitOuterClass in class jodd.asm5.ClassVisitorpublic void visitAttribute(jodd.asm5.Attribute attr)
visitAttribute in class jodd.asm5.ClassVisitorpublic void visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
visitInnerClass in class jodd.asm5.ClassVisitorprotected ProxettaMethodBuilder applyProxy(MethodSignatureVisitor msign)
null.protected java.util.List<jodd.proxetta.asm.ProxyAspectData> matchMethodPointcuts(MethodSignatureVisitor msign)
null.Copyright © 2003-2013 Jodd Team