private Context getContext()

in src/main/java/org/apache/commons/configuration2/JNDIConfiguration.java [191:223]


    private Context getContext(final List<String> path, final Context context) throws NamingException {
        // return the current context if the path is empty
        if (path == null || path.isEmpty()) {
            return context;
        }

        final String key = path.get(0);

        // search a context matching the key in the context's elements
        NamingEnumeration<NameClassPair> elements = null;

        try {
            elements = context.list("");
            while (elements.hasMore()) {
                final NameClassPair nameClassPair = elements.next();
                final String name = nameClassPair.getName();
                final Object object = context.lookup(name);

                if (object instanceof Context && name.equals(key)) {
                    final Context subcontext = (Context) object;

                    // recursive search in the sub context
                    return getContext(path.subList(1, path.size()), subcontext);
                }
            }
        } finally {
            if (elements != null) {
                elements.close();
            }
        }

        return null;
    }