CustomCollectionEditor

If the incoming value is of the given type, it will be used as-is.
If it is a different Collection type or an array, it will be converted
to a default implementation of the given Collection type.
If the value is anything else, a target Collection with that single
value will be created.

The default Collection implementations are: ArrayList for List,
TreeSet for SortedSet, and LinkedHashSet for Set.

Parameters:

collectionType - the target type, which needs to be a
sub-interface of Collection or a concrete Collection class

convertElement

Can be overridden to perform conversion of certain elements,
for example String to Integer if a String array comes in and
should be converted to a Set of Integer objects.

Only called if actually creating a new Collection!
This is by default not the case if the type of the passed-in Collection
already matches. Override alwaysCreateNewCollection() to
enforce creating a new Collection in every case.