code: @Override
      public final Set<IPersonAttributes> mergeResults(final Set<IPersonAttributes> toModify, final Set<IPersonAttributes> toConsider) {
          Validate.notNull(toModify, "toModify cannot be null");
          Validate.notNull(toConsider, "toConsider cannot be null");
  
          //Convert the toModify Set into a Map to allow for easier lookups
          final Map<String, IPersonAttributes> toModfyPeople = new LinkedHashMap<>();
          for (final IPersonAttributes toModifyPerson : toModify) {
              toModfyPeople.put(toModifyPerson.getName(), toModifyPerson);
          }
  
          //Merge in the toConsider people
          for (final IPersonAttributes toConsiderPerson : toConsider) {
              final String toConsiderName = toConsiderPerson.getName();
              final IPersonAttributes toModifyPerson = toModfyPeople.get(toConsiderName);
  
              //No matching toModify person, just add the new person
              if (toModifyPerson == null) {
                  toModify.add(toConsiderPerson);
              }
              //Matching toModify person, merge their attributes
              else {
                  final Map<String, List<Object>> toModifyAttributes = this.buildMutableAttributeMap(toModifyPerson.getAttributes());
                  final Map<String, List<Object>> mergedAttributes = this.mergePersonAttributes(toModifyAttributes, toConsiderPerson.getAttributes());
                  final NamedPersonImpl mergedPerson = new NamedPersonImpl(toConsiderName, mergedAttributes);
  
                  //Remove then re-add the mergedPerson entry
                  toModify.remove(mergedPerson);
                  toModify.add(mergedPerson);
              }
          }
  
          return toModify;
      }
docs: /* (non-Javadoc)
  @see org.jasig.services.persondir.support.merger.IAttributeMerger#mergeResults(java.util.Set, java.util.Set)