Class AbstractDateTimeSerializer<T>

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.time.ZoneId UTC
      Default zone id.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract java.lang.String formatDefault​(T value, java.util.Locale locale)
      Format with default formatter for a given java.time date object.
      protected java.lang.String formatStrictIJson​(T value)
      Format date object as strict IJson date format.
      protected java.lang.String formatWithFormatter​(T value, java.time.format.DateTimeFormatter formatter)
      Format date object with given formatter.
      protected JsonbDateFormatter getJsonbDateFormatter​(JsonbContext context)
      Returns registered serialization jsonb date formatter.
      protected java.time.format.DateTimeFormatter getZonedFormatter​(java.time.format.DateTimeFormatter formatter)
      Append UTC zone in case zone is not set on formatter.
      void serialize​(T obj, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
      Serializes an object to JSON.
      protected void serialize​(T obj, javax.json.stream.JsonGenerator generator, Marshaller marshaller)
      Serializes an object to JSON.
      protected abstract java.time.Instant toInstant​(T value)
      Convert java.time object to epoch milliseconds instant.
      java.lang.String toJson​(T object, JsonbDateFormatter formatter, JsonbContext jsonbContext)
      Converts to JSON string.
      protected java.time.temporal.TemporalAccessor toTemporalAccessor​(T object)
      Convert date object to TemporalAccessor Only for legacy dates.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • UTC

        public static final java.time.ZoneId UTC
        Default zone id.
    • Constructor Detail

      • AbstractDateTimeSerializer

        public AbstractDateTimeSerializer​(Customization customization)
        Creates a new instance.
        Parameters:
        customization - Model customization.
    • Method Detail

      • serialize

        public void serialize​(T obj,
                              javax.json.stream.JsonGenerator generator,
                              javax.json.bind.serializer.SerializationContext ctx)
        Description copied from class: AbstractValueTypeSerializer
        Serializes an object to JSON.
        Specified by:
        serialize in interface javax.json.bind.serializer.JsonbSerializer<T>
        Overrides:
        serialize in class AbstractValueTypeSerializer<T>
        Parameters:
        obj - Object to serialize.
        generator - JSON generator to use.
        ctx - JSON-B mapper context.
      • toJson

        public java.lang.String toJson​(T object,
                                       JsonbDateFormatter formatter,
                                       JsonbContext jsonbContext)
        Converts to JSON string.
        Parameters:
        object - Object to convert.
        formatter - Formatter to use.
        jsonbContext - JSON-B context.
        Returns:
        JSON representation of given object.
      • getJsonbDateFormatter

        protected JsonbDateFormatter getJsonbDateFormatter​(JsonbContext context)
        Returns registered serialization jsonb date formatter.
        Parameters:
        context - context
        Returns:
        jsonb formatter
      • getZonedFormatter

        protected java.time.format.DateTimeFormatter getZonedFormatter​(java.time.format.DateTimeFormatter formatter)
        Append UTC zone in case zone is not set on formatter.
        Parameters:
        formatter - formatter
        Returns:
        zoned formatter
      • toTemporalAccessor

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

        protected abstract java.time.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 java.lang.String formatDefault​(T value,
                                                          java.util.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 java.lang.String formatWithFormatter​(T value,
                                                       java.time.format.DateTimeFormatter formatter)
        Format date object with given formatter.
        Parameters:
        value - date object to format
        formatter - formatter to format with
        Returns:
        formatted result
      • formatStrictIJson

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