code: @Override
      protected List<IPersonAttributes> parseAttributeMapFromResults(final List<Map<String, Object>> queryResults, final String queryUserName) {
          final List<IPersonAttributes> peopleAttributes = new ArrayList<>(queryResults.size());
  
          for (final Map<String, Object> queryResult : queryResults) {
              final Map<String, List<Object>> multivaluedQueryResult = MultivaluedPersonAttributeUtils.toMultivaluedMap(queryResult);
  
              final IPersonAttributes person;
              final String userNameAttribute = this.getConfiguredUserNameAttribute();
              if (this.isUserNameAttributeConfigured() && queryResult.containsKey(userNameAttribute)) {
                  // Option #1:  An attribute is named explicitly in the config, 
                  // and that attribute is present in the results from JDBC;  use it
                  person = new CaseInsensitiveAttributeNamedPersonImpl(userNameAttribute, multivaluedQueryResult);
              } else if (queryUserName != null) {
                  // Option #2:  Use the userName attribute provided in the query 
                  // parameters.  (NB:  I'm not entirely sure this choice is 
                  // preferable to Option #3.  Keeping it because it most closely 
                  // matches the legacy behavior there the new option -- Option #1 
                  // -- doesn't apply.  ~drewwills)
                  person = new CaseInsensitiveNamedPersonImpl(queryUserName, multivaluedQueryResult);
              } else {
                  // Option #3:  Create the IPersonAttributes doing a best-guess 
                  // at a userName attribute
                  person = new CaseInsensitiveAttributeNamedPersonImpl(userNameAttribute, multivaluedQueryResult);
              }
  
              peopleAttributes.add(person);
          }
  
          return peopleAttributes;
      }
docs: /* (non-Javadoc)
  @see org.jasig.services.persondir.support.jdbc.AbstractJdbcPersonAttributeDao#parseAttributeMapFromResults(java.util.List, java.lang.String)