private static String nodeToTagsString(final ExplorerNode explorerNode) {
        // Don't use NodeTagSerialiser as that sorts, and we don't care about that and
        // don't want the perf hit.
        return explorerNode.getTags() == null
                ? null
                : String.join(ExplorerNode.TAGS_DELIMITER, explorerNode.getTags());
    }
Some docRefs will get tested multiple times over the course of building the output tree
so hold a transient cache of filter matches. Also creates a combined predicate that only
includes the required checks bases on what is set in the ExplorerTreeFilter.
stroom-explorer/stroom-explorer-impl/src/main/java/stroom/explorer/impl/NodeInclusionChecker.java