code: function (constraints) {
      if (! indexBool) return [];
      var results = null;
  
      for (var i in accessorArray) {
          if (deepEqual(constraints, accessorArray[i].constraints)) {
              results = accessorArray[i].results;
              if (debugMode) console.log("previous similar accession found");
              break;
          } else {
              if (debugMode) {
                  console.log("not equal :")
                  console.dir(accessorArray[i].constraints)
              }
          }
      }
  
      if (results == null) {
          results = processArray.filter(function(d){
              return _isConstraintsOk(d, constraints);
          });
          accessorArray.push({ "constraints" : constraints, "results" : results });
      }
      
      if (debugMode) {
          var tmp = accessorArray[ accessorArray.length - 1 ].results;
          console.log("\t\t::filtering processes => " + tmp.length + " hits");
          console.log("Constraints:");
          console.dir(accessorArray[ accessorArray.length - 1 ].constraints);
          console.log("Processes:");
          viewProcessArray(tmp);
      }
  
      return results.map(function(d){ return d.workDir; });
  }
docs: /*
  Filter ths subset of processArray (aka list of JobRepresentations)
  and store this sublist in an accessorArray.
  Subsequent calls to _filter will 1st lookup the accessorArray, then the total processArray if not match were found.
  Anyway, returned value is a list of workDir