Module org.eclipse.yasson
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
Base for all date related serializers.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final ZoneId
private final BiConsumer
<T, jakarta.json.stream.JsonGenerator> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract String
formatDefault
(T value, Locale locale) Format with default formatter for a given java.time date object.protected String
formatStrictIJson
(T value) Format date object as strict IJson date format.protected String
formatWithFormatter
(T value, DateTimeFormatter formatter) Format date object with given formatter.private JsonbDateFormatter
getJsonbDateFormatter
(JsonbConfigProperties properties, Customization customization) protected DateTimeFormatter
getZonedFormatter
(DateTimeFormatter formatter) Append UTC zone in case zone is not set on formatter.(package private) void
serializeKey
(T key, jakarta.json.stream.JsonGenerator generator, SerializationContextImpl context) (package private) void
serializeValue
(T value, jakarta.json.stream.JsonGenerator generator, SerializationContextImpl context) protected abstract Instant
Convert java.time object to epoch milliseconds instant.protected TemporalAccessor
toTemporalAccessor
(T value) Convert date object toTemporalAccessor
Only for legacy dates.valueSerializer
(TypeSerializerBuilder serializerBuilder) Methods inherited from class org.eclipse.yasson.internal.serializer.types.TypeSerializer
serialize
-
Field Details
-
UTC
-
toStringSerializer
-
valueWriter
-
-
Constructor Details
-
AbstractDateSerializer
AbstractDateSerializer(TypeSerializerBuilder serializerBuilder)
-
-
Method Details
-
valueSerializer
-
getJsonbDateFormatter
private JsonbDateFormatter getJsonbDateFormatter(JsonbConfigProperties properties, Customization customization) -
toTemporalAccessor
Convert date object toTemporalAccessor
Only for legacy dates.- Parameters:
value
- date object- Returns:
- converted
TemporalAccessor
-
toInstant
Convert java.time object to epoch milliseconds instant. Discards zone offset and zone id information.- Parameters:
value
- date object to convert- Returns:
- instant
-
formatDefault
Format with default formatter for a given java.time date object. Different default formatter for each date object type is used.- Parameters:
value
- date objectlocale
- locale from annotation / default not null- Returns:
- formatted date obj as string
-
formatWithFormatter
Format date object with given formatter.- Parameters:
value
- date object to formatformatter
- formatter to format with- Returns:
- formatted result
-
formatStrictIJson
Format date object as strict IJson date format.- Parameters:
value
- value to format- Returns:
- formatted result
-
getZonedFormatter
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 classTypeSerializer<T>
-
serializeKey
void serializeKey(T key, jakarta.json.stream.JsonGenerator generator, SerializationContextImpl context) - Overrides:
serializeKey
in classTypeSerializer<T>
-