public class DurableEncodings extends Object
IDurableEncodings.| Modifier and Type | Class and Description |
|---|---|
static interface |
DurableEncodings.Codec
A convenience interface capturing the codec behavior for a primitive encoding.
|
| Modifier and Type | Field and Description |
|---|---|
static IDurableEncoding.Primitive |
VOID
An encoding which encodes nothing and yields
null. |
| Constructor and Description |
|---|
DurableEncodings() |
| Modifier and Type | Method and Description |
|---|---|
static int |
blockSize(IDurableEncoding encoding) |
static IDurableEncoding.List |
list(IDurableEncoding elementEncoding) |
static IDurableEncoding.Map |
map(IDurableEncoding keyEncoding,
IDurableEncoding valueEncoding) |
static IDurableEncoding.Primitive |
primitive(String description,
int blockSize,
DurableEncodings.Codec codec) |
static IDurableEncoding.Primitive |
primitive(String description,
int blockSize,
ToLongFunction<Object> valueHash,
BiPredicate<Object,Object> valueEquality,
Comparator<Object> comparator,
Predicate<Object> isSingleton,
DurableEncodings.Codec codec) |
static IDurableEncoding.Set |
set(IDurableEncoding elementEncoding) |
static IDurableEncoding.Primitive |
tuple(Function<Object,Object[]> preEncode,
Function<Object[],Object> postDecode,
IDurableEncoding... encodings)
Creates a tuple encoding, which allows us to decompose a compound object into individual values we know how to encode.
|
static IDurableEncoding.Primitive |
tuple(Function<Object,Object[]> preEncode,
Function<Object[],Object> postDecode,
int blockSize,
IDurableEncoding... encodings)
Same as
tuple(Function, Function, IDurableEncoding...), except that blockSize can
be explicitly specified. |
static IDurableEncoding |
unityped(IDurableEncoding.Primitive primitiveEncoding)
A unityped encoding, where all possible primitive values can be handled by
primitiveEncoding. |
public static final IDurableEncoding.Primitive VOID
null.public static int blockSize(IDurableEncoding encoding)
encoding, which is 1 for all non-primitivespublic static IDurableEncoding.List list(IDurableEncoding elementEncoding)
List[elementEncoding]public static IDurableEncoding.Set set(IDurableEncoding elementEncoding)
Set[elementEncoding]public static IDurableEncoding.Map map(IDurableEncoding keyEncoding, IDurableEncoding valueEncoding)
Map[keyEncoding, valueEncoding]public static IDurableEncoding.Primitive primitive(String description, int blockSize, DurableEncodings.Codec codec)
public static IDurableEncoding.Primitive primitive(String description, int blockSize, ToLongFunction<Object> valueHash, BiPredicate<Object,Object> valueEquality, Comparator<Object> comparator, Predicate<Object> isSingleton, DurableEncodings.Codec codec)
public static IDurableEncoding.Primitive tuple(Function<Object,Object[]> preEncode, Function<Object[],Object> postDecode, IDurableEncoding... encodings)
preEncode, which yields an array of individual values, which by convention
have the same order as encodings.
To reconstruct the value, we use postDecode, which takes an array of individual values an yields a compound value.
The block size of this encoding is equal to the smallest block size of its sub-encodings.public static IDurableEncoding.Primitive tuple(Function<Object,Object[]> preEncode, Function<Object[],Object> postDecode, int blockSize, IDurableEncoding... encodings)
tuple(Function, Function, IDurableEncoding...), except that blockSize can
be explicitly specified.public static IDurableEncoding unityped(IDurableEncoding.Primitive primitiveEncoding)
primitiveEncoding.