Package cdc.deps.java.asm
Class AsmDependencyVisitor
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- cdc.deps.java.asm.AsmDependencyVisitor
-
class AsmDependencyVisitor extends org.objectweb.asm.ClassVisitorClassVisitor dedicated to dependency analysis. This implementation is based on ASM example written by Eugene Kuleshov.- Author:
- Damien Carbonne, Eugene Kuleshov
-
-
Field Summary
Fields Modifier and Type Field Description protected AsmJavaAnalyzeranalyzerprotected static org.apache.logging.log4j.LoggerLOGGERprotected static org.objectweb.asm.signature.SignatureVisitorVOID_SIGNATURE_VISITOR
-
Constructor Summary
Constructors Constructor Description AsmDependencyVisitor(AsmJavaAnalyzer analyzer, cdc.deps.DGroup group)AsmDependencyVisitor(AsmJavaAnalyzer analyzer, cdc.deps.DGroup group, org.objectweb.asm.ClassVisitor v)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) booleandebugEnabled()(package private) voidenter(String message)(package private) booleanisSignatureOfGenericClass(String signature)(package private) voidleave()(package private) voidparseConstant(Object constant)(package private) voidparseDesc(String desc)(package private) voidparseInternalName(String name)Parse an internal name.(package private) voidparseMethodDesc(String desc)(package private) voidparseSignature(String signature)Parse a generic signature.(package private) voidparseType(org.objectweb.asm.Type type)voidvisit(int version, int access, String name, String signature, String superName, String[] interfaces)org.objectweb.asm.AnnotationVisitorvisitAnnotation(String desc, boolean visible)voidvisitAttribute(org.objectweb.asm.Attribute attr)voidvisitEnd()org.objectweb.asm.FieldVisitorvisitField(int access, String name, String desc, String signature, Object value)voidvisitInnerClass(String name, String outerName, String innerName, int access)org.objectweb.asm.MethodVisitorvisitMethod(int access, String name, String desc, String signature, String[] exceptions)org.objectweb.asm.ModuleVisitorvisitModule(String name, int access, String version)voidvisitNestHost(String nestHost)voidvisitNestMember(String nestMember)voidvisitOuterClass(String owner, String name, String desc)voidvisitSource(String source, String debug)org.objectweb.asm.AnnotationVisitorvisitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, String desc, boolean visible)
-
-
-
Field Detail
-
LOGGER
protected static final org.apache.logging.log4j.Logger LOGGER
-
VOID_SIGNATURE_VISITOR
protected static final org.objectweb.asm.signature.SignatureVisitor VOID_SIGNATURE_VISITOR
-
analyzer
protected final AsmJavaAnalyzer analyzer
-
-
Constructor Detail
-
AsmDependencyVisitor
public AsmDependencyVisitor(AsmJavaAnalyzer analyzer, cdc.deps.DGroup group)
-
AsmDependencyVisitor
public AsmDependencyVisitor(AsmJavaAnalyzer analyzer, cdc.deps.DGroup group, org.objectweb.asm.ClassVisitor v)
-
-
Method Detail
-
debugEnabled
boolean debugEnabled()
-
enter
void enter(String message)
-
leave
void leave()
-
visit
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces)- Overrides:
visitin classorg.objectweb.asm.ClassVisitor
-
visitSource
public void visitSource(String source, String debug)
- Overrides:
visitSourcein classorg.objectweb.asm.ClassVisitor
-
visitModule
public org.objectweb.asm.ModuleVisitor visitModule(String name, int access, String version)
- Overrides:
visitModulein classorg.objectweb.asm.ClassVisitor
-
visitNestHost
public void visitNestHost(String nestHost)
- Overrides:
visitNestHostin classorg.objectweb.asm.ClassVisitor
-
visitNestMember
public void visitNestMember(String nestMember)
- Overrides:
visitNestMemberin classorg.objectweb.asm.ClassVisitor
-
visitOuterClass
public void visitOuterClass(String owner, String name, String desc)
- Overrides:
visitOuterClassin classorg.objectweb.asm.ClassVisitor
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(String desc, boolean visible)
- Overrides:
visitAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitTypeAnnotation
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, String desc, boolean visible)- Overrides:
visitTypeAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitAttribute
public void visitAttribute(org.objectweb.asm.Attribute attr)
- Overrides:
visitAttributein classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(String name, String outerName, String innerName, int access)
- Overrides:
visitInnerClassin classorg.objectweb.asm.ClassVisitor
-
visitField
public org.objectweb.asm.FieldVisitor visitField(int access, String name, String desc, String signature, Object value)- Overrides:
visitFieldin classorg.objectweb.asm.ClassVisitor
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions)- Overrides:
visitMethodin classorg.objectweb.asm.ClassVisitor
-
visitEnd
public void visitEnd()
- Overrides:
visitEndin classorg.objectweb.asm.ClassVisitor
-
parseDesc
void parseDesc(String desc)
-
parseInternalName
void parseInternalName(String name)
Parse an internal name.The name is converted to Java type name, then a corresponding DItem is created if necessary. Finally, a dependency to that type is added.
- Parameters:
name- The internal name.
-
parseType
void parseType(org.objectweb.asm.Type type)
-
parseMethodDesc
void parseMethodDesc(String desc)
-
parseSignature
void parseSignature(String signature)
Parse a generic signature.- Parameters:
signature- The optional signature.
-
isSignatureOfGenericClass
boolean isSignatureOfGenericClass(String signature)
-
parseConstant
void parseConstant(Object constant)
-
-