public static String print(Parameter parameter) { StringBuilder signature = new StringBuilder(); if (parameter.isArray()) { signature.append(ARRAY); } signature.append(parameter.getJvmJavaType()); if (parameter.isOject()) { signature.append(parameter.getClassName()); signature.append(';'); } return signature.toString(); }
public Parameter(String classCanonicalName, boolean isArray) { if (classCanonicalName == null || "".equals(classCanonicalName)) { throw new IllegalArgumentException("With an Object JavaType, this is mandatory to specify the canonical name of the class."); } this.jvmJavaType = JvmJavaType.L; this.className = extractClassName(classCanonicalName); this.isArray = isArray; }
@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 Parameter next() { boolean isArray = false; while (signature.charAt(index) == ARRAY) { isArray = true; index++; } JvmJavaType jvmJavaType = JvmJavaType.valueOf(signature.substring(index, index + 1)); index = index + 1; if (jvmJavaType == JvmJavaType.L || jvmJavaType == JvmJavaType.T) { String classCanonicalName; int semicolonIndex = searchEndOfParameterSignature(signature, index); int inferiorCharIndex = signature.indexOf('<', index); if (inferiorCharIndex != -1 && inferiorCharIndex < semicolonIndex) { classCanonicalName = signature.substring(index, signature.indexOf('<', index)); } else { classCanonicalName = signature.substring(index, semicolonIndex); } index = semicolonIndex + 1; return new Parameter(classCanonicalName, isArray); } return new Parameter(jvmJavaType, isArray); }
private Parameter next() { boolean isArray = false; while (signature.charAt(index) == ARRAY) { isArray = true; index++; } JvmJavaType jvmJavaType = JvmJavaType.valueOf(signature.substring(index, index + 1)); index = index + 1; if (jvmJavaType == JvmJavaType.L || jvmJavaType == JvmJavaType.T) { String classCanonicalName; int semicolonIndex = searchEndOfParameterSignature(signature, index); int inferiorCharIndex = signature.indexOf('<', index); if (inferiorCharIndex != -1 && inferiorCharIndex < semicolonIndex) { classCanonicalName = signature.substring(index, signature.indexOf('<', index)); } else { classCanonicalName = signature.substring(index, semicolonIndex); } index = semicolonIndex + 1; return new Parameter(classCanonicalName, isArray); } return new Parameter(jvmJavaType, isArray); }
public static String print(Parameter parameter) { StringBuilder signature = new StringBuilder(); if (parameter.isArray()) { signature.append(ARRAY); } signature.append(parameter.getJvmJavaType()); if (parameter.isOject()) { signature.append(parameter.getClassName()); signature.append(';'); } return signature.toString(); }
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; }
public Parameter(String classCanonicalName, boolean isArray) { if (classCanonicalName == null || "".equals(classCanonicalName)) { throw new IllegalArgumentException("With an Object JavaType, this is mandatory to specify the canonical name of the class."); } this.jvmJavaType = JvmJavaType.L; this.className = extractClassName(classCanonicalName); this.isArray = isArray; }
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 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); }
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); }