private void resolveNestedConfigs()

in src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java [197:233]


    private void resolveNestedConfigs(Map<String, Object> props) {
        if (configMetadata == null) {
            return;
        }
        for (PropertyMetadata<?> propertyMetadata :
                configMetadata.getPropertyMetadata().values()) {
            if (propertyMetadata.isNestedConfiguration()) {
                ConfigurationMetadata nestedConfigMetadata = propertyMetadata.getConfigurationMetadata();
                String relatedConfigPath =
                        resolvedConfigurationResource != null ? resolvedConfigurationResource.getPath() : null;
                String nestedConfigName;
                if (configResourceCollection) {
                    String nestedCollectionItemName = StringUtils.defaultString(getCollectionItemName(), "newItem");
                    nestedConfigName = configurationPersistenceStrategy.getCollectionItemConfigName(
                                    configurationPersistenceStrategy.getCollectionParentConfigName(
                                                    configName, relatedConfigPath)
                                            + "/" + nestedCollectionItemName,
                                    relatedConfigPath)
                            + "/" + nestedConfigMetadata.getName();
                } else {
                    nestedConfigName = configurationPersistenceStrategy.getConfigName(configName, relatedConfigPath)
                            + "/" + nestedConfigMetadata.getName();
                }
                if (propertyMetadata.getType().equals(ConfigurationMetadata.class)) {
                    ConfigurationData configData =
                            configurationManager.getConfiguration(contextResource, nestedConfigName);
                    props.put(propertyMetadata.getName(), configData);
                } else if (propertyMetadata.getType().equals(ConfigurationMetadata[].class)) {
                    Collection<ConfigurationData> configDatas = configurationManager
                            .getConfigurationCollection(contextResource, nestedConfigName)
                            .getItems();
                    props.put(
                            propertyMetadata.getName(), configDatas.toArray(new ConfigurationData[configDatas.size()]));
                }
            }
        }
    }