private static SimpleConfigurationMetadataRepository create(final RawConfigurationMetadata metadata) {
        val repository = new SimpleConfigurationMetadataRepository();
        repository.add(metadata.getSources());
        for (val item : metadata.getItems()) {
            val source = getSource(metadata, item);
            repository.add(item, source);
        }
        val allProperties = repository.getAllProperties();
        for (val hint : metadata.getHints()) {
            var property = allProperties.get(hint.getId());
            if (property != null) {
                addValueHints(property, hint);
            } else {
                val id = hint.resolveId();
                property = allProperties.get(id);
                if (property != null) {
                    if (hint.isMapKeyHints()) {
                        addMapHints(property, hint);
                    } else {
                        addValueHints(property, hint);
                    }
                }
            }
        }
        return repository;
    }
This is {@link CasConfigurationMetadataRepositoryJsonBuilder}
which is similar to {@link ConfigurationMetadataRepositoryJsonBuilder}
with a different implementation for the {@link #getSource(RawConfigurationMetadata, ConfigurationMetadataItem)}.

@author Misagh Moayyed
@since 6.0.0
support/cas-server-support-configuration-metadata-repository/src/main/java/org/springframework/boot/configurationmetadata/CasConfigurationMetadataRepositoryJsonBuilder.java