43 public static class ParseResult {
44
45 public final List<String> types = new ArrayList<>();
46 public String formatted;
47 private ParseResult() {}
48 }
49
50 private SignatureParser() {}
51
52 public static String reconstruct(String formatted, List<String> arguments) {
53 int arg_index = 0;
54 char[] chars = formatted.toCharArray();
55 StringBuilder out = new StringBuilder();
56
57 for (int i = 0; i < chars.length; i++) {
58 char c = chars[i];
59 out.append(c);
60 switch (c) {
61 case 'L': {
62 String pkg = arguments.get(arg_index);
63 if(pkg.length() > 0) {
64 out.append(pkg).append("/");
65 }
66 arg_index+=1;
67 out.append(arguments.get(arg_index));
68 arg_index+=1;
69 break;
70 }
71 default: {
72 break;
73 }
74 }
75 }
76 return out.toString();
77 }
78
79 public static ParseResult parseSignatureDescriptor(String str) {
80 ParseResult res = new ParseResult();
81 char[] chars = str.toCharArray();
82 StringBuilder type = null;
83 StringBuilder formatted = new StringBuilder();
|
43 public static class ParseResult {
44
45 public final List<String> types = new ArrayList<>();
46 public String formatted;
47 private ParseResult() {}
48 }
49
50 private SignatureParser() {}
51
52 public static String reconstruct(String formatted, List<String> arguments) {
53 int arg_index = 0;
54 char[] chars = formatted.toCharArray();
55 StringBuilder out = new StringBuilder();
56
57 for (int i = 0; i < chars.length; i++) {
58 char c = chars[i];
59 out.append(c);
60 switch (c) {
61 case 'L': {
62 String pkg = arguments.get(arg_index);
63 if(!pkg.isEmpty()) {
64 out.append(pkg).append("/");
65 }
66 arg_index+=1;
67 out.append(arguments.get(arg_index));
68 arg_index+=1;
69 break;
70 }
71 default: {
72 break;
73 }
74 }
75 }
76 return out.toString();
77 }
78
79 public static ParseResult parseSignatureDescriptor(String str) {
80 ParseResult res = new ParseResult();
81 char[] chars = str.toCharArray();
82 StringBuilder type = null;
83 StringBuilder formatted = new StringBuilder();
|