Package io.temporal.common.converter
Class DefaultDataConverter
- java.lang.Object
-
- io.temporal.common.converter.DefaultDataConverter
-
- All Implemented Interfaces:
DataConverter
public class DefaultDataConverter extends java.lang.Object implements DataConverter
DataConverter that delegates conversion to type specific PayloadConverter instance.
-
-
Field Summary
Fields Modifier and Type Field Description static DataConverter
STANDARD_INSTANCE
Default data converter that is used for all objects if not overridden byWorkflowClientOptions.Builder.setDataConverter(DataConverter)
orGlobalDataConverter.register(DataConverter)
(less preferred).static PayloadConverter[]
STANDARD_PAYLOAD_CONVERTERS
-
Constructor Summary
Constructors Constructor Description DefaultDataConverter(PayloadConverter... converters)
Creates instance from ordered array of converters.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description <T> T
fromPayload(io.temporal.api.common.v1.Payload payload, java.lang.Class<T> valueClass, java.lang.reflect.Type valueType)
<T> T
fromPayloads(int index, java.util.Optional<io.temporal.api.common.v1.Payloads> content, java.lang.Class<T> parameterType, java.lang.reflect.Type genericParameterType)
Implements conversion of an array of values of different types.static DefaultDataConverter
newDefaultInstance()
Creates a new instance ofDefaultDataConverter
populated with the default list of payload converters.static void
setDefaultDataConverter(DataConverter converter)
Deprecated.<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.DefaultDataConverter
withPayloadConverterOverrides(PayloadConverter... overrideConverters)
Modifies thisDefaultDataConverter
by overriding some of itsPayloadConverter
s.
-
-
-
Field Detail
-
STANDARD_PAYLOAD_CONVERTERS
public static final PayloadConverter[] STANDARD_PAYLOAD_CONVERTERS
-
STANDARD_INSTANCE
public static final DataConverter STANDARD_INSTANCE
Default data converter that is used for all objects if not overridden byWorkflowClientOptions.Builder.setDataConverter(DataConverter)
orGlobalDataConverter.register(DataConverter)
(less preferred).This data converter is also always used (regardless of whether or not users have supplied their own converter) to perform serialization of values essential for functionality of Temporal SDK, Server, tctl or WebUI:
- Local Activity, Version, MutableSideEffect Markers metadata like id, time, name
- Search attribute values
- Stacktrace query return value
-
-
Constructor Detail
-
DefaultDataConverter
public DefaultDataConverter(PayloadConverter... converters)
Creates instance from ordered array of converters. When converting an object to payload the array of converters is iterated from the beginning until one of the converters successfully converts the value.
-
-
Method Detail
-
setDefaultDataConverter
public static void setDefaultDataConverter(DataConverter converter)
Deprecated.
-
newDefaultInstance
public static DefaultDataConverter newDefaultInstance()
Creates a new instance ofDefaultDataConverter
populated with the default list of payload converters.
-
withPayloadConverterOverrides
public DefaultDataConverter withPayloadConverterOverrides(PayloadConverter... overrideConverters)
Modifies thisDefaultDataConverter
by overriding some of itsPayloadConverter
s. Every payload converter fromoverrideConverters
either replaces existing payload converter with the same encoding type, or is added to the end of payload converters list.
-
toPayload
public <T> java.util.Optional<io.temporal.api.common.v1.Payload> toPayload(T value) throws DataConverterException
- Specified by:
toPayload
in interfaceDataConverter
- Parameters:
value
- value to convert- Returns:
- a
Payload
which 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. - Throws:
DataConverterException
- if conversion fails
-
fromPayload
public <T> T fromPayload(io.temporal.api.common.v1.Payload payload, java.lang.Class<T> valueClass, java.lang.reflect.Type valueType) throws DataConverterException
- Specified by:
fromPayload
in interfaceDataConverter
- Throws:
DataConverterException
-
toPayloads
public java.util.Optional<io.temporal.api.common.v1.Payloads> toPayloads(java.lang.Object... values) throws DataConverterException
Description copied from interface:DataConverter
Implements conversion of a list of values.- Specified by:
toPayloads
in 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> parameterType, java.lang.reflect.Type genericParameterType) throws DataConverterException
Description copied from interface:DataConverter
Implements conversion of an array of values of different types. Useful for deserializing arguments of function invocations.- Specified by:
fromPayloads
in interfaceDataConverter
- Parameters:
index
- index of the value in the payloadscontent
- serialized value to convert to Java objects.parameterType
- type of the value stored in the contentgenericParameterType
- 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.
-
-