@Override
    public void collect(final JwtClaims jwtClaims, final String name, final List<Object> values) {
        if (!values.isEmpty()) {
            val attributeDefinition = attributeDefinitionStore.locateAttributeDefinition(name, OidcAttributeDefinition.class)
                .or(() -> attributeDefinitionStore.locateAttributeDefinitionByName(name, OidcAttributeDefinition.class));
            val finalValue = attributeDefinition.map(definition -> definition.toAttributeValue(values))
                .orElseGet(() -> values.size() == 1 ? values.getFirst() : values);

            attributeDefinition
                .stream()
                .filter(OidcAttributeDefinition::isStructured)
                .filter(definition -> definition.getName().contains("."))
                .findFirst()
                .ifPresentOrElse(definition -> collectStructuredClaim(jwtClaims, definition, finalValue),
                    () -> {
                        val claimName = attributeDefinition.map(DefaultAttributeDefinition::getName).orElse(name);
                        collectClaim(jwtClaims, claimName, finalValue);
                    });
        }
    }
This is {@link OidcSimpleIdTokenClaimCollector}.

@author Misagh Moayyed
@since 7.0.0
support/cas-server-support-oidc-core-api/src/main/java/org/apereo/cas/oidc/claims/OidcSimpleIdTokenClaimCollector.java