@Override
    public Set<PersonAttributes> getPeopleWithMultivaluedAttributes(final Map<String, List<Object>> attributes,
                                                                    final PersonAttributeDaoFilter filter,
                                                                    final Set<PersonAttributes> resultPeople) {
        val personAttributesMap = groovyObject.getPersonAttributesFromMultivaluedAttributes(attributes, resultPeople);
        if (personAttributesMap != null) {
            LOGGER.debug("Creating person attributes: [{}]", personAttributesMap);
            return Set.of(new SimplePersonAttributes(personAttributesMap));
        }
        return null;
    }
An implementation of the {@link PersonAttributeDao} that is able to resolve attributes
based on an external Groovy script, Groovy object, or Java object. Changes to the groovy script can be auto-detected
in certain use cases.

@author Misagh Moayyed
@since 7.1.0
support/cas-server-support-person-directory-core/src/main/java/org/apereo/cas/persondir/groovy/GroovyPersonAttributeDao.java