code: public Collection<FieldLiteral<?>> getFields(TypeLiteral<?> typeLiteral) {
      collect(typeLiteral);
      return Collections.unmodifiableCollection(fieldMultiMap.get(typeLiteral));
    }
docs: Returns all fields in the provided type, including those of the type's
  (recursive) super classes.  If no field filter is set will return an empty
  set.
  
  @param typeLiteral type for which fields are collected
  @return all fields for the given type