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