Подтвердить что ты не робот

Как добавить @Deprecated для каждого класса и каждого конструктора/метода для каждого класса?

У меня есть код устаревшего кода, и я хочу отметить все их и все их методы @Deprecated, чтобы по мере того как мы и трогали их, мы можем удалить эти аннотации, чтобы мы могли отслеживать, что было модернизировано и что еще плохо.

Я пытаюсь использовать Structural Search/Replace и не могу получить правильный шаблон.

Шаблон поиска

class $Class$ { 
  $ReturnType$ $MethodName$($ParameterType$ $Parameter$) { $Stmt$; }
}

Заменить шаблон

@Deprecated
class $Class$ {
  @Deprecated
  $ReturnType$ $MethodName$($ParameterType$ $Parameter$) { $Stmt$; }
}

Но это удаляет все остальное, что находится в классе.

@Deprecated
class OldAndCrusty {
  @Deprecated
   ( );
}

Отбрасывает все модификаторы видимости и окончательные модификаторы всех классов, которые он соответствует.

Как мне заменить эти вещи и оставить остальную часть кода?

4b9b3361

Ответ 1

К сожалению, я не могу проверить это, поскольку у меня нет подходящей версии IntelliJ. Но поскольку я нашел здесь, вы можете использовать переменную для содержимого класса.

Шаблон поиска:

    class $Class$ {
       $MyClassContent$
    }

Запасной шаблон:

    @Deprecated
    class $Class$ {
       $MyClassContent$
    }

Минимальное и максимальное количество ошибок для переменной MyClassContent должно быть установлено на 0 и Integer.MAX_VALUE соответственно. Это должно оставить вас с аннотированными классами.

Теперь, я полагаю, вы можете сделать то же самое с шаблоном метода. Я не знаю, могу ли вы применить шаблон метода ко всем методам в источнике. Таким образом, вы сможете выполнить двухэтапный поиск и заменить: сначала для классов, затем для методов.