code: public static SelectionSpec[] buildFullTraversalV4() {
          List<TraversalSpec> tSpecs = buildFullTraversalV2NoFolder();
  
          TraversalSpec dcToDs = createTraversalSpec("dcToDs",
              "Datacenter", "datastoreFolder",
              new String[]{"visitFolders"});
  
          TraversalSpec vAppToRp = createTraversalSpec("vAppToRp",
              "VirtualApp", "resourcePool",
              new String[]{"rpToRp", "vAppToRp"});
  
          /**
           * Copyright 2009 Altor Networks, contribution by Elsa Bignoli
           * @author Elsa Bignoli (elsa@altornetworks.com)
           */
          // Traversal through netFolder branch
          TraversalSpec dcToNetf = createTraversalSpec("dcToNetf",
              "Datacenter", "networkFolder",
              new String[]{"visitFolders"});
  
          // Recurse through the folders
          TraversalSpec visitFolders = createTraversalSpec("visitFolders",
              "Folder", "childEntity",
              new String[]{"visitFolders", "dcToHf", "dcToVmf", "dcToDs", "dcToNetf", "crToH", "crToRp", "HToVm", "rpToVm"});
  
          SelectionSpec[] sSpecs = new SelectionSpec[tSpecs.size() + 4];
          sSpecs[0] = visitFolders;
          sSpecs[1] = dcToDs;
          sSpecs[2] = dcToNetf;
          sSpecs[3] = vAppToRp;
          for (int i = 4; i < sSpecs.length; i++) {
              sSpecs[i] = tSpecs.get(i - 4);
          }
  
          return sSpecs;
      }
docs: This method creates a SelectionSpec[] to traverses the entire
  inventory tree starting at a Folder
  
  @return The SelectionSpec[]