1 /**
  2  * Workflow dictionary to feed a hierarchical dictionary of the current MediaBeacon directory structure
  3  */
  4 
  5 function main() {
  6   var aDictionary = [];
  7   //index level
  8   var aFolder = new ManagedFolder("");
  9   aDictionary = createDirectoryWords(aFolder, aDictionary);
 10   return JSON.stringify(aDictionary, null, 2);
 11 }
 12 main();
 13 
 14 function createDirectoryWords(theFolder, theDictionary) {
 15   var aFileAndFolderIterator = theFolder.getContents(1);
 16   while (aFileAndFolderIterator.hasNext()) {
 17     var aFileOrFolder = aFileAndFolderIterator.next();
 18     if (fileManager.isManaged(aFileOrFolder)) {
 19       if (fileManager.isFolder(aFileOrFolder.path)) {
 20         var aWord = makeWord(aFileOrFolder.name);
 21         var aSubDirSearch = theFolder.getContents(1);
 22         if (aSubDirSearch.hasNext()) {
 23           //recurse
 24           aWord.children = createDirectoryWords(aFileOrFolder, aWord.children);
 25         }
 26         theDictionary[theDictionary.length] = aWord;
 27       }
 28     }
 29   }
 30   return theDictionary;
 31 }
 32 
 33 /**
 34  * Creates a Dictionary word
 35  * @param name
 36  * @returns {{}}
 37  */
 38 function makeWord(name) {
 39   var aWord = {};
 40   aWord.display = name;
 41   aWord.value = name;
 42   aWord.children = [];
 43   return aWord;
 44 }
 45