code: public <T extends ICalProperty> List<T> setProperty(Class<T> clazz, T property) {
  		List<ICalProperty> replaced = properties.replace(clazz, property);
  		return castList(replaced, clazz);
  	}
docs: Replaces all existing properties of the given class with a single
  property instance. If the property instance is null, then all instances
  of that property will be removed.
  @param clazz the property class (e.g. "DateStart.class")
  @param property the property or null to remove all properties of the
  given class
  @param <T> the property class
  @return the replaced properties (this list is immutable)