code: public static TypeDescriptor collection(Class<?> collectionType, TypeDescriptor elementTypeDescriptor) {
  		if (!Collection.class.isAssignableFrom(collectionType)) {
  			throw new IllegalArgumentException("collectionType must be a java.util.Collection");
  		}
  		return new TypeDescriptor(collectionType, elementTypeDescriptor);
  	}
docs: Create a new type descriptor from a {@link java.util.Collection} type.
  <p>Useful for converting to typed Collections.
  <p>For example, a {@code List<String>} could be converted to a
  {@code List<EmailAddress>} by converting to a targetType built with this method.
  The method call to construct such a {@code TypeDescriptor} would look something
  like: {@code collection(List.class, TypeDescriptor.valueOf(EmailAddress.class));}
  @param collectionType the collection type, which must implement {@link Collection}.
  @param elementTypeDescriptor a descriptor for the collection's element type,
  used to convert collection elements
  @return the collection type descriptor