Class SetSerialiser
- java.lang.Object
-
- uk.gov.gchq.gaffer.serialisation.implementation.SetSerialiser
-
- All Implemented Interfaces:
Serializable
,Serialiser<Set<? extends Object>,byte[]>
,ToBytesSerialiser<Set<? extends Object>>
public class SetSerialiser extends Object implements ToBytesSerialiser<Set<? extends Object>>
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface uk.gov.gchq.gaffer.serialisation.ToBytesSerialiser
EMPTY_BYTES
-
-
Constructor Summary
Constructors Constructor Description SetSerialiser()
SetSerialiser(ToBytesSerialiser objectSerialiser)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canHandle(Class clazz)
Check whether the serialiser can serialise a particular class.Set<? extends Object>
deserialise(byte[] bytes)
Deserialise an array of bytes into the original object.Set<? extends Object>
deserialiseEmpty()
Handle an empty byte array and reconstruct an appropriate representation in T form.boolean
equals(Object obj)
ToBytesSerialiser
getObjectSerialiser()
String
getObjectSerialiserClassString()
Class<? extends Set>
getSetClass()
String
getSetClassString()
int
hashCode()
boolean
isConsistent()
Indicates whether the serialisation process produces a predictable, consistent OUTPUT, from a given INPUT, ie the same object should always serialise in the same way for this to be true.boolean
preservesObjectOrdering()
Indicates whether the serialisation process preserves the ordering of the T, i.e.byte[]
serialise(Set<? extends Object> object)
Serialise some object and returns the raw bytes of the serialised form.byte[]
serialiseNull()
Handle an incoming null value and generate an appropriate byte array representation.void
setObjectSerialiser(ToBytesSerialiser objectSerialiser)
void
setObjectSerialiserClassString(String classType)
void
setSetClass(Class<? extends Set> setClass)
void
setSetClassString(String classType)
-
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface uk.gov.gchq.gaffer.serialisation.ToBytesSerialiser
deserialise
-
-
-
-
Constructor Detail
-
SetSerialiser
public SetSerialiser()
-
SetSerialiser
public SetSerialiser(ToBytesSerialiser objectSerialiser)
-
-
Method Detail
-
canHandle
public boolean canHandle(Class clazz)
Description copied from interface:Serialiser
Check whether the serialiser can serialise a particular class.//Warning: Due to erasure you may get false positives. e.g.
Set<Foo> set = Sets.newHashSet(); boolean b = new Serialiser<Set<Bar>, byte[]>().canHandle(set.getClass()); b will incorrectly be true because of type erasure between Set<Foo> Set<Bar>
- Specified by:
canHandle
in interfaceSerialiser<Set<? extends Object>,byte[]>
- Parameters:
clazz
- the object class to serialise- Returns:
- boolean true if it can be handled
-
serialise
public byte[] serialise(Set<? extends Object> object) throws SerialisationException
Description copied from interface:ToBytesSerialiser
Serialise some object and returns the raw bytes of the serialised form.- Specified by:
serialise
in interfaceSerialiser<Set<? extends Object>,byte[]>
- Specified by:
serialise
in interfaceToBytesSerialiser<Set<? extends Object>>
- Parameters:
object
- the object to be serialised- Returns:
- byte[] the serialised bytes
- Throws:
SerialisationException
- if the object fails to serialise
-
deserialise
public Set<? extends Object> deserialise(byte[] bytes) throws SerialisationException
Description copied from interface:ToBytesSerialiser
Deserialise an array of bytes into the original object.- Specified by:
deserialise
in interfaceSerialiser<Set<? extends Object>,byte[]>
- Specified by:
deserialise
in interfaceToBytesSerialiser<Set<? extends Object>>
- Parameters:
bytes
- the bytes to deserialise- Returns:
- T the deserialised object
- Throws:
SerialisationException
- if the object fails to deserialiseNote that this implementation is less efficient than using deserialise with an offset and a length, but may still be used if necessary. It has been marked deprecated but will not be removed as it is needed in the Serialiser interface.
- See Also:
ToBytesSerialiser.deserialise(byte[], int, int)
-
deserialiseEmpty
public Set<? extends Object> deserialiseEmpty() throws SerialisationException
Description copied from interface:ToBytesSerialiser
Handle an empty byte array and reconstruct an appropriate representation in T form.- Specified by:
deserialiseEmpty
in interfaceSerialiser<Set<? extends Object>,byte[]>
- Specified by:
deserialiseEmpty
in interfaceToBytesSerialiser<Set<? extends Object>>
- Returns:
- T the deserialised object
- Throws:
SerialisationException
- if the object fails to deserialise
-
preservesObjectOrdering
public boolean preservesObjectOrdering()
Description copied from interface:ToBytesSerialiser
Indicates whether the serialisation process preserves the ordering of the T, i.e. if x and y are objects of class T, and x is less than y, then this method should return true if the serialised form of x is guaranteed to be less than the serialised form of y (using the standard ordering of byte arrays). If T is not Comparable then this test makes no sense and false should be returned.- Specified by:
preservesObjectOrdering
in interfaceSerialiser<Set<? extends Object>,byte[]>
- Specified by:
preservesObjectOrdering
in interfaceToBytesSerialiser<Set<? extends Object>>
- Returns:
- true if the serialisation will preserve the order of the T, otherwise false.
-
isConsistent
public boolean isConsistent()
Description copied from interface:Serialiser
Indicates whether the serialisation process produces a predictable, consistent OUTPUT, from a given INPUT, ie the same object should always serialise in the same way for this to be true.- Specified by:
isConsistent
in interfaceSerialiser<Set<? extends Object>,byte[]>
- Returns:
- true if serialisation is consistent for a given object, otherwise false.
-
serialiseNull
public byte[] serialiseNull()
Description copied from interface:ToBytesSerialiser
Handle an incoming null value and generate an appropriate byte array representation.- Specified by:
serialiseNull
in interfaceSerialiser<Set<? extends Object>,byte[]>
- Specified by:
serialiseNull
in interfaceToBytesSerialiser<Set<? extends Object>>
- Returns:
- byte[] the serialised bytes
-
getObjectSerialiser
public ToBytesSerialiser getObjectSerialiser()
-
setObjectSerialiser
public void setObjectSerialiser(ToBytesSerialiser objectSerialiser)
-
getObjectSerialiserClassString
public String getObjectSerialiserClassString()
-
setObjectSerialiserClassString
public void setObjectSerialiserClassString(String classType) throws ClassNotFoundException, IllegalAccessException, InstantiationException
-
getSetClassString
public String getSetClassString()
-
setSetClassString
public void setSetClassString(String classType) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
-