docs: public NodeSequence childNodes( Path parentPath,
                                      float score ) {
          String workspaceName = getWorkspaceName(parentPath);
  
          // Get the node filter to use ...
          NodeFilter nodeFilter = nodeFilterForWorkspace(workspaceName);
          if (nodeFilter != null) {
              // always append a shared nodes filter to the end of the workspace filter
              // JCR #14.16 -If a query matches a descendant node of a shared set, it appears in query results only once.
              NodeFilter compositeFilter = new CompositeNodeFilter(nodeFilter, sharedNodesFilter());
  
              // Find the node by path ...
              NodeCache cache = repo.getWorkspaceCache(workspaceName);
              CachedNode parentNode = getNodeAtPath(parentPath, cache);
              if (parentNode != null) {
                  // Only add those children that are queryable ...
                  ChildReferences childRefs = parentNode.getChildReferences(cache);
                  List<CachedNode> results = new ArrayList<CachedNode>((int)childRefs.size());
                  for (ChildReference childRef : childRefs) {
                      CachedNode child = cache.getNode(childRef);
                      if (compositeFilter.includeNode(child, cache)) {
                          results.add(child);
                      }
                  }
                  return NodeSequence.withNodes(results, score, workspaceName);
              }
          }
          return NodeSequence.emptySequence(1);
      }