Class AbstractDateSerializer<T>

java.lang.Object
org.eclipse.yasson.internal.serializer.types.TypeSerializer<T>
org.eclipse.yasson.internal.serializer.types.AbstractDateSerializer<T>
All Implemented Interfaces:
ModelSerializer
Direct Known Subclasses:
CalendarSerializer, DateSerializer, InstantSerializer, LocalDateSerializer, LocalDateTimeSerializer, LocalTimeSerializer, MonthDayTypeSerializer, OffsetDateTimeSerializer, OffsetTimeSerializer, SqlTimestampSerializer, XmlGregorianCalendarSerializer, YearMonthTypeSerializer, ZonedDateTimeSerializer

abstract class AbstractDateSerializer<T> extends TypeSerializer<T>
Base for all date related serializers.
  • Field Details

    • UTC

      static final ZoneId UTC
    • toStringSerializer

      private final Function<T,String> toStringSerializer
    • valueWriter

      private final BiConsumer<T,jakarta.json.stream.JsonGenerator> valueWriter
  • Constructor Details

  • Method Details

    • valueSerializer

      private Function<T,String> valueSerializer(TypeSerializerBuilder serializerBuilder)
    • getJsonbDateFormatter

      private JsonbDateFormatter getJsonbDateFormatter(JsonbConfigProperties properties, Customization customization)
    • toTemporalAccessor

      protected TemporalAccessor toTemporalAccessor(T value)
      Convert date object to TemporalAccessor Only for legacy dates.
      Parameters:
      value - date object
      Returns:
      converted TemporalAccessor
    • toInstant

      protected abstract Instant toInstant(T value)
      Convert java.time object to epoch milliseconds instant. Discards zone offset and zone id information.
      Parameters:
      value - date object to convert
      Returns:
      instant
    • formatDefault

      protected abstract String formatDefault(T value, Locale locale)
      Format with default formatter for a given java.time date object. Different default formatter for each date object type is used.
      Parameters:
      value - date object
      locale - locale from annotation / default not null
      Returns:
      formatted date obj as string
    • formatWithFormatter

      protected String formatWithFormatter(T value, DateTimeFormatter formatter)
      Format date object with given formatter.
      Parameters:
      value - date object to format
      formatter - formatter to format with
      Returns:
      formatted result
    • formatStrictIJson

      protected String formatStrictIJson(T value)
      Format date object as strict IJson date format.
      Parameters:
      value - value to format
      Returns:
      formatted result
    • getZonedFormatter

      protected DateTimeFormatter getZonedFormatter(DateTimeFormatter formatter)
      Append UTC zone in case zone is not set on formatter.
      Parameters:
      formatter - formatter
      Returns:
      zoned formatter
    • serializeValue

      void serializeValue(T value, jakarta.json.stream.JsonGenerator generator, SerializationContextImpl context)
      Specified by:
      serializeValue in class TypeSerializer<T>
    • serializeKey

      void serializeKey(T key, jakarta.json.stream.JsonGenerator generator, SerializationContextImpl context)
      Overrides:
      serializeKey in class TypeSerializer<T>