Отслеживание изменений номера строки в JavaParser
В настоящее время я пытаюсь использовать JavaParser , чтобы немного изменить существующий исходный код. Теперь я хотел бы иметь возможность отслеживать изменения номеров строк, внесенные этими модификациями.
В качестве примера предположим, что у нас естьModifierVisitor
который добавляет одну строку в тело каждого цикла while (обрабатываемый код может содержать несколько циклов). Обработка следующего кода
1 public class X {
2 public static void main(String[] args) {
3 int a = 1;
4 while(a < 100) {
5 a *= 2;
6 }
7 }
8 }
превратил бы его в
1 public class X {
2 public static void main(String[] args) {
3 int a = 1;
4 while(a < 100) {
5 a *= 2;
6 System.out.println("Hello, I am the new line");
7 }
8 }
9 }
Вопрос: Есть ли простой способ / встроенная функция в JavaParser для создания сопоставления строк между этими двумя версиями?
Я хотел бы иметь сопоставление новых номеров строк со старыми (или наоборот). Для приведенного выше примера карта должна выглядеть примерно так:
New -> Old
1 -> 1
2 -> 2
3 -> 3
4 -> 4
5 -> 5
6 -> -1 (did not exist in the old version)
7 -> 6
8 -> 7
9 -> 8