public class BiMapper
extends java.lang.Object
To provide support for your own class, implement BiSerializable in it and register it with registerClass(Class), in a static constructor or explicitly. If you can't or don't like to integrate it into the
class, write custom BiAdapter for it and register it with registerAdapter(Class, BiAdapter).
There is a DefaultBiMapper to reigister all general-purpose classes and adapters. If you don't want to expose
it globally, create custom BiMapper instance and register your private stuff with it, then get newSerializer() and newDeserializer() or construct these directly using your private mapper.
This could be tricky as it can not reconstruct reference trees, unlike, for example, Boss
serializer, so your serialization code must do its best to properly reconstruct links in your object tree.
| Constructor and Description |
|---|
BiMapper()
Create empty mapper, knowing nothing about serialization.
|
BiMapper(BiMapper parent)
Create a mapper with copy of serialization information from a given mapper.
|
| Modifier and Type | Method and Description |
|---|---|
<T> T |
deserialize(java.util.Map map)
deserialize(Map, BiDeserializer) using default BiDeserializer. |
<T> T |
deserialize(java.util.Map map,
BiDeserializer deserializer)
Try to deserialize map containing serialized object, e.g.
|
void |
deserializeInPlace(java.util.Map map,
BiDeserializer deserializer)
Update the map deserialziing it's values - e.g.
|
<T> T |
deserializeObject(java.lang.Object x) |
<T> T |
deserializeObject(java.lang.Object obj,
BiDeserializer deserializer)
Deserialize any object, if possible.
|
BiDeserializer |
newDeserializer()
Construct new deserializer to use this mapper
|
BiSerializer |
newSerializer()
Construct new serializer to use this mapper
|
<T> void |
registerAdapter(java.lang.Class<T> klass,
BiAdapter adapter) |
void |
registerClass(java.lang.Class<? extends BiSerializable> klass)
Add a class to serializable with this mapper.
|
<T> T |
serialize(java.lang.Object x)
Same as
serialize(Object, BiSerializer) with default BiSerializer. |
<T> T |
serialize(java.lang.Object x,
BiSerializer serializer)
|
boolean |
unregister(java.lang.Class klass)
unregister class.
|
public BiMapper()
registerAdapter(Class,
BiAdapter) and/or registerClass(Class) before use.public BiMapper(BiMapper parent)
parent - mapper to copy serialization information frompublic void deserializeInPlace(java.util.Map map,
BiDeserializer deserializer)
map - to updatedeserializer - to use to deserialize map valuespublic <T> T deserialize(java.util.Map map,
BiDeserializer deserializer)
deserializeInPlace(Map, BiDeserializer) and return the same (but
updated) map instance.T - map - possible containing the serialized objectpublic <T> T deserialize(java.util.Map map)
deserialize(Map, BiDeserializer) using default BiDeserializer.T - map - to deserializepublic <T> T deserializeObject(java.lang.Object x)
public <T> T deserializeObject(java.lang.Object obj,
BiDeserializer deserializer)
deserialize(Map, BiDeserializer)T - obj - to deserealizedeserializer - topublic <T> T serialize(java.lang.Object x,
BiSerializer serializer)
Binder using current set of BiAdapter. See registerAdapter(Class, BiAdapter), registerClass(Class) for more. This method properly serializes Maps
and Collections, serializing it contents.T - x - object to serialize (can be array, list, map, binder or any object with registered adapter. processes
in depth, e.g. all values in the map or items in the list.java.lang.IllegalArgumentException - if unkonwn ibject ecnountered which can not be serialized.public <T> T serialize(java.lang.Object x)
serialize(Object, BiSerializer) with default BiSerializer.public <T> void registerAdapter(java.lang.Class<T> klass,
BiAdapter adapter)
public boolean unregister(java.lang.Class klass)
klass - BiSerializable class or with BiAdapter.public void registerClass(java.lang.Class<? extends BiSerializable> klass)
klass - to registerpublic BiSerializer newSerializer()
public BiDeserializer newDeserializer()