Как добавить @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
   ( );
}

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

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

1 ответ

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

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

    class $Class$ {
       $MyClassContent$
    }

Шаблон замены:

    @Deprecated
    class $Class$ {
       $MyClassContent$
    }

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

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

Другие вопросы по тегам