public Configuration subset()

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();
        }
    }