Class YamlObjectMapper
java.lang.Object
io.micronaut.serde.yaml.YamlObjectMapper
- All Implemented Interfaces:
io.micronaut.json.JsonMapper, ObjectMapper
@Named("yaml")
@Secondary
@Singleton
public final class YamlObjectMapper
extends Object
implements ObjectMapper
YAML-backed
ObjectMapper.
The mapper uses the event based parser and emitter of snakeyaml-engine only as a
token source and sink; object graphs are mapped by the Micronaut Serialization serializers and
deserializers resolved through the SerdeRegistry. Inject it with the YAML
qualifier, or by its concrete type, to read and write YAML next to the primary JSON mapper.
- Since:
- 3.2.0
- Author:
- Mohamed Chbani, Hamza Mousrij
-
Nested Class Summary
Nested classes/interfaces inherited from interface ObjectMapper
ObjectMapper.CloseableObjectMapper -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe qualifier name of the YAMLObjectMapperbean. -
Constructor Summary
ConstructorsConstructorDescriptionYamlObjectMapper(SerdeRegistry registry, @Nullable SerdeConfiguration serdeConfiguration, SerdeYamlConfiguration yamlConfiguration, io.micronaut.serde.yaml.YamlStringQuotingChecker quotingChecker, @Nullable Class<?> view) Creates a YAML-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.cloneWithConfiguration(SerdeYamlConfiguration yamlConfiguration) Creates a copy of this mapper that reads and writes with the given YAML configuration.io.micronaut.json.JsonMappercloneWithViewClass(Class<?> viewClass) Returns theSerdeRegistryused by this object mapper, if possible.io.micronaut.json.JsonStreamConfigReturns the YAML configuration this mapper writes and reads with.<T> @Nullable TreadValue(byte[] byteArray, io.micronaut.core.type.Argument<T> type) <T> @Nullable TreadValue(InputStream inputStream, io.micronaut.core.type.Argument<T> type) <T> @Nullable TreadValueFromTree(io.micronaut.json.tree.JsonNode tree, io.micronaut.core.type.Argument<T> 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) voidwriteValue(OutputStream outputStream, @Nullable Object object) <T> byte[]writeValueAsBytes(io.micronaut.core.type.Argument<T> type, @Nullable T object) byte[]writeValueAsBytes(@Nullable Object object) <T> io.micronaut.json.tree.JsonNodewriteValueToTree(io.micronaut.core.type.Argument<T> type, @Nullable T value) io.micronaut.json.tree.JsonNodewriteValueToTree(@Nullable Object value) 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
-
YAML
-
-
Constructor Details
-
YamlObjectMapper
@Inject public YamlObjectMapper(SerdeRegistry registry, @Nullable SerdeConfiguration serdeConfiguration, SerdeYamlConfiguration yamlConfiguration, io.micronaut.serde.yaml.YamlStringQuotingChecker quotingChecker, @Nullable Class<?> view) Creates a YAML-backedObjectMapper.- Parameters:
registry- The serde registry used to resolve serializers and deserializersserdeConfiguration- The serde configuration, when availableyamlConfiguration- The YAML configurationquotingChecker- The YAML string quoting checkerview- The active serialization view, when available
-
-
Method Details
-
getSerdeRegistry
Description copied from interface:ObjectMapperReturns theSerdeRegistryused by this object mapper, if possible.- Specified by:
getSerdeRegistryin interfaceObjectMapper- Returns:
- The serde registry
-
getYamlConfiguration
Returns the YAML configuration this mapper writes and reads with.- Returns:
- The YAML configuration
-
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
-
cloneWithConfiguration
Creates a copy of this mapper that reads and writes with the given YAML configuration.- Parameters:
yamlConfiguration- The YAML configuration- Returns:
- A new mapper
-
readValueFromTree
public <T> @Nullable T readValueFromTree(io.micronaut.json.tree.JsonNode tree, io.micronaut.core.type.Argument<T> type) throws IOException - Specified by:
readValueFromTreein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
readValue
public <T> @Nullable T readValue(InputStream inputStream, io.micronaut.core.type.Argument<T> type) throws IOException - Specified by:
readValuein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
readValue
public <T> @Nullable T readValue(byte[] byteArray, io.micronaut.core.type.Argument<T> type) throws IOException - Specified by:
readValuein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
writeValueToTree
- Specified by:
writeValueToTreein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
writeValueToTree
public <T> io.micronaut.json.tree.JsonNode writeValueToTree(io.micronaut.core.type.Argument<T> type, @Nullable T value) throws IOException - Specified by:
writeValueToTreein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
writeValue
- Specified by:
writeValuein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
writeValue
public <T> void writeValue(OutputStream outputStream, io.micronaut.core.type.Argument<T> type, @Nullable T object) throws IOException - Specified by:
writeValuein interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
writeValueAsBytes
- Specified by:
writeValueAsBytesin interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
writeValueAsBytes
public <T> byte[] writeValueAsBytes(io.micronaut.core.type.Argument<T> type, @Nullable T object) throws IOException - Specified by:
writeValueAsBytesin interfaceio.micronaut.json.JsonMapper- Throws:
IOException
-
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()- Specified by:
getStreamConfigin interfaceio.micronaut.json.JsonMapper
-