code: public List<V> executeModules(List<String> moduleIds, ScriptModuleExecutable<V> executable, ScriptModuleLoader moduleLoader) {
          Objects.requireNonNull(moduleIds, "moduleIds");
          Objects.requireNonNull(executable, "executable");
          Objects.requireNonNull(moduleLoader, "moduleLoader");
  
          List<ScriptModule> modules = new ArrayList<ScriptModule>(moduleIds.size());
          for (String moduleId : moduleIds) {
             ScriptModule module = moduleLoader.getScriptModule(ModuleId.create(moduleId));
             if (module != null) {
                 modules.add(module);
             }
          }
          return executeModules(modules, executable);
      }
docs: Execute a collection of ScriptModules identified by moduleId.
  
  @param moduleIds moduleIds for modules to execute
  @param executable execution logic to be performed for each module.
  @param moduleLoader loader which manages the modules.
  @return list of the outputs from the executable.