code: protected NodeTypes without( Collection<JcrNodeType> removedNodeTypes ) {
          if (removedNodeTypes.isEmpty()) return this;
          Collection<JcrNodeType> nodeTypes = new HashSet<JcrNodeType>(this.nodeTypes.values());
          nodeTypes.removeAll(removedNodeTypes);
          return new NodeTypes(this.context, nodeTypes, getVersion() + 1);
      }
docs: Obtain a new version of this cache with the specified node types removed from the new cache.
  
  @param removedNodeTypes the node types that are to be removed from the resulting cache; may not be null but may be empty
  @return the resulting cache that contains all of the node types within this cache but without the supplied node types;
  never null