in src/main/java/org/apache/sling/caconfig/management/impl/ConfigurationDataImpl.java [180:208]
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()]));
}
}
}
}