Я пытаюсь использовать IntelliJ Structural Search and Replace, чтобы перегрузить набор методов установки с Optional
вариантами. Это должно учитывать, что целевое значение может быть примитивным (например, от boolean
до Optional<Boolean>
). Вот основная часть преобразования:
Поиск:
public static void set($BType$ $BName$, $VType$ $VName$) {
$body$; // 0 - infinity
}
Замена:
public static void set($BType$ $BName$, java.util.Optional<$VTypeMightBeBoxed$> $VName$) {
$VName$.ifPresent(v -> set($BName$, v));
}
public static void set($BType$ $BName$, $VType$ $VName$) {
$body$;
}
Я немного застрял на необходимом сценарии PSI Groovy сгенерировать $vTypeMightBeBoxed
PS. В основном это вызвано полным отсутствием помощи редактора при добавлении этих скриптов! Не то, что ожидается от Jetbrains!