public static Parameter scan(String parameterSignature) { ParameterSignatureScanner scanner = new ParameterSignatureScanner(parameterSignature); if (scanner.hasNext()) { return scanner.next(); } else { return null; } }
public static MethodSignature scan(MethodTree methodTree) { MethodSignatureScanner scanner = new MethodSignatureScanner(methodTree); return scanner.scanTree(); }
public static String print(MethodSignature methodSignature) { StringBuilder builder = new StringBuilder(); builder.append(methodSignature.getMethodName()); builder.append("("); for (Parameter argumentType : methodSignature.getArgumentTypes()) { builder.append(ParameterSignaturePrinter.print(argumentType)); } builder.append(")"); builder.append(ParameterSignaturePrinter.print(methodSignature.getReturnType())); return builder.toString(); }
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; }
private MethodSignature scan() { int leftBracketIndex = bytecodeMethodSignature.indexOf('('); int rightBracketIndex = bytecodeMethodSignature.indexOf(')'); String methodName = bytecodeMethodSignature.substring(0, leftBracketIndex); Parameter returnType = ParameterSignatureScanner.scan(bytecodeMethodSignature.substring(rightBracketIndex + 1)); List<Parameter> argumentTypes = ParameterSignatureScanner.scanArguments(bytecodeMethodSignature.substring(leftBracketIndex + 1, rightBracketIndex)); return new MethodSignature(methodName, returnType, argumentTypes); }
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 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; }
private boolean hasNext() { if (signature.length() > index && (signature.charAt(index) == ARRAY || nextCharIsJvmJavaType())) { return true; } return false; }
private boolean nextCharIsJvmJavaType() { try { JvmJavaType.valueOf(signature.substring(index, index + 1)); return true; } catch (IllegalArgumentException e) { return false; } }
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 static String print(MethodSignature methodSignature) { StringBuilder builder = new StringBuilder(); builder.append(methodSignature.getMethodName()); builder.append("("); for (Parameter argumentType : methodSignature.getArgumentTypes()) { builder.append(ParameterSignaturePrinter.print(argumentType)); } builder.append(")"); builder.append(ParameterSignaturePrinter.print(methodSignature.getReturnType())); return builder.toString(); }
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; }
public static Parameter scan(String parameterSignature) { ParameterSignatureScanner scanner = new ParameterSignatureScanner(parameterSignature); if (scanner.hasNext()) { return scanner.next(); } else { return null; } }
private MethodSignature scan() { int leftBracketIndex = bytecodeMethodSignature.indexOf('('); int rightBracketIndex = bytecodeMethodSignature.indexOf(')'); String methodName = bytecodeMethodSignature.substring(0, leftBracketIndex); Parameter returnType = ParameterSignatureScanner.scan(bytecodeMethodSignature.substring(rightBracketIndex + 1)); List<Parameter> argumentTypes = ParameterSignatureScanner.scanArguments(bytecodeMethodSignature.substring(leftBracketIndex + 1, rightBracketIndex)); return new MethodSignature(methodName, returnType, argumentTypes); }
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(); }
private boolean hasNext() { if (signature.length() > index && (signature.charAt(index) == ARRAY || nextCharIsJvmJavaType())) { return true; } return false; }
private boolean nextCharIsJvmJavaType() { try { JvmJavaType.valueOf(signature.substring(index, index + 1)); return true; } catch (IllegalArgumentException e) { return false; } }