public TreeNode listNodes()

in indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java [59:108]


    public TreeNode listNodes(TreeViewRequest request) throws IOException {
        // get the last path elem
        String name;

        if (!"/".equals(request.getPath())) {

            if (request.getPath().endsWith("/")) {
                name = request.getPath().substring(0, request.getPath().length() - 1);
            } else {
                name = request.getPath();
            }

            name = name.substring(name.lastIndexOf('/') + 1);

            // root is "/"
            if (!name.equals("/") && name.endsWith("/")) {
                name = name.substring(0, name.length() - 1);
            }

        } else {
            name = "/";
        }

        // the root node depends on request we have, so let's see
        TreeNode result = request.getFactory().createGNode(this, request, request.getPath(), name);

        if (request.hasFieldHints()) {
            listChildren(result, request, null);
        } else {
            // non hinted way, the "old" way
            if ("/".equals(request.getPath())) {
                // get root groups and finish
                Set<String> rootGroups = request.getIndexingContext().getRootGroups();

                for (String group : rootGroups) {
                    if (group.length() > 0) {
                        result.getChildren()
                                .add(request.getFactory()
                                        .createGNode(this, request, request.getPath() + group + "/", group));
                    }
                }
            } else {
                Set<String> allGroups = request.getIndexingContext().getAllGroups();

                listChildren(result, request, allGroups);
            }
        }

        return result;
    }