public class TypedArrayMapper extends java.lang.Object implements IMarshaller, IUnmarshaller, IAliasable
Custom marshaller/unmarshaller for reference arrays of a particular type.
This handles mapping arrays typed as object-type[]
, where the
object-type is any class name (not a primitive type). All items in the
array must be of a mapped type. If a name is specified by the mapping
definition that name is used as a wrapper around the elements representing
the items in the array; otherwise, the elements are just handled inline.
Modifier and Type | Field and Description |
---|---|
private static java.lang.Object[] |
DUMMY_ARRAY |
private java.lang.Object[] |
m_baseArray |
private java.util.ArrayList |
m_holder |
private int |
m_index |
private java.lang.String |
m_name |
private java.lang.String |
m_uri |
Constructor and Description |
---|
TypedArrayMapper(java.lang.String type)
Class only constructor.
|
TypedArrayMapper(java.lang.String uri,
int index,
java.lang.String name,
java.lang.String type)
Aliased constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isExtension(java.lang.String mapname)
Check if marshaller represents an extension mapping.
|
boolean |
isPresent(IUnmarshallingContext ctx)
Check if instance present in XML.
|
void |
marshal(java.lang.Object obj,
IMarshallingContext ictx)
Marshal instance of handled class.
|
java.lang.Object |
unmarshal(java.lang.Object obj,
IUnmarshallingContext ictx)
Unmarshal instance of handled class.
|
private static final java.lang.Object[] DUMMY_ARRAY
private java.lang.String m_uri
private int m_index
private java.lang.String m_name
private java.lang.Object[] m_baseArray
private java.util.ArrayList m_holder
public TypedArrayMapper(java.lang.String uri, int index, java.lang.String name, java.lang.String type)
uri
- namespace URI for the top-level elementindex
- namespace index corresponding to the defined URI within the
marshalling context definitionsname
- local name for the top-level elementtype
- class name for type of items in arraypublic TypedArrayMapper(java.lang.String type)
type
- class name for type of items in arraypublic boolean isExtension(java.lang.String mapname)
IMarshaller
isExtension
in interface IMarshaller
mapname
- marshaller mapping name (generally the class name to be
handled, or abstract mapping type name)true
if this mapping is an extension of the abstract
mapping, false
if notpublic void marshal(java.lang.Object obj, IMarshallingContext ictx) throws JiBXException
IMarshaller
marshal
in interface IMarshaller
obj
- object to be marshalled (may be null
if property
is not optional)ictx
- XML text output contextJiBXException
- on error in marshalling processpublic boolean isPresent(IUnmarshallingContext ctx) throws JiBXException
IUnmarshaller
isPresent
in interface IUnmarshaller
ctx
- unmarshalling contexttrue
if expected parse data found,
false
if notJiBXException
- on error in unmarshalling processpublic java.lang.Object unmarshal(java.lang.Object obj, IUnmarshallingContext ictx) throws JiBXException
IUnmarshaller
unmarshal
in interface IUnmarshaller
obj
- object to be unmarshalled (may be null
)ictx
- unmarshalling contextnull
)JiBXException
- on error in unmarshalling process