public static Parameter scan(String parameterSignature) { ParameterSignatureScanner scanner = new ParameterSignatureScanner(parameterSignature); if (scanner.hasNext()) { return scanner.next(); } else { return null; } }
private boolean hasNext() { if (signature.length() > index && (signature.charAt(index) == ARRAY || nextCharIsJvmJavaType())) { return true; } return false; }
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); }
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 Parameter scan(String parameterSignature) { ParameterSignatureScanner scanner = new ParameterSignatureScanner(parameterSignature); if (scanner.hasNext()) { return scanner.next(); } else { return null; } }
private boolean hasNext() { if (signature.length() > index && (signature.charAt(index) == ARRAY || nextCharIsJvmJavaType())) { return true; } return false; }
public static List<Parameter> scanArguments(String argumentsSignature) { List<Parameter> arguments = new ArrayList<Parameter>(); ParameterSignatureScanner scanner = new ParameterSignatureScanner(argumentsSignature); while (scanner.hasNext()) { arguments.add(scanner.next()); } return arguments; }
public static List<Parameter> scanArguments(String argumentsSignature) { List<Parameter> arguments = new ArrayList<>(); ParameterSignatureScanner scanner = new ParameterSignatureScanner(argumentsSignature); while (scanner.hasNext()) { arguments.add(scanner.next()); } return arguments; }