@Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { if (isNotCallToJavaArrayMethod(owner)) { AsmClass targetClass = asmClassProvider.getClass(owner, DETAIL_LEVEL.STRUCTURE); AsmMethod targetMethod = targetClass.getMethodOrCreateIt(name + desc); method.addEdge(new AsmEdge(method, targetMethod, SourceCodeEdgeUsage.CALLS_METHOD, lineNumber)); } emptyMethod = false; }
@Override public MethodVisitor visitMethod(int access, String methodName, String description, String signature, String[] exceptions) { AsmMethod method = asmClass.getMethodOrCreateIt(methodName + description); if (isInheritedMethodSignature(method.getParent(), method.getKey())) { method.setInherited(true); } method.setSignature(signature); method.setBodyLoaded(true); method.setAccessFlags(access); method.clearOutogingEdges(); String[] internalNames = AsmSignature.extractInternalNames(description, signature); AsmClass[] asmClasses = internalNamesToAsmClasses(internalNames, DETAIL_LEVEL.NOTHING); method.addUsesOfClasses(asmClasses); AsmClass[] asmExceptionClasses = internalNamesToAsmClasses(exceptions, DETAIL_LEVEL.STRUCTURE); method.addUsesOfClasses(asmExceptionClasses); method.addThrowsOfClasses(asmExceptionClasses); if (level == DETAIL_LEVEL.STRUCTURE_AND_CALLS) { return new AsmMethodVisitor(method, asmClassProvider); } return null; }
@Override public MethodVisitor visitMethod(int access, String methodName, String description, String signature, String[] exceptions) { AsmMethod method = asmClass.getMethodOrCreateIt(methodName + description); if (isInheritedMethodSignature(method.getParent(), method.getKey())) { method.setInherited(true); } method.setSignature(signature); method.setBodyLoaded(true); method.setAccessFlags(access); method.clearOutogingEdges(); String[] internalNames = AsmSignature.extractInternalNames(description, signature); AsmClass[] asmClasses = internalNamesToAsmClasses(internalNames, DETAIL_LEVEL.NOTHING); method.addUsesOfClasses(asmClasses); AsmClass[] asmExceptionClasses = internalNamesToAsmClasses(exceptions, DETAIL_LEVEL.STRUCTURE); method.addUsesOfClasses(asmExceptionClasses); method.addThrowsOfClasses(asmExceptionClasses); if (level == DETAIL_LEVEL.STRUCTURE_AND_CALLS) { return new AsmMethodVisitor(method, asmClassProvider); } return null; }
@Override public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { if (isNotCallToJavaArrayMethod(owner)) { AsmClass targetClass = asmClassProvider.getClass(owner, DETAIL_LEVEL.STRUCTURE); AsmMethod targetMethod = targetClass.getMethodOrCreateIt(name + desc); method.addEdge(new AsmEdge(method, targetMethod, SourceCodeEdgeUsage.CALLS_METHOD, lineNumber)); } emptyMethod = false; }