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
  • Field Details

  • 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-backed ObjectMapper.
      Parameters:
      registry - The serde registry used to resolve serializers and deserializers
      serdeConfiguration - The serde configuration, when available
      yamlConfiguration - The YAML configuration
      quotingChecker - The YAML string quoting checker
      view - The active serialization view, when available
  • Method Details

    • getSerdeRegistry

      public SerdeRegistry getSerdeRegistry()
      Description copied from interface: ObjectMapper
      Returns the SerdeRegistry used by this object mapper, if possible.
      Specified by:
      getSerdeRegistry in interface ObjectMapper
      Returns:
      The serde registry
    • getYamlConfiguration

      public SerdeYamlConfiguration getYamlConfiguration()
      Returns the YAML configuration this mapper writes and reads with.
      Returns:
      The YAML configuration
    • cloneWithViewClass

      public io.micronaut.json.JsonMapper cloneWithViewClass(Class<?> viewClass)
      Specified by:
      cloneWithViewClass in interface io.micronaut.json.JsonMapper
    • cloneWithConfiguration

      public ObjectMapper cloneWithConfiguration(@Nullable SerdeConfiguration configuration, @Nullable SerializationConfiguration serializationConfiguration, @Nullable DeserializationConfiguration deserializationConfiguration)
      Description copied from interface: ObjectMapper
      Optional feature. Create a new ObjectMapper with the given configuration values. A null parameter indicates the old configuration should be used.
      Specified by:
      cloneWithConfiguration in interface ObjectMapper
      Parameters:
      configuration - The SerdeConfiguration
      serializationConfiguration - The SerializationConfiguration
      deserializationConfiguration - The DeserializationConfiguration
      Returns:
      A new JsonMapper with the updated config
    • cloneWithConfiguration

      public ObjectMapper cloneWithConfiguration(@Nullable SerdeConfiguration configuration, @Nullable SerializationConfiguration serializationConfiguration, @Nullable DeserializationConfiguration deserializationConfiguration, @Nullable SerdeIntrospections introspections)
      Description copied from interface: ObjectMapper
      Optional feature. Create a new ObjectMapper with the given configuration values and introspections. A null configuration parameter indicates the old configuration should be used.
      Specified by:
      cloneWithConfiguration in interface ObjectMapper
      Parameters:
      configuration - The SerdeConfiguration
      serializationConfiguration - The SerializationConfiguration
      deserializationConfiguration - The DeserializationConfiguration
      introspections - The SerdeIntrospections
      Returns:
      A new JsonMapper with the updated config and introspections
    • cloneWithConfiguration

      public YamlObjectMapper cloneWithConfiguration(SerdeYamlConfiguration yamlConfiguration)
      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:
      readValueFromTree in interface io.micronaut.json.JsonMapper
      Throws:
      IOException
    • readValue

      public <T> @Nullable T readValue(InputStream inputStream, io.micronaut.core.type.Argument<T> type) throws IOException
      Specified by:
      readValue in interface io.micronaut.json.JsonMapper
      Throws:
      IOException
    • readValue

      public <T> @Nullable T readValue(byte[] byteArray, io.micronaut.core.type.Argument<T> type) throws IOException
      Specified by:
      readValue in interface io.micronaut.json.JsonMapper
      Throws:
      IOException
    • writeValueToTree

      public io.micronaut.json.tree.JsonNode writeValueToTree(@Nullable Object value) throws IOException
      Specified by:
      writeValueToTree in interface io.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:
      writeValueToTree in interface io.micronaut.json.JsonMapper
      Throws:
      IOException
    • writeValue

      public void writeValue(OutputStream outputStream, @Nullable Object object) throws IOException
      Specified by:
      writeValue in interface io.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:
      writeValue in interface io.micronaut.json.JsonMapper
      Throws:
      IOException
    • writeValueAsBytes

      public byte[] writeValueAsBytes(@Nullable Object object) throws IOException
      Specified by:
      writeValueAsBytes in interface io.micronaut.json.JsonMapper
      Throws:
      IOException
    • writeValueAsBytes

      public <T> byte[] writeValueAsBytes(io.micronaut.core.type.Argument<T> type, @Nullable T object) throws IOException
      Specified by:
      writeValueAsBytes in interface io.micronaut.json.JsonMapper
      Throws:
      IOException
    • updateValueFromTree

      public void updateValueFromTree(Object value, io.micronaut.json.tree.JsonNode tree) throws IOException
      Specified by:
      updateValueFromTree in interface io.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: ObjectMapper
      Update an existing mutable value from JSON read from the supplied input stream.
      Specified by:
      updateValue in interface ObjectMapper
      Type Parameters:
      T - The value type
      Parameters:
      valueToUpdate - The existing value to update
      type - The type of the value to update
      inputStream - 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: ObjectMapper
      Update an existing mutable value from JSON read from the supplied byte array.
      Specified by:
      updateValue in interface ObjectMapper
      Type Parameters:
      T - The value type
      Parameters:
      valueToUpdate - The existing value to update
      type - The type of the value to update
      byteArray - 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:
      getStreamConfig in interface io.micronaut.json.JsonMapper