@Override
    protected List<PersonAttributes> parseAttributeMapFromResults(final List<Map<String, Object>> queryResults, final String queryUserName) {
        val peopleAttributes = new ArrayList<PersonAttributes>(queryResults.size());
        for (val queryResult : queryResults) {
            val multivaluedQueryResult = toMultivaluedMap(queryResult);
            val userNameAttribute = getConfiguredUserNameAttribute();
            if (isUserNameAttributeConfigured() && queryResult.containsKey(userNameAttribute)) {
                peopleAttributes.add(SimplePersonAttributes.fromAttribute(userNameAttribute, multivaluedQueryResult));
            } else if (queryUserName != null) {
                peopleAttributes.add(new SimplePersonAttributes(queryUserName, multivaluedQueryResult));
            } else {
                peopleAttributes.add(SimplePersonAttributes.fromAttribute(userNameAttribute, multivaluedQueryResult));
            }
        }
        return peopleAttributes;
    }
An {@link PersonAttributeDao}
implementation that maps from column names in the result of a SQL query
to attribute names. <br>
You must set a Map from column names to attribute names and only column names
appearing as keys in that map will be used.

@author andrew.petro@yale.edu
@author Eric Dalquist
@since 7.1.0
support/cas-server-support-jdbc-authentication/src/main/java/org/apereo/cas/jdbc/SingleRowJdbcPersonAttributeDao.java