in src/main/java/org/apache/commons/configuration2/BaseHierarchicalConfiguration.java [738:765]
public Configuration subset(final String prefix) {
return syncRead(() -> {
final List<QueryResult<ImmutableNode>> results = fetchNodeList(prefix);
if (results.isEmpty()) {
return new BaseHierarchicalConfiguration();
}
final BaseHierarchicalConfiguration parent = this;
final BaseHierarchicalConfiguration result = new BaseHierarchicalConfiguration() {
@Override
public ConfigurationInterpolator getInterpolator() {
return parent.getInterpolator();
}
// Override interpolate to always interpolate on the parent
@Override
protected Object interpolate(final Object value) {
return parent.interpolate(value);
}
};
result.getModel().setRootNode(createSubsetRootNode(results));
if (result.isEmpty()) {
return new BaseHierarchicalConfiguration();
}
result.setSynchronizer(getSynchronizer());
return result;
}, false);
}