Class ScalaIterableSerde<T>

java.lang.Object
io.micronaut.scala.serde.ScalaIterableSerde<T>
Type Parameters:
T - The element type
All Implemented Interfaces:
io.micronaut.serde.Serializer<scala.collection.Iterable<T>>, io.micronaut.serde.util.CustomizableSerializer<scala.collection.Iterable<T>>

@Singleton @Requires(classes=io.micronaut.serde.Serializer.class) public final class ScalaIterableSerde<T> extends Object implements io.micronaut.serde.util.CustomizableSerializer<scala.collection.Iterable<T>>
Serialization for the Scala collections, which are a JSON array like any other.

They are not java.util.Collections, so Micronaut Serialization has no serializer for them and falls back to introspecting the concrete type -- $colon$colon, the cons cell behind a List, which no one declared and which carries nothing meaningful. A member declared List[String] therefore failed both ways round.

Writing iterates, which every Scala collection supports, so one serializer naming the most general Scala collection type covers all of them. Reading does not work that way and lives in ScalaCollectionDeserializer.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.micronaut.serde.Serializer

    io.micronaut.serde.Serializer.EncoderContext
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    io.micronaut.serde.Serializer<scala.collection.Iterable<T>>
    createSpecific(io.micronaut.serde.Serializer.EncoderContext context, io.micronaut.core.type.Argument<? extends scala.collection.Iterable<T>> type)
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.micronaut.serde.util.CustomizableSerializer

    isAbsent, isEmpty, serialize

    Methods inherited from interface io.micronaut.serde.Serializer

    isDefault
  • Constructor Details

    • ScalaIterableSerde

      public ScalaIterableSerde()
  • Method Details

    • createSpecific

      public io.micronaut.serde.Serializer<scala.collection.Iterable<T>> createSpecific(io.micronaut.serde.Serializer.EncoderContext context, io.micronaut.core.type.Argument<? extends scala.collection.Iterable<T>> type) throws io.micronaut.serde.exceptions.SerdeException
      Specified by:
      createSpecific in interface io.micronaut.serde.Serializer<T>
      Throws:
      io.micronaut.serde.exceptions.SerdeException