org.simpleframework.xml
Annotation Type ElementMapUnion
@Retention(value=RUNTIME)
public @interface ElementMapUnion
The ElementMapUnion
annotation is used to describe a
field or method that can dynamically match a schema class. Each union
can have a number of different XML class schemas matched based on
an XML element name or the instance type. Here a map of element
map annotations can be declared. Each annotation expresses the types
the map can accept. Taking the declaration below, if the annotation
is inline, the map can take a number of varying types all determined
from the XML element name.
@ElementMapUnion({
@ElementMap(entry="x", inline=true, valueType=X.class),
@ElementMap(entry="y", inline=true, valueType=Y.class),
@ElementMap(entry="z", inline=true, valueType=Z.class)
})
private Map<String, Code> codes;
For the above definition the map field can take any of the declared
types. On deserialization the name of the element will determine the
type that is instantiated and inserted in to the map. When the map
is serialized the list entry instance type will determine the name
of the element the instance will serialized as. This provides a
useful means of consume more complicated sources.
- Author:
- Niall Gallagher
- See Also:
ElementMap
Required Element Summary |
ElementMap[] |
value
This provides the ElementMap annotations that have
been defined for this union. |
value
public abstract ElementMap[] value
- This provides the
ElementMap
annotations that have
been defined for this union. Each element map describes the
XML class schema to use and the name of the XML element. This
allows the serialization process to determine which elements
map to the defined types. Also, the types define how the XML
is generated for a given instance.
- Returns:
- the element maps defined for the union declaration