code: function collectNamesAndUniqueOutcomes(rules, self){
          var names = new Map();
          _.each(rules, function(rule){
              var fullyQualifiedName = rule.getFullyQualifiedName();
              if(names.has(fullyQualifiedName)){
                  throw new DuplicateNameException('The name ' + fullyQualifiedName + ' was found in a different rule.');
              }
              names.set(fullyQualifiedName, rule);
              self.uniqueOutcomes.add(rule.outcome);
          });
          return names;
      }
docs: /* returns a <code>Set</code> of fully qualified names, and adds each outcome to <code>this.uniqueOutcomes</code>.