Package io.temporal.common.converter
Class CodecDataConverter
- java.lang.Object
-
- io.temporal.common.converter.CodecDataConverter
-
- All Implemented Interfaces:
DataConverter,PayloadCodec
public class CodecDataConverter extends java.lang.Object implements DataConverter, PayloadCodec
A delegatingDataConverterimplementation that wraps and chains both anotherDataConverterand severalPayloadCodecs.The underlying
DataConverteris expected to be responsible for conversion between user objects and bytes represented asPayloads, while the underlying chain of codecs is responsible for a subsequent byte <-> byte manipulation such as encryption or compression
-
-
Constructor Summary
Constructors Constructor Description CodecDataConverter(DataConverter dataConverter, java.util.Collection<PayloadCodec> codecs)When serializing to Payloads:dataConverteris applied first, following by the chain ofcodecs.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<io.temporal.api.common.v1.Payload>decode(java.util.List<io.temporal.api.common.v1.Payload> payloads)java.util.List<io.temporal.api.common.v1.Payload>encode(java.util.List<io.temporal.api.common.v1.Payload> payloads)<T> TfromPayload(io.temporal.api.common.v1.Payload payload, java.lang.Class<T> valueClass, java.lang.reflect.Type valueType)<T> TfromPayloads(int index, java.util.Optional<io.temporal.api.common.v1.Payloads> content, java.lang.Class<T> valueType, java.lang.reflect.Type valueGenericType)Implements conversion of an array of values of different types.<T> java.util.Optional<io.temporal.api.common.v1.Payload>toPayload(T value)java.util.Optional<io.temporal.api.common.v1.Payloads>toPayloads(java.lang.Object... values)Implements conversion of a list of values.
-
-
-
Constructor Detail
-
CodecDataConverter
public CodecDataConverter(DataConverter dataConverter, java.util.Collection<PayloadCodec> codecs)
When serializing to Payloads:dataConverteris applied first, following by the chain ofcodecs.codecsare applied last to first meaning the earlier encoders wrap the later ones
codecsare applied first to last to reverse the effect following by thedataConverterdataConverteris applied last
- Parameters:
dataConverter- to delegate data conversion tocodecs- to delegate bytes encoding/decoding to. When encoding, the codecs are applied last to first meaning the earlier encoders wrap the later ones. When decoding, the decoders are applied first to last to reverse the effect
-
-
Method Detail
-
toPayload
public <T> java.util.Optional<io.temporal.api.common.v1.Payload> toPayload(T value)
- Specified by:
toPayloadin interfaceDataConverter- Parameters:
value- value to convert- Returns:
- a
Payloadwhich is a protobuf message containing byte-array serialized representation ofvalue. Optional here is for legacy and backward compatibility reasons. This Optional is expected to always be filled.
-
fromPayload
public <T> T fromPayload(io.temporal.api.common.v1.Payload payload, java.lang.Class<T> valueClass, java.lang.reflect.Type valueType)- Specified by:
fromPayloadin interfaceDataConverter
-
toPayloads
public java.util.Optional<io.temporal.api.common.v1.Payloads> toPayloads(java.lang.Object... values) throws DataConverterExceptionDescription copied from interface:DataConverterImplements conversion of a list of values.- Specified by:
toPayloadsin interfaceDataConverter- Parameters:
values- Java values to convert to String.- Returns:
- converted value. Return empty Optional if values are empty.
- Throws:
DataConverterException- if conversion of the value passed as parameter failed for any reason.
-
fromPayloads
public <T> T fromPayloads(int index, java.util.Optional<io.temporal.api.common.v1.Payloads> content, java.lang.Class<T> valueType, java.lang.reflect.Type valueGenericType) throws DataConverterExceptionDescription copied from interface:DataConverterImplements conversion of an array of values of different types. Useful for deserializing arguments of function invocations.- Specified by:
fromPayloadsin interfaceDataConverter- Parameters:
index- index of the value in the payloadscontent- serialized value to convert to Java objects.valueType- type of the value stored in the contentvalueGenericType- generic type of the value stored in the content- Returns:
- converted Java object
- Throws:
DataConverterException- if conversion of the data passed as parameter failed for any reason.
-
encode
@Nonnull public java.util.List<io.temporal.api.common.v1.Payload> encode(@Nonnull java.util.List<io.temporal.api.common.v1.Payload> payloads)- Specified by:
encodein interfacePayloadCodec
-
decode
@Nonnull public java.util.List<io.temporal.api.common.v1.Payload> decode(@Nonnull java.util.List<io.temporal.api.common.v1.Payload> payloads)- Specified by:
decodein interfacePayloadCodec
-
-