Class DispatchCodec<K,V>
java.lang.Object
com.github.darksoulq.abyssallib.common.serialization.codecs.DispatchCodec<K,V>
- Type Parameters:
K- Discriminator key type.V- Polymorphic value type.
- All Implemented Interfaces:
Codec<V>
-
Nested Class Summary
Nested classes/interfaces inherited from interface Codec
Codec.Decoder<T>, Codec.Encoder<T>, Codec.Pair<A,B>, Codec.Tuple3<A, B, C>, Codec.Tuple4<A, B, C, D> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<R> Raccept(CodecVisitor<R> visitor) Routes this instance into the visitor API to construct contextual schema layouts.<D> DataResult<V> decode(DynamicOps<D> ops, D input) Decodes a serialized input of a specific data format into a Java object.describe()Outputs a structural description of the expected format for this codec.<D> DataResult<D> encode(DynamicOps<D> ops, V value) Encodes a Java object into its serialized representation.Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Codec
collection, comapFlatMap, decodeAsync, describe, encodeAsync, fieldOf, flatComapMap, flatXmap, immutableList, immutableSet, list, maxLength, minLength, nullable, oneOf, optional, optionalFieldOf, optionalFieldOf, orElse, positive, range, regex, restrict, schema, set, structuralEquals, transform, unchecked, validate, validate, versioned, withSchema, xmap
-
Constructor Details
-
DispatchCodec
public DispatchCodec(String typeKey, Codec<K> keyCodec, Function<? super V, ? extends K> typeGetter, Function<? super K, ? extends Codec<? extends V>> codecGetter) Creates a dispatch codec.- Parameters:
typeKey- Name of the discriminator field.keyCodec- Codec used for discriminator values.typeGetter- Extracts the discriminator from a value.codecGetter- Resolves a codec from a discriminator value.
-
-
Method Details
-
decode
Description copied from interface:CodecDecodes a serialized input of a specific data format into a Java object. -
encode
Description copied from interface:CodecEncodes a Java object into its serialized representation. -
describe
-
accept
Description copied from interface:CodecRoutes this instance into the visitor API to construct contextual schema layouts.
-