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); }
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; }
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); }