public static MethodSignature scan(String bytecodeMethodSignature) { Preconditions.checkNotNull(bytecodeMethodSignature); MethodSignatureScanner scanner = new MethodSignatureScanner(bytecodeMethodSignature); return scanner.scan(); }
public static MethodSignature scan(MethodTree methodTree) { MethodSignatureScanner scanner = new MethodSignatureScanner(methodTree); return scanner.scanTree(); }
@Override public void visitMethod(MethodTree tree) { parent.push(tree); String methodKey = currentClassKey.peek() + "#" + MethodSignaturePrinter.print(MethodSignatureScanner.scan(tree)); methodStartLines.put(methodKey, ((JavaTree) tree.simpleName()).getLine()); handleSuppressWarning(tree); super.visitMethod(tree); parent.pop(); }
private Parameter getParameter(Tree typeTree) { Parameter parameter; boolean isArray = false; Tree type = typeTree; if (type.is(Tree.Kind.ARRAY_TYPE)) { isArray = true; while (type.is(Tree.Kind.ARRAY_TYPE)) { type = ((ArrayTypeTree) type).type(); } } JvmJavaType jvmType = jvmJavaTypeOf(type); if (jvmType.equals(JvmJavaType.L)) { parameter = new Parameter(getTypeName(type), isArray); } else { parameter = new Parameter(jvmType, isArray); } return parameter; }
@Override public void visitMethod(AsmMethod asmMethod) { if (isPrivateUnused(asmMethod) && !isExcludedFromCheck(asmMethod)) { String messageStr = "Private method '" + asmMethod.getName() + "' is never used."; if ("<init>".equals(asmMethod.getName())) { messageStr = "Private constructor '" + asmClass.getDisplayName() + "("; List<String> params = Lists.newArrayList(); for (Parameter param : MethodSignatureScanner.scan(asmMethod.getGenericKey()).getArgumentTypes()) { String paramName = param.getClassName(); if (StringUtils.isEmpty(paramName)) { paramName = MethodSignatureScanner.getReadableType(param.getJvmJavaType()); } params.add(paramName + (param.isArray() ? "[]" : "")); } messageStr += Joiner.on(",").join(params) + ")' is never used."; } CheckMessage message = new CheckMessage(this, messageStr); int line = getMethodLineNumber(asmMethod); if (line > 0) { message.setLine(line); } SourceFile file = getSourceFile(asmClass); file.log(message); } }
private String getTypeName(Tree typeTree) { if (typeTree.is(Tree.Kind.IDENTIFIER)) { return ((IdentifierTree) typeTree).name(); } else if (typeTree.is(Tree.Kind.MEMBER_SELECT)) { return ((MemberSelectExpressionTree) typeTree).identifier().name(); } else if (typeTree.is(Tree.Kind.PARAMETERIZED_TYPE)) { return getTypeName(((ParameterizedTypeTree) typeTree).type()); } return ""; }
private MethodSignature scanTree() { String name = methodTree.simpleName().name(); Parameter returnTypeParam; if (methodTree.is(Tree.Kind.CONSTRUCTOR)) { name = "<init>"; returnTypeParam = new Parameter(JvmJavaType.V, false); } else { returnTypeParam = getParameter(methodTree.returnType()); } List<Parameter> argumentTypes = Lists.newArrayList(); for (VariableTree variableTree : methodTree.parameters()) { argumentTypes.add(getParameter(variableTree.type())); } return new MethodSignature(name, returnTypeParam, argumentTypes); }
@Override public void visitMethod(MethodTree tree) { parent.push(tree); String methodKey = currentClassKey.peek() + "#" + MethodSignaturePrinter.print(MethodSignatureScanner.scan(tree)); methodStartLines.put(methodKey, tree.simpleName().identifierToken().line()); handleSuppressWarning(tree); super.visitMethod(tree); parent.pop(); }
private static Parameter getParameter(Tree typeTree) { Parameter parameter; boolean isArray = false; Tree type = typeTree; if (type.is(Tree.Kind.ARRAY_TYPE)) { isArray = true; while (type.is(Tree.Kind.ARRAY_TYPE)) { type = ((ArrayTypeTree) type).type(); } } JvmJavaType jvmType = jvmJavaTypeOf(type); if (jvmType.equals(JvmJavaType.L)) { parameter = new Parameter(getTypeName(type), isArray); } else { parameter = new Parameter(jvmType, isArray); } return parameter; }
private static String getTypeName(Tree typeTree) { if (typeTree.is(Tree.Kind.IDENTIFIER)) { return ((IdentifierTree) typeTree).name(); } else if (typeTree.is(Tree.Kind.MEMBER_SELECT)) { return ((MemberSelectExpressionTree) typeTree).identifier().name(); } else if (typeTree.is(Tree.Kind.PARAMETERIZED_TYPE)) { return getTypeName(((ParameterizedTypeTree) typeTree).type()); } return ""; }
private MethodSignature scanTree() { String name = methodTree.simpleName().name(); Parameter returnTypeParam; if (methodTree.is(Tree.Kind.CONSTRUCTOR)) { name = "<init>"; returnTypeParam = new Parameter(JvmJavaType.V, false); } else { returnTypeParam = getParameter(methodTree.returnType()); } List<Parameter> argumentTypes = Lists.newArrayList(); for (VariableTree variableTree : methodTree.parameters()) { argumentTypes.add(getParameter(variableTree.type())); } return new MethodSignature(name, returnTypeParam, argumentTypes); }
public static MethodSignature scan(String bytecodeMethodSignature) { Preconditions.checkNotNull(bytecodeMethodSignature); MethodSignatureScanner scanner = new MethodSignatureScanner(bytecodeMethodSignature); return scanner.scan(); }
protected final int getMethodLineNumber(AsmMethod asmMethod) { MethodSignature methodSignature = MethodSignatureScanner.scan(asmMethod.getGenericKey()); AsmClass asmClass = asmMethod.getParent(); Integer result = javaResourceLocator.getMethodStartLine(asmClass.getInternalName() + "#" + MethodSignaturePrinter.print(methodSignature)); if (result != null) { return result; } return -1; }
public static MethodSignature scan(MethodTree methodTree) { MethodSignatureScanner scanner = new MethodSignatureScanner(methodTree); return scanner.scanTree(); }
protected final int getMethodLineNumber(AsmMethod asmMethod) { MethodSignature methodSignature = MethodSignatureScanner.scan(asmMethod.getGenericKey()); AsmClass asmClass = asmMethod.getParent(); Integer result = context.getJavaResourceLocator().getMethodStartLine(asmClass.getInternalName() + "#" + MethodSignaturePrinter.print(methodSignature)); if (result != null) { return result; } return -1; }