code: @SuppressWarnings("unchecked")
      public <T extends Tag> Set<T> getOfType(final Class<T> type) {
  	read.lock();
  	try {
  	    final Set<T> tagsOfType = (Set<T>) tags.get(type);
  	    return tagsOfType != null ? Collections.unmodifiableSet(tagsOfType) : Collections.emptySet();
  	} finally {
  	    read.unlock();
  	}
      }
docs: Gets all of the tags matching the specified type.
  
  @param type
  Type of tag.
  @return All tags of that type or an empty set if none are found.