public class

CustomCollectionEditor

extends PropertyEditorSupport
java.lang.Object
   ↳ java.beans.PropertyEditorSupport
     ↳ org.springframework.beans.propertyeditors.CustomCollectionEditor

Class Overview

Property editor for Collections, converting any source Collection to a given target Collection type.

By default registered for Set, SortedSet and List, to automatically convert any given Collection to one of those target types if the type does not match the target property.

See Also

Summary

Public Constructors
CustomCollectionEditor(Class collectionType)
Create a new CustomCollectionEditor for the given target type, keeping an incoming null as-is.
CustomCollectionEditor(Class collectionType, boolean nullAsEmptyCollection)
Create a new CustomCollectionEditor for the given target type.
Public Methods
String getAsText()
This implementation returns null to indicate that there is no appropriate text representation.
void setAsText(String text)
Convert the given text value to a Collection with a single element.
void setValue(Object value)
Convert the given value to a Collection of the target type.
Protected Methods
boolean alwaysCreateNewCollection()
Return whether to always create a new Collection, even if the type of the passed-in Collection already matches.
Object convertElement(Object element)
Hook to convert each encountered Collection/array element.
Collection createCollection(Class collectionType, int initialCapacity)
Create a Collection of the given type, with the given initial capacity (if supported by the Collection type).
[Expand]
Inherited Methods
From class java.beans.PropertyEditorSupport
From class java.lang.Object
From interface java.beans.PropertyEditor

Public Constructors

public CustomCollectionEditor (Class collectionType)

Also: SpringBeans

Create a new CustomCollectionEditor for the given target type, keeping an incoming null as-is.

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

public CustomCollectionEditor (Class collectionType, boolean nullAsEmptyCollection)

Also: SpringBeans

Create a new CustomCollectionEditor for the given target type.

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
nullAsEmptyCollection whether to convert an incoming null value to an empty Collection (of the appropriate type)
See Also

Public Methods

public String getAsText ()

This implementation returns null to indicate that there is no appropriate text representation.

public void setAsText (String text)

Convert the given text value to a Collection with a single element.

public void setValue (Object value)

Convert the given value to a Collection of the target type.

Protected Methods

protected boolean alwaysCreateNewCollection ()

Also: SpringBeans

Return whether to always create a new Collection, even if the type of the passed-in Collection already matches.

Default is "false"; can be overridden to enforce creation of a new Collection, for example to convert elements in any case.

protected Object convertElement (Object element)

Also: SpringBeans

Hook to convert each encountered Collection/array element. The default implementation simply returns the passed-in element as-is.

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.

Parameters
element the source element
Returns
  • the element to be used in the target Collection

protected Collection createCollection (Class collectionType, int initialCapacity)

Also: SpringBeans

Create a Collection of the given type, with the given initial capacity (if supported by the Collection type).

Parameters
collectionType a sub-interface of Collection
initialCapacity the initial capacity
Returns
  • the new Collection instance