protected void generate()

in android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/action/rib/GenerateAction.java [109:151]


  protected void generate(
      final List<Generator> mainSourceGenerators, final List<Generator> testSourceGenerators) {
    /** Preconditions have been validated by {@link GenerateRibAction#isAvailable(DataContext)}. */
    final Project project = Preconditions.checkNotNull(CommonDataKeys.PROJECT.getData(dataContext));
    final IdeView view = Preconditions.checkNotNull(LangDataKeys.IDE_VIEW.getData(dataContext));
    final PsiDirectory directory = Preconditions.checkNotNull(view.getOrChooseDirectory());
    final Module currentModule =
        Preconditions.checkNotNull(ModuleUtilCore.findModuleForPsiElement(directory));
    final SourceFolder testSourceFolder = suitableTestSourceFolders(project, currentModule);

    final PackageWrapper targetPackage =
        new PackageWrapper(PsiManager.getInstance(project), getPackageName());

    ApplicationManager.getApplication()
        .runWriteAction(
            new Runnable() {
              @Override
              public void run() {
                CommandProcessor.getInstance()
                    .executeCommand(
                        project,
                        new Runnable() {
                          @Override
                          public void run() {
                            for (Generator generator : mainSourceGenerators) {
                              createSourceFile(project, generator, directory);
                            }

                            if (testSourceFolder != null) {
                              PsiDirectory testDirectory =
                                  RefactoringUtil.createPackageDirectoryInSourceRoot(
                                      targetPackage, testSourceFolder.getFile());
                              for (Generator generator : testSourceGenerators) {
                                createSourceFile(project, generator, testDirectory);
                              }
                            }
                          }
                        },
                        "Generate new RIB",
                        null);
              }
            });
  }