public static T addImports()

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();
    }