in customization-base/src/main/java/com/azure/autorest/customization/implementation/Utils.java [470:499]
public static <T extends CodeCustomization> T addImports(List<String> importsToAdd,
ClassCustomization customization, Supplier<T> refreshCustomizationSupplier) {
EclipseLanguageClient languageClient = customization.getLanguageClient();
Editor editor = customization.getEditor();
String fileUri = customization.getFileUri();
String fileName = customization.getFileName();
// Only add imports if they exist.
if (!isNullOrEmpty(importsToAdd)) {
// Always place imports after the package.
// The language server will format the imports once added, so location doesn't matter.
int importLine = Utils.walkDownFileUntilLineMatches(editor, fileName, 0,
line -> PACKAGE_PATTERN.matcher(line).matches()) + 1;
Position importPosition = new Position(importLine, 0);
String imports = importsToAdd.stream()
.map(importToAdd -> "import " + importToAdd + ";")
.collect(Collectors.joining("\n"));
editor.insertBlankLine(fileName, importLine, false);
editor.replace(fileName, importPosition, importPosition, imports);
}
FileEvent fileEvent = new FileEvent();
fileEvent.setUri(fileUri);
fileEvent.setType(FileChangeType.Changed);
languageClient.notifyWatchedFilesChanged(Collections.singletonList(fileEvent));
return refreshCustomizationSupplier.get();
}