Class JSR310FormattedSerializerBase<T>

All Implemented Interfaces:
JsonFormatVisitable
Direct Known Subclasses:
DurationSerializer, InstantSerializerBase, LocalDateSerializer, LocalDateTimeSerializer, LocalTimeSerializer, MonthDaySerializer, MonthSerializer, OffsetTimeSerializer, YearMonthSerializer, YearSerializer

abstract class JSR310FormattedSerializerBase<T> extends JSR310SerializerBase<T>
Base class that provides an array schema instead of scalar schema if
invalid reference
SerializationFeature#WRITE_DATES_AS_TIMESTAMPS
is enabled.
  • Field Details

    • _useTimestamp

      protected final Boolean _useTimestamp
      Flag that indicates that serialization must be done as the Java timestamp, regardless of other settings.
    • _useNanoseconds

      protected final Boolean _useNanoseconds
      Flag that indicates that numeric timestamp values must be written using nanosecond timestamps if the datatype supports such resolution, regardless of other settings.
    • _formatter

      protected final DateTimeFormatter _formatter
      Specific format to use, if not default format: non-null value also indicates that serialization is to be done as JSON String, not numeric timestamp, unless #_useTimestamp is true.
    • _shape

      protected final com.fasterxml.jackson.annotation.JsonFormat.Shape _shape
    • _integerListType

      protected transient volatile JavaType _integerListType
      Lazily constructed JavaType representing type List<Integer>.
  • Constructor Details

    • JSR310FormattedSerializerBase

      protected JSR310FormattedSerializerBase(Class<T> supportedType)
    • JSR310FormattedSerializerBase

      protected JSR310FormattedSerializerBase(Class<T> supportedType, DateTimeFormatter formatter)
    • JSR310FormattedSerializerBase

      protected JSR310FormattedSerializerBase(JSR310FormattedSerializerBase<?> base, DateTimeFormatter dtf, Boolean useTimestamp, Boolean useNanoseconds, com.fasterxml.jackson.annotation.JsonFormat.Shape shape)
  • Method Details

    • withFormat

      protected abstract JSR310FormattedSerializerBase<?> withFormat(DateTimeFormatter dtf, Boolean useTimestamp, com.fasterxml.jackson.annotation.JsonFormat.Shape shape)
    • withFeatures

      protected JSR310FormattedSerializerBase<?> withFeatures(Boolean writeZoneId, Boolean writeNanoseconds)
    • createContextual

      public ValueSerializer<?> createContextual(SerializationContext ctxt, BeanProperty property)
      Description copied from class: ValueSerializer
      Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property (or, for root values, in which case `null` is passed). Note that instance that this method is called on is typically shared one and as a result method should NOT modify this instance but rather construct and return a new instance. This instance should only be returned as-is, in case it is already suitable for use.

      Note that method is only called once per POJO property, and for the first usage as root value serializer; it is not called for every serialization, as doing that would have significant performance impact; most serializers cache contextual instances for future use.

      Overrides:
      createContextual in class ValueSerializer<T>
      Parameters:
      ctxt - Context to use for accessing config, other serializers
      property - Property (defined by one or more accessors - field or method - used for accessing logical property value) for which serializer is used to be used; or, `null` for root value (or in cases where caller does not have this information, which is handled as root value case).
      Returns:
      Serializer to use for serializing values of specified property; may be this instance or a new instance.
    • acceptJsonFormatVisitor

      public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
      Description copied from class: StdSerializer
      Default implementation specifies no format. This behavior is usually overriden by custom serializers.
      Specified by:
      acceptJsonFormatVisitor in interface JsonFormatVisitable
      Overrides:
      acceptJsonFormatVisitor in class StdSerializer<T>
      Parameters:
      typeHint - Type of element (entity like property) being visited
    • _acceptTimestampVisitor

      protected void _acceptTimestampVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
    • _integerListType

      protected JavaType _integerListType(SerializationContext ctxt)
    • getTimestampsFeature

      protected DateTimeFeature getTimestampsFeature()
      Overridable method that determines SerializationFeature that is used as the global default in determining if date/time value serialized should use numeric format ("timestamp") or not.

      Note that this feature is just the baseline setting and may be overridden on per-type or per-property basis.

    • useTimestamp

      protected boolean useTimestamp(SerializationContext ctxt)
    • useTimestampFromGlobalDefaults

      protected boolean useTimestampFromGlobalDefaults(SerializationContext ctxt)
    • _useTimestampExplicitOnly

      protected boolean _useTimestampExplicitOnly(SerializationContext ctxt)
    • useNanoseconds

      protected boolean useNanoseconds(SerializationContext ctxt)
    • _useDateTimeFormatter

      protected DateTimeFormatter _useDateTimeFormatter(SerializationContext ctxt, com.fasterxml.jackson.annotation.JsonFormat.Value format)