Annotation Interface SerializableField4XmlList
SerializableField
or set as visible by SerializableType.FieldVisibility
.- Since:
- 7.3
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionboolean
Specifies the list items to be marshalled as property bag or not.Specifies the list item element name within aList
data type field when the field is marshalled as the property bag.boolean
Specifies whether to unwrap the list or array items of this field as the direct members of the serializable type.
-
Element Details
-
unwrap
boolean unwrapSpecifies whether to unwrap the list or array items of this field as the direct members of the serializable type. When unwrapped, the collection container will be removed and the list items of this field will be promoted upper level to be the direct members of this class.Constraints:
(a) this setting is applied to field of data typeList
and array only
(b) the data type in the list item must be simple types or complex types annotated withSerializableType
.
(c) the element name for the unwrapped list item is determined byasPropBag()
anditemName()
.
(d) the unmarshalling of the unwrapped list or array will be incorrect if the same class has more than one field to unwrap the lists with the same base data type.For example, below code marshals the list items as unwrapped.
{@literal @}SerializableField4XmlList(unwrap=true, itemName="fruit") List<Fruit> fruits = Arrays.asList(new Apple("red"), new Orange("yellow"));
<fruit> <color>red</color> </fruit> <fruit> <color>yellow</color> </fruit>
For example, below code marshals the list items as property bag.
{@literal @}SerializableField4XmlList(unwrap=false, itemName="fruit") List<Fruit> fruits = Arrays.asList(new Apple("red"), new Orange("yellow"));
<fruits> <fruit> <color>red</color> </fruit> <fruit> <color>yellow</color> </fruit> </fruits>
- Returns:
true
if the field is to be unwrapped; false for otherwise
- Default:
- false
-
asPropBag
boolean asPropBagSpecifies the list items to be marshalled as property bag or not.
For example, below code marshals the list items as property bag.{@literal @}SerializableField4XmlList(asPropBag=true, itemName="fruit") List<Fruit> fruits = Arrays.asList(new Apple("red"), new Orange("yellow"));
will be marshalled as XML representation:<fruits> <fruit> <color>red</color> </fruit> <fruit> <color>yellow</color> </fruit> </fruits>
For example, below code does not marshal the list items as property bag.
{@literal @}SerializableField4XmlList(asPropBag=false) List<Fruit> fruits = Arrays.asList(new Apple("red"), new Orange("yellow"));
will be marshalled as XML representation:<fruits> <apple> <color>red</color> </apple> <orange> <color>yellow</color> </orange> </fruits>
The simple data type list field is always marshalled as the property bag, so this attribute is only applied to the data type of the list items that are complex type annotated by
SerializableType
.- Returns:
true
if the list is wrapped as property bag; false for otherwise
- Default:
- false
-
itemName
String itemNameSpecifies the list item element name within aList
data type field when the field is marshalled as the property bag. The default is 'item'. For example, below code{@literal @}SerializableField4XmlList(itemName="profile") List<String> profiles = Arrays.asList("dev", "product");
will be marshalled as XML representation:<profiles> <profile>dev</profile> <profile>product</profile> </profiles>
This attribute is not effective when
asPropBag()
=false
.- Returns:
- the defined property bag name in the wrapped list
- Default:
- "item"
-