// check for any dependency regarding given string
  private boolean checkModuleDependency(Module module, Collection<ModuleId> rootModules) {

    for (ModuleId rootModule : rootModules) {

      if (rootModule.equals(new ModuleId(module.getName(), module.getRevision()))) {
        return true;
      }

      // handling/checking imports regarding root modules
      for (ModuleImport moduleImport : module.getImports()) {

        if (moduleImport.getModuleName().equals(rootModule.getName())) {

          if (moduleImport.getRevision() != null
              && !moduleImport.getRevision().equals(rootModule.getRev())) {
            return false;
          }

          return true;
        }
      }

      // submodules handling
      for (Module moduleSub : module.getSubmodules()) {
        return checkModuleDependency(moduleSub, rootModules);
      }
    }

    return false;
  }
 protected Solution addSolution(String name, VirtualFile[] roots) {
   SolutionDescriptor sd = new SolutionDescriptor();
   sd.setNamespace(name);
   sd.setId(ModuleId.foreign(name));
   addModelRoots(sd, roots);
   return StubSolution.newInstance(sd, this);
 }
示例#3
0
 private Language createLanguage() {
   LanguageDescriptor d = new LanguageDescriptor();
   String uuid = UUID.randomUUID().toString();
   d.setNamespace(uuid);
   d.setId(ModuleId.fromString(uuid));
   return TestLanguage.newInstance(d, OWNER);
 }
示例#4
0
 private Solution createSolution() {
   SolutionDescriptor d = new SolutionDescriptor();
   String uuid = UUID.randomUUID().toString();
   d.setNamespace(uuid);
   d.setId(ModuleId.fromString(uuid));
   return StubSolution.newInstance(d, OWNER);
 }
 // p0[p1]
 @DSLMethod(production = "p0 [ p1 ]", topLevel = false)
 public Import importModuleWithRenamings(
     ModuleId moduleName, @DSLParameter(arrayDelimiter = ",") Renaming[] renamings) {
   return new Import(
       moduleName.toString(),
       new ArrayList<Symbol>(),
       new ArrayList<Renaming>(Arrays.asList(renamings)));
 }
 protected void removeSolution(String name) {
   ModuleReference ref = new ModuleReference(null, ModuleId.foreign(name));
   MPSModuleRepository repository = MPSModuleRepository.getInstance();
   IModule m = ModuleRepositoryFacade.getInstance().getModule(ref);
   if (m == null) {
     return;
   }
   repository.unregisterModule(m, this);
 }
示例#7
0
 public PluginPackageImpl(String moduleId) {
   _moduleId = ModuleId.getInstance(moduleId);
 }
 // p0
 @DSLMethod(production = "p0", topLevel = false)
 public Import importModuleWithoutParameters(ModuleId moduleName) {
   return new Import(moduleName.toString());
 }