|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.beans.PropertyEditorSupport org.springframework.beans.propertyeditors.CustomCollectionEditor
public class CustomCollectionEditor
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.
Collection
,
Set
,
SortedSet
,
List
Constructor Summary | |
---|---|
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. |
Method Summary | |
---|---|
protected boolean |
alwaysCreateNewCollection()
Return whether to always create a new Collection, even if the type of the passed-in Collection already matches. |
protected Object |
convertElement(Object element)
Hook to convert each encountered Collection/array element. |
protected Collection |
createCollection(Class collectionType,
int initialCapacity)
Create a Collection of the given type, with the given initial capacity (if supported by the Collection type). |
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. |
Methods inherited from class java.beans.PropertyEditorSupport |
---|
addPropertyChangeListener, firePropertyChange, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, supportsCustomEditor |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CustomCollectionEditor(Class collectionType)
null
as-is.
collectionType
- the target type, which needs to be a
sub-interface of Collection or a concrete Collection classCollection
,
ArrayList
,
TreeSet
,
CollectionFactory.createLinkedSetIfPossible(int)
public CustomCollectionEditor(Class collectionType, boolean nullAsEmptyCollection)
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 or HashSet for Set.
collectionType
- the target type, which needs to be a
sub-interface of Collection or a concrete Collection classnullAsEmptyCollection
- whether to convert an incoming null
value to an empty Collection (of the appropriate type)Collection
,
ArrayList
,
TreeSet
,
CollectionFactory.createLinkedSetIfPossible(int)
Method Detail |
---|
public void setAsText(String text) throws IllegalArgumentException
setAsText
in interface PropertyEditor
setAsText
in class PropertyEditorSupport
IllegalArgumentException
public void setValue(Object value)
setValue
in interface PropertyEditor
setValue
in class PropertyEditorSupport
protected Collection createCollection(Class collectionType, int initialCapacity)
collectionType
- a sub-interface of CollectioninitialCapacity
- the initial capacity
protected boolean alwaysCreateNewCollection()
Default is "false"; can be overridden to enforce creation of a new Collection, for example to convert elements in any case.
convertElement(java.lang.Object)
protected Object convertElement(Object element)
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.
element
- the source element
alwaysCreateNewCollection()
public String getAsText()
null
to indicate that
there is no appropriate text representation.
getAsText
in interface PropertyEditor
getAsText
in class PropertyEditorSupport
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |