Libraryless. Click here for Pure Java version (4828L/27K).
1 | static S migrateClassesInStructureText(S s, O... migrations) { |
2 | L<S> tok = javaTokForStructure(s); |
3 | int n = l(tok); |
4 | for (int i = 0; i < l(migrations); i += 2) { |
5 | S from = cast migrations[i]; |
6 | S fromPlusDollar = from + "$"; |
7 | O to = migrations[i+1]; |
8 | S replacement = to instanceof S ? (S) to : dropPrefix("main$", className((Class) to); |
9 | |
10 | int changes = 0; |
11 | for (int j = 1; j < n; j += 2) { |
12 | S t = tok.get(j); |
13 | if (eq(t, from)) { |
14 | tok.set(j, replacement); |
15 | ++changes; |
16 | } else if (startsWith(t, fromPlusDollar)) { |
17 | tok.set(j, replacement + t.substring(l(from))); |
18 | ++changes; |
19 | } |
20 | } |
21 | |
22 | if (changes > 0) |
23 | print("migrateClassesInStructureText: Replaced " + n2(changes, "occurrence") + " of " + from + " with " + to); |
24 | } |
25 | ret join(tok); |
26 | } |
27 | |
28 | sS migrateClassesInStructureText(S s, MapSO migrations) { |
29 | ret migrateClassesInStructureText(s, mapToParams(migrations)); |
30 | } |
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1009477 |
Snippet name: | migrateClassesInStructureText |
Eternal ID of this version: | #1009477/13 |
Text MD5: | 3fa0752bca9262d69c81bf74e5265d9d |
Transpilation MD5: | 25292fb4c7df976dd71442395b490558 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-01-19 17:01:04 |
Source code size: | 974 bytes / 30 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 611 / 714 |
Version history: | 12 change(s) |
Referenced in: | [show references] |