Class ToonMapper
java.lang.Object
io.micronaut.serde.toon.ToonMapper
- All Implemented Interfaces:
io.micronaut.json.JsonMapper, ObjectMapper
@Singleton
@Secondary
@Named("toon")
public final class ToonMapper
extends Object
implements ObjectMapper
A TOON (Token-Oriented Object Notation)-backed
ObjectMapper.
Reads a TOON document into a JsonNode tree and deserializes
from that tree. Serializes to a JsonNode tree and writes it as a
TOON document.
- Since:
- 3.3.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface ObjectMapper
ObjectMapper.CloseableObjectMapper -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe qualifier name of the TOONObjectMapperbean. -
Constructor Summary
ConstructorsConstructorDescriptionToonMapper(SerdeRegistry registry, @Nullable SerdeConfiguration serdeConfiguration, ToonDecoder toonDecoder, ToonEncoder toonEncoder, @Nullable Class<?> view) Creates a TOON-backedObjectMapper. -
Method Summary
Modifier and TypeMethodDescriptioncloneWithConfiguration(@Nullable SerdeConfiguration configuration, @Nullable SerializationConfiguration serializationConfiguration, @Nullable DeserializationConfiguration deserializationConfiguration) Optional feature.cloneWithConfiguration(@Nullable SerdeConfiguration configuration, @Nullable SerializationConfiguration serializationConfiguration, @Nullable DeserializationConfiguration deserializationConfiguration, @Nullable SerdeIntrospections introspections) Optional feature.io.micronaut.json.JsonMappercloneWithViewClass(Class<?> viewClass) Returns theSerdeRegistryused by this object mapper, if possible.io.micronaut.json.JsonStreamConfigReturns the stream configuration used by this mapper.<T> @Nullable TreadValue(byte[] byteArray, io.micronaut.core.type.Argument<T> type) Parse and map TOON data from the given byte array.<T> @Nullable TreadValue(InputStream inputStream, io.micronaut.core.type.Argument<T> type) Parse and map TOON data from the given stream.<T> @Nullable TreadValueFromTree(io.micronaut.json.tree.JsonNode tree, io.micronaut.core.type.Argument<T> type) Transform aJsonNodeto a value of the given type.<T> TupdateValue(T valueToUpdate, io.micronaut.core.type.Argument<T> type, byte[] byteArray) Update an existing mutable value from JSON read from the supplied byte array.<T> TupdateValue(T valueToUpdate, io.micronaut.core.type.Argument<T> type, InputStream inputStream) Update an existing mutable value from JSON read from the supplied input stream.voidupdateValueFromTree(Object value, io.micronaut.json.tree.JsonNode tree) <T> voidwriteValue(OutputStream outputStream, io.micronaut.core.type.Argument<T> type, @Nullable T object) Write an object as a TOON document.voidwriteValue(OutputStream outputStream, @Nullable Object object) Write an object as a TOON document.<T> byte[]writeValueAsBytes(io.micronaut.core.type.Argument<T> type, @Nullable T object) Write an object as a TOON document.byte[]writeValueAsBytes(@Nullable Object object) Write an object as a TOON document.<T> io.micronaut.json.tree.JsonNodewriteValueToTree(io.micronaut.core.type.Argument<T> type, @Nullable T value) Transform an object value to a JSON tree.@NonNull io.micronaut.json.tree.JsonNodewriteValueToTree(@Nullable Object value) Transform an object value to a JSON tree.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.json.JsonMapper
createReactiveParser, createSpecific, detectFeatures, readValue, readValue, readValue, readValue, readValue, readValue, readValueFromTree, writeValueAsString, writeValueAsString, writeValueAsStringMethods inherited from interface ObjectMapper
cloneWithFeatures, updateValue, updateValue, updateValue
-
Field Details
-
NAME
-
-
Constructor Details
-
ToonMapper
@Inject public ToonMapper(SerdeRegistry registry, @Nullable SerdeConfiguration serdeConfiguration, ToonDecoder toonDecoder, ToonEncoder toonEncoder, @Nullable Class<?> view) Creates a TOON-backedObjectMapper.- Parameters:
registry- The serde registry used to resolve serializers and deserializersserdeConfiguration- The serde configuration, when availabletoonDecoder- The decoder that converts TOON input into a JSON treetoonEncoder- The encoder that writes JSON trees as TOON outputview- The active@JsonViewclass, when available
-
-
Method Details
-
getSerdeRegistry
Returns theSerdeRegistryused by this object mapper, if possible.- Specified by:
getSerdeRegistryin interfaceObjectMapper- Returns:
- The serde registry
-
cloneWithViewClass
- Specified by:
cloneWithViewClassin interfaceio.micronaut.json.JsonMapper
-
cloneWithConfiguration
public ObjectMapper cloneWithConfiguration(@Nullable SerdeConfiguration configuration, @Nullable SerializationConfiguration serializationConfiguration, @Nullable DeserializationConfiguration deserializationConfiguration) Description copied from interface:ObjectMapperOptional feature. Create a newObjectMapperwith the given configuration values. Anullparameter indicates the old configuration should be used.- Specified by:
cloneWithConfigurationin interfaceObjectMapper- Parameters:
configuration- TheSerdeConfigurationserializationConfiguration- TheSerializationConfigurationdeserializationConfiguration- TheDeserializationConfiguration- Returns:
- A new
JsonMapperwith the updated config
-
cloneWithConfiguration
public ObjectMapper cloneWithConfiguration(@Nullable SerdeConfiguration configuration, @Nullable SerializationConfiguration serializationConfiguration, @Nullable DeserializationConfiguration deserializationConfiguration, @Nullable SerdeIntrospections introspections) Description copied from interface:ObjectMapperOptional feature. Create a newObjectMapperwith the given configuration values and introspections. Anullconfiguration parameter indicates the old configuration should be used.- Specified by:
cloneWithConfigurationin interfaceObjectMapper- Parameters:
configuration- TheSerdeConfigurationserializationConfiguration- TheSerializationConfigurationdeserializationConfiguration- TheDeserializationConfigurationintrospections- TheSerdeIntrospections- Returns:
- A new
JsonMapperwith the updated config and introspections
-
readValueFromTree
public <T> @Nullable T readValueFromTree(io.micronaut.json.tree.JsonNode tree, io.micronaut.core.type.Argument<T> type) throws IOException Transform aJsonNodeto a value of the given type.- Specified by:
readValueFromTreein interfaceio.micronaut.json.JsonMapper- Type Parameters:
T- Type variable of the return type- Parameters:
tree- The source tree to deserializetype- The target type- Returns:
- The deserialized value
- Throws:
IOException- If tree decoding fails
-
readValue
public <T> @Nullable T readValue(InputStream inputStream, io.micronaut.core.type.Argument<T> type) throws IOException Parse and map TOON data from the given stream.- Specified by:
readValuein interfaceio.micronaut.json.JsonMapper- Type Parameters:
T- Type variable of the return type- Parameters:
inputStream- The TOON input streamtype- The target type- Returns:
- The deserialized object
- Throws:
IOException- If the TOON input cannot be read
-
readValue
public <T> @Nullable T readValue(byte[] byteArray, io.micronaut.core.type.Argument<T> type) throws IOException Parse and map TOON data from the given byte array.- Specified by:
readValuein interfaceio.micronaut.json.JsonMapper- Type Parameters:
T- Type variable of the return type- Parameters:
byteArray- The TOON bytestype- The target type- Returns:
- The deserialized object
- Throws:
IOException- If the TOON input cannot be read
-
writeValueToTree
public @NonNull io.micronaut.json.tree.JsonNode writeValueToTree(@Nullable Object value) throws IOException Transform an object value to a JSON tree.- Specified by:
writeValueToTreein interfaceio.micronaut.json.JsonMapper- Parameters:
value- The value to convert- Returns:
- The JSON representation
- Throws:
IOException- If serialization to the tree fails
-
writeValueToTree
public <T> io.micronaut.json.tree.JsonNode writeValueToTree(io.micronaut.core.type.Argument<T> type, @Nullable T value) throws IOException Transform an object value to a JSON tree.- Specified by:
writeValueToTreein interfaceio.micronaut.json.JsonMapper- Type Parameters:
T- The type variable of the type- Parameters:
type- The declared type of the valuevalue- The value to convert- Returns:
- The JSON representation
- Throws:
IOException- If serialization to the tree fails
-
writeValue
Write an object as a TOON document.- Specified by:
writeValuein interfaceio.micronaut.json.JsonMapper- Parameters:
outputStream- The destination streamobject- The object to serialize- Throws:
IOException- If writing the TOON output fails
-
writeValue
public <T> void writeValue(OutputStream outputStream, io.micronaut.core.type.Argument<T> type, @Nullable T object) throws IOException Write an object as a TOON document.- Specified by:
writeValuein interfaceio.micronaut.json.JsonMapper- Type Parameters:
T- The generic type- Parameters:
outputStream- The destination streamtype- The declared type of the objectobject- The object to serialize- Throws:
IOException- If writing the TOON output fails
-
writeValueAsBytes
Write an object as a TOON document.- Specified by:
writeValueAsBytesin interfaceio.micronaut.json.JsonMapper- Parameters:
object- The object to serialize- Returns:
- The serialized TOON bytes
- Throws:
IOException- If writing the TOON output fails
-
writeValueAsBytes
public <T> byte[] writeValueAsBytes(io.micronaut.core.type.Argument<T> type, @Nullable T object) throws IOException Write an object as a TOON document.- Specified by:
writeValueAsBytesin interfaceio.micronaut.json.JsonMapper- Type Parameters:
T- The generic type- Parameters:
type- The declared type of the objectobject- The object to serialize- Returns:
- The serialized TOON bytes
- Throws:
IOException- If writing the TOON output fails
-
updateValueFromTree
public void updateValueFromTree(Object value, io.micronaut.json.tree.JsonNode tree) throws IOException - Specified by:
updateValueFromTreein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
updateValue
public <T> T updateValue(T valueToUpdate, io.micronaut.core.type.Argument<T> type, InputStream inputStream) throws IOException Description copied from interface:ObjectMapperUpdate an existing mutable value from JSON read from the supplied input stream.- Specified by:
updateValuein interfaceObjectMapper- Type Parameters:
T- The value type- Parameters:
valueToUpdate- The existing value to updatetype- The type of the value to updateinputStream- The input stream containing JSON fields to apply- Returns:
- The updated
valueToUpdate - Throws:
IOException- If an I/O or decoding error occurs
-
updateValue
public <T> T updateValue(T valueToUpdate, io.micronaut.core.type.Argument<T> type, byte[] byteArray) throws IOException Description copied from interface:ObjectMapperUpdate an existing mutable value from JSON read from the supplied byte array.- Specified by:
updateValuein interfaceObjectMapper- Type Parameters:
T- The value type- Parameters:
valueToUpdate- The existing value to updatetype- The type of the value to updatebyteArray- The byte array containing JSON fields to apply- Returns:
- The updated
valueToUpdate - Throws:
IOException- If an I/O or decoding error occurs
-
getStreamConfig
public io.micronaut.json.JsonStreamConfig getStreamConfig()Returns the stream configuration used by this mapper.- Specified by:
getStreamConfigin interfaceio.micronaut.json.JsonMapper- Returns:
- The configured stream config
-