|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jibx.extras.HashMapperStringToComplex
public class HashMapperStringToComplex
Custom marshaller/unmarshaller for java.util.Map
instances. This handles mapping hash maps with simple keys and complex values
to and from XML. There are a number of limitations, though. First off, the
key objects are marshalled as simple text values, using the
toString()
method to convert them to String
. When
unmarshalling the keys are always treated as String
values. The
corresponding values can be any complex type with a <mapping> defined in
the binding. The name of the top-level element in the XML structure can be
configured in the binding definition, but the rest of the names are
predefined and set in the code (though the namespace configured for the
top-level element will be used with all the names).
The net effect is that the XML structure will always be of the form:
<map-name size="3"> <entry key="38193"> <customer state="WA" zip="98059"> <name first-name="John" last-name="Smith"/> <street>12345 Happy Lane</street> <city>Plunk</city> </customer> </entry> <entry key="39122"> <customer state="WA" zip="98094"> <name first-name="Sally" last-name="Port"/> <street>932 Easy Street</street> <city>Fort Lewis</city> </customer> </entry> <entry key="83132"> <customer state="WA" zip="98059"> <name first-name="Mary" last-name="Smith"/> <street>12345 Happy Lane</street> <city>Plunk</city> </customer> </entry> </map-name>
where "map-name" is the configured top-level element name, the "size" attribute is the number of pairs in the hash map, and the "entry" elements are the actual entries in the hash map.
This is obviously not intended to handle all types of hash maps, but it should be useful as written for many applications and easily customized to handle other requirements.
Constructor Summary | |
---|---|
HashMapperStringToComplex()
Default constructor. |
|
HashMapperStringToComplex(java.lang.String uri,
int index,
java.lang.String name)
Aliased constructor. |
Method Summary | |
---|---|
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. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public HashMapperStringToComplex()
public HashMapperStringToComplex(java.lang.String uri, int index, java.lang.String name)
uri
- namespace URI for the top-level element (also used for all
other names within the binding)index
- namespace index corresponding to the defined URI within the
marshalling context definitionsname
- local name for the top-level elementMethod Detail |
---|
public 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 context
JiBXException
- on error in marshalling processpublic boolean isPresent(IUnmarshallingContext ctx) throws JiBXException
IUnmarshaller
isPresent
in interface IUnmarshaller
ctx
- unmarshalling context
true
if expected parse data found,
false
if not
JiBXException
- 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 context
null
)
JiBXException
- on error in unmarshalling process
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |