public class Serializer
extends java.lang.Object
implements java.io.Serializable
ObjectFile.getSerializer(lavesdk.serialization.Serializable, String)
to get a serializer for an object that should be
stored together with other objects in a file.
addObject(String, Serializable)
/addCollection(String, Collection)
/...) please
ensure that these objects are not changed until the serializer is saved persistent such as with an ObjectFile
.Modifier and Type | Field and Description |
---|---|
protected java.util.HashMap<java.lang.String,java.lang.Object> |
data
the data
|
Modifier | Constructor and Description |
---|---|
protected |
Serializer(int id,
java.lang.String name)
Creates a new serializer.
|
Modifier and Type | Method and Description |
---|---|
<T extends java.io.Serializable> |
addArray(java.lang.String key,
T[] value)
Adds an array for a given data key.
|
boolean |
addBoolean(java.lang.String key,
boolean b)
Adds a boolean value to the serializer.
|
char |
addChar(java.lang.String key,
char c)
Adds a character value to the serializer.
|
<E extends java.io.Serializable> |
addCollection(java.lang.String key,
java.util.Collection<E> c)
Adds a collection to the serializer.
|
protected <T> T |
addData(java.lang.String key,
T d)
Adds a data object to the serializer.
|
double |
addDouble(java.lang.String key,
double d)
Adds a double value to the serializer.
|
float |
addFloat(java.lang.String key,
float f)
Adds a float value to the serializer.
|
int |
addInt(java.lang.String key,
int i)
Adds an integer value to the serializer.
|
<E extends java.io.Serializable> |
addList(java.lang.String key,
java.util.List<E> l)
Adds a list to the serializer.
|
<T extends java.io.Serializable> |
addObject(java.lang.String key,
T o)
Adds an object to the serializer.
|
Serializer |
addSerializer(java.lang.String key,
Serializer s)
Adds a (sub) serializer to this serializer.
|
java.lang.String |
addString(java.lang.String key,
java.lang.String s)
Adds a string value to the serializer.
|
boolean |
areKeysOverrideable()
Indicates whether keys are overrideable.
|
protected void |
checkKey(java.lang.String key)
Checks if the given key is valid that means if
key ! |
protected java.io.ObjectInputStream |
createObjectInputStream(java.io.ByteArrayInputStream bais)
Creates the object input stream that is used to unfreeze the data of the serializer.
|
protected java.io.ObjectOutputStream |
createObjectOutputStream(java.io.ByteArrayOutputStream baos)
Creates the object output stream that is used to freeze the data of the serializer.
|
boolean |
equals(java.lang.Object obj)
Compares the specified object with this serializer and returns
true if the specified object is a Serializer
and serializes the same data (mapping of data key <-> data value) as this serializer. |
boolean |
equals(Serializer s)
Compares the specified serializer with this serializer and returns
true if the specified serializer
serializes the same data (mapping of data key <-> data value) as this serializer. |
protected byte[] |
freezeData()
Freezes the current data of the serializer.
|
protected byte[] |
freezeData(java.lang.StringBuilder errorMsg)
Freezes the current data of the serializer.
|
<T> T[] |
getArray(java.lang.String key)
Gets an array for a given data key.
|
<T> T[] |
getArray(java.lang.String key,
T[] defValue)
Gets an array for a given data key.
|
boolean |
getBoolean(java.lang.String key)
Gets a boolean value for a given data key.
|
boolean |
getBoolean(java.lang.String key,
boolean defValue)
Gets a boolean value for a given data key.
|
char |
getChar(java.lang.String key)
Gets a character value for a given data key.
|
char |
getChar(java.lang.String key,
char defValue)
Gets a character value for a given data key.
|
<E> java.util.Collection<E> |
getCollection(java.lang.String key)
Gets a collection for a given data key.
|
<E> java.util.Collection<E> |
getCollection(java.lang.String key,
java.util.Collection<E> defValue)
Gets a collection for a given data key.
|
protected <T> T |
getData(java.lang.String key,
java.lang.Class<T> c)
Gets the data of a field described by a specific data key in a general way.
|
protected <T> T |
getData(java.lang.String key,
java.lang.Class<T> c,
T defValue)
Gets the data of a field described by a specific data key in a general way.
|
double |
getDouble(java.lang.String key)
Gets a double value for a given data key.
|
double |
getDouble(java.lang.String key,
double defValue)
Gets a double value for a given data key.
|
float |
getFloat(java.lang.String key)
Gets a float value for a given data key.
|
float |
getFloat(java.lang.String key,
float defValue)
Gets a float value for a given data key.
|
int |
getID()
Gets the id of the serializer.
|
int |
getInt(java.lang.String key)
Gets an integer value for a given data key.
|
int |
getInt(java.lang.String key,
int defValue)
Gets an integer value for a given data key.
|
<E> java.util.List<E> |
getList(java.lang.String key)
Gets a list for a given data key.
|
<E> java.util.List<E> |
getList(java.lang.String key,
java.util.List<E> defValue)
Gets a list for a given data key.
|
java.lang.String |
getName()
Gets the name/type of the serializer.
|
<T extends java.io.Serializable> |
getObject(java.lang.String key)
Gets an object.
|
<T extends java.io.Serializable> |
getObject(java.lang.String key,
T defValue)
Gets an object.
|
Serializer |
getSerializer(java.lang.String key)
Gets a (sub) serializer for a given data key.
|
java.lang.String |
getString(java.lang.String key)
Gets a string value for a given data key.
|
java.lang.String |
getString(java.lang.String key,
java.lang.String defValue)
Gets a string value for a given data key.
|
java.lang.String[] |
keys()
Gets an iterator over the data keys of the serializer.
|
protected void |
removeData(java.lang.String key)
Removes the data of a field.
|
protected boolean |
unfreezeData(byte[] data)
Unfreezes the data of the serializer that means the data is restored from the time of freezing.
|
protected boolean |
unfreezeData(byte[] data,
java.lang.StringBuilder errorMsg)
Unfreezes the data of the serializer that means the data is restored from the time of freezing.
|
protected final java.util.HashMap<java.lang.String,java.lang.Object> data
protected Serializer(int id, java.lang.String name) throws java.lang.IllegalArgumentException
id
- the id of the serializername
- the name/type of the serializerjava.lang.IllegalArgumentException
- < 1
public final int getID()
public final java.lang.String getName()
ObjectFile.getSerializerCount(String)
public final <T extends java.io.Serializable> T addObject(java.lang.String key, T o) throws java.lang.IllegalArgumentException
key
- the data keyo
- the objectjava.lang.IllegalArgumentException
- public final <T extends java.io.Serializable> T getObject(java.lang.String key)
key
- the data keynull
if the serializer does not contain an object with the given keypublic final <T extends java.io.Serializable> T getObject(java.lang.String key, T defValue)
key
- the data keydefValue
- the default return valuepublic final int addInt(java.lang.String key, int i) throws java.lang.IllegalArgumentException
key
- the data keyi
- the valuejava.lang.IllegalArgumentException
- public final int getInt(java.lang.String key)
key
- the data key0
if the serializer does not contain an integer with the given keypublic final int getInt(java.lang.String key, int defValue)
key
- the data keydefValue
- the default return valuepublic final java.lang.String addString(java.lang.String key, java.lang.String s) throws java.lang.IllegalArgumentException
key
- the data keys
- the valuejava.lang.IllegalArgumentException
- public final java.lang.String getString(java.lang.String key)
key
- the data keypublic final java.lang.String getString(java.lang.String key, java.lang.String defValue)
key
- the data keydefValue
- the default return valuepublic final float addFloat(java.lang.String key, float f) throws java.lang.IllegalArgumentException
key
- the data keyf
- the valuejava.lang.IllegalArgumentException
- public final float getFloat(java.lang.String key)
key
- the data key0.0f
if the serializer does not contain a float with the given keypublic final float getFloat(java.lang.String key, float defValue)
key
- the data keydefValue
- the default return valuepublic final double addDouble(java.lang.String key, double d) throws java.lang.IllegalArgumentException
key
- the data keyd
- the valuejava.lang.IllegalArgumentException
- public final double getDouble(java.lang.String key)
key
- the data key0.0
if the serializer does not contain a double with the given keypublic final double getDouble(java.lang.String key, double defValue)
key
- the data keydefValue
- the default return valuepublic final boolean addBoolean(java.lang.String key, boolean b) throws java.lang.IllegalArgumentException
key
- the data keyb
- the valuejava.lang.IllegalArgumentException
- public final boolean getBoolean(java.lang.String key)
key
- the data keyfalse
if the serializer does not contain a boolean with the given keypublic final boolean getBoolean(java.lang.String key, boolean defValue)
key
- the data keydefValue
- the default return valuepublic final char addChar(java.lang.String key, char c) throws java.lang.IllegalArgumentException
key
- the data keyc
- the valuejava.lang.IllegalArgumentException
- public final char getChar(java.lang.String key)
key
- the data key' '
if the serializer does not contain a character with the given keypublic final char getChar(java.lang.String key, char defValue)
key
- the data keydefValue
- the default return valuepublic final Serializer addSerializer(java.lang.String key, Serializer s) throws java.lang.IllegalArgumentException
key
- the data keys
- the serializerjava.lang.IllegalArgumentException
- public final Serializer getSerializer(java.lang.String key)
key
- the data keynull
if there is no serializer for the given keypublic final <E extends java.io.Serializable> java.util.Collection<E> addCollection(java.lang.String key, java.util.Collection<E> c) throws java.lang.IllegalArgumentException
key
- the data keyc
- the collectionjava.lang.IllegalArgumentException
- public final <E> java.util.Collection<E> getCollection(java.lang.String key)
key
- the data keynull
if the serializer does not contain a collection with the given key and typepublic final <E> java.util.Collection<E> getCollection(java.lang.String key, java.util.Collection<E> defValue)
key
- the data keydefValue
- the default return valuepublic final <E extends java.io.Serializable> java.util.List<E> addList(java.lang.String key, java.util.List<E> l) throws java.lang.IllegalArgumentException
key
- the data keyl
- the listjava.lang.IllegalArgumentException
- public final <E> java.util.List<E> getList(java.lang.String key)
key
- the data keynull
if the serializer does not contain a list with the given key and typepublic final <E> java.util.List<E> getList(java.lang.String key, java.util.List<E> defValue)
key
- the data keydefValue
- the default return valuepublic final <T extends java.io.Serializable> T[] addArray(java.lang.String key, T[] value) throws java.lang.IllegalArgumentException
key
- the data keyvalue
- the arrayjava.lang.IllegalArgumentException
- public final <T> T[] getArray(java.lang.String key)
key
- the data keynull
if the serializer does not contain an array with the given key and typepublic final <T> T[] getArray(java.lang.String key, T[] defValue)
key
- the data keydefValue
- the default return valuepublic boolean equals(java.lang.Object obj)
true
if the specified object is a Serializer
and serializes the same data (mapping of data key <-> data value) as this serializer.equals
in class java.lang.Object
obj
- the object that should be compared with this serializertrue
if both are equal otherwise false
public boolean equals(Serializer s)
true
if the specified serializer
serializes the same data (mapping of data key <-> data value) as this serializer.s
- the serializer that should be compared with this onetrue
if both are equal otherwise false
public boolean areKeysOverrideable()
true
if keys are overrideable otherwise false
public final java.lang.String[] keys()
protected void checkKey(java.lang.String key) throws java.lang.IllegalArgumentException
key != null
and the key does not exist
in the data table of the serializer.key
- the keyjava.lang.IllegalArgumentException
- protected final <T> T addData(java.lang.String key, T d)
key
- the data keyd
- the data object (ensure that this data object is Serializable
)java.lang.IllegalArgumentException
- protected final <T> T getData(java.lang.String key, java.lang.Class<T> c)
key
- the data keyc
- the data classnull
if the serializer does not contain a data object with the given keyprotected final <T> T getData(java.lang.String key, java.lang.Class<T> c, T defValue)
key
- the data keyc
- the data classdefValue
- the default return valueprotected final void removeData(java.lang.String key)
key
- the data key of the fieldprotected byte[] freezeData()
unfreezeData(byte[])
and to restore the data of the serializer from
the tie of freezing.unfreezeData(byte[])
protected byte[] freezeData(java.lang.StringBuilder errorMsg)
unfreezeData(byte[])
and to restore the data of the serializer from
the tie of freezing.errorMsg
- a string that contains a possible error message after the method failed or null
unfreezeData(byte[])
protected java.io.ObjectOutputStream createObjectOutputStream(java.io.ByteArrayOutputStream baos) throws java.io.IOException
ObjectOutputStream
.baos
- the byte array stream of the unfrozen datajava.io.IOException
- protected boolean unfreezeData(byte[] data) throws java.lang.IllegalArgumentException
data
- the byte array that contains the data that should be restoredjava.lang.IllegalArgumentException
- freezeData()
protected boolean unfreezeData(byte[] data, java.lang.StringBuilder errorMsg) throws java.lang.IllegalArgumentException
data
- the byte array that contains the data that should be restorederrorMsg
- a string that contains a possible error message after the method failed or null
java.lang.IllegalArgumentException
- freezeData()
protected java.io.ObjectInputStream createObjectInputStream(java.io.ByteArrayInputStream bais) throws java.io.IOException
ObjectInputStream
.bais
- the byte array stream of the freezed datajava.io.IOException
-