IBM Doors DXL: Recursively load formal module by name without knowing the path / Modul nach Name Laden (Folder bekannt)

Problem

A module should be loaded by name independend from the position in the Doors Project Structure.
Ein Modul soll nur anhand seines Namens geladen werden, ohne die genaue Position im Doors Projekt zu wissen.

Premise – Prerequirement – Voraussetzung

Start Folder is known. The doors module name is unique in the project, otherwise only the first found module with that name will be loaded.
Der Startordner ist bekannt. Der Doors Modulname ist im Projekt eindeutig. Ist dies nicht der Fall, wird nur das erste Modul mit diesem Namen geladen.

Lösung -Solution

Module getModule(Folder selectedFolder, string moduleNameToCompare)
{
 Item itm;
 Module moduleToReturn = null

 for itm in selectedFolder do 
 { 
  if(type(itm) "" == "Folder") 
  { 
   moduleToReturn = getModule(folder(itm), moduleNameToCompare);	
   if(moduleToReturn != null)
   {
    break
   } 
  } 
  else if(type(itm) "" == "Formal")
  {
   Module mod;		
   mod = edit(fullName(itm), false);
   if(!null mod)
   {
     if(name(mod) "" == moduleNameToCompare) 
     {  
      moduleToReturn = mod;
      objectFound = true
      break;
     }
   }
  }
  else if(type(itm) "" == "Link")
  {
  }
 }

 return moduleToReturn;
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.