@Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        final ExplorerTreeFilter that = (ExplorerTreeFilter) o;
        return nameFilterChange == that.nameFilterChange &&
                Objects.equals(includedTypes, that.includedTypes) &&
                Objects.equals(includedRootTypes, that.includedRootTypes) &&
                Objects.equals(tags, that.tags) &&
                Objects.equals(nodeFlags, that.nodeFlags) &&
                Objects.equals(requiredPermissions, that.requiredPermissions) &&
                Objects.equals(nameFilter, that.nameFilter) &&
                Objects.equals(recentItems, that.recentItems);
    }
@return A copy of this {@link ExplorerTreeFilter} with the supplied nameFilter
stroom-core-shared/src/main/java/stroom/explorer/shared/ExplorerTreeFilter.java