default Set<PersonAttributes> getPeopleWithMultivaluedAttributes(final Map<String, List<Object>> query,
                                                                     final PersonAttributeDaoFilter filter,
                                                                     final Set<PersonAttributes> resultPeople) {
        return new LinkedHashSet<>();
    }
Searches for {@link PersonAttributes}s that match the set of attributes provided in the query {@link Map}. Each
implementation is free to define what qualifies as a 'match' is on its own. The provided query Map contains
String attribute names and single values which may be null.
<br>
If the implementation can not execute its query for an expected reason such as not enough information in the
query {@link Map} null should be returned. For unexpected problems throw an exception.

@param query        A {@link Map} of name/value pair attributes to use in searching for {@link PersonAttributes}s
@param filter       the filter
@param resultPeople the result people from previous attempts, if any.
@return A {@link Set} of {@link PersonAttributes}s that match the query {@link Map}. If no matches are
found an empty {@link Set} is returned. If the query could not be run null is returned.
@throws IllegalArgumentException If {@code query} is {@code null.}
api/cas-server-core-api-authentication/src/main/java/org/apereo/cas/authentication/principal/attribute/PersonAttributeDao.java