static S migrateClassesInStructureText(S s, O... migrations) { L tok = javaTok(s); for (int i = 0; i < l(migrations); i += 2) { S from = cast migrations[i]; O to = migrations[i+1]; replace(tok, from, to instanceof S ? (S) to : shortClassName((Class) to)); } ret join(tok); } static S migrateClassesInStructureText(S s, Map migrations) { if (empty(migrations)) ret s; L tok = javaTok(s); for (int i = 1; i < l(tok); i += 2) { S t = tok.get(i); if (!isIdentifier(i)) continue; O to = migrations.get(t); if (to == null) continue; tok.set(i, to instanceof S ? (S) to : shortClassName((Class) to)); } ret join(tok); }