protected ThreeTenFormattedSerializerBase(ThreeTenFormattedSerializerBase<?> base, Boolean useTimestamp, DateTimeFormatter dtf) { super(base.handledType()); _useTimestamp = useTimestamp; _formatter = dtf; }
@Override protected ThreeTenFormattedSerializerBase<?> withFormat(Boolean useTimestamp, DateTimeFormatter formatter) { return new OffsetDateTimeSerializer(this, useTimestamp, formatter); } }
@Override protected ThreeTenFormattedSerializerBase<Instant> withFormat(Boolean useTimestamp, DateTimeFormatter formatter) { return new InstantSerializer(this, useTimestamp, formatter); } }
@Override public void serialize(ZonedDateTime value, JsonGenerator generator, SerializerProvider provider) throws IOException { if (!useTimestamp(provider)) { if (shouldWriteWithZoneId(provider)) { // write with zone generator.writeString(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(value)); return; } } super.serialize(value, generator, provider); }
@Override protected ThreeTenFormattedSerializerBase<?> withFeatures(Boolean writeZoneId) { return new ZonedDateTimeSerializer(this, _useTimestamp, _formatter, writeZoneId); }
@Override protected YearSerializer withFormat(Boolean useTimestamp, DateTimeFormatter formatter) { return new YearSerializer(this, useTimestamp, formatter); }
@Override protected DurationSerializer withFormat(Boolean useTimestamp, DateTimeFormatter dtf) { return new DurationSerializer(this, useTimestamp, dtf); }
@Override protected ThreeTenFormattedSerializerBase<LocalDateTime> withFormat(Boolean useTimestamp, DateTimeFormatter f) { return new LocalDateTimeSerializer(this, useTimestamp, f); }
@Override protected ThreeTenFormattedSerializerBase<LocalTime> withFormat(Boolean useTimestamp, DateTimeFormatter dtf) { return new LocalTimeSerializer(this, useTimestamp, dtf); }
@Override protected OffsetTimeSerializer withFormat(Boolean useTimestamp, DateTimeFormatter dtf) { return new OffsetTimeSerializer(this, useTimestamp, dtf); }
@Override protected MonthDaySerializer withFormat(Boolean useTimestamp, DateTimeFormatter formatter) { return new MonthDaySerializer(this, useTimestamp, formatter); }
@Override protected YearMonthSerializer withFormat(Boolean useTimestamp, DateTimeFormatter formatter) { return new YearMonthSerializer(this, useTimestamp, formatter); }
@Override protected LocalDateSerializer withFormat(Boolean useTimestamp, DateTimeFormatter dtf) { return new LocalDateSerializer(this, useTimestamp, dtf); }
@Override public JsonNode getSchema(SerializerProvider provider, Type typeHint) { return createSchemaNode( provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) ? "array" : "string", true ); }
@Override public void serializeWithType(T value, JsonGenerator generator, SerializerProvider provider, TypeSerializer serializer) throws IOException { serializer.writeTypePrefixForScalar(value, generator); this.serialize(value, generator, provider); serializer.writeTypeSuffixForScalar(value, generator); } }
@Override public void serialize(YearMonth yearMonth, JsonGenerator generator, SerializerProvider provider) throws IOException { if (useTimestamp(provider)) { generator.writeStartArray(); generator.writeNumber(yearMonth.getYear()); generator.writeNumber(yearMonth.getMonthValue()); generator.writeEndArray(); } else { String str = (_formatter == null) ? yearMonth.toString() : yearMonth.format(_formatter); generator.writeString(str); } }
@Override public void serialize(MonthDay value, JsonGenerator generator, SerializerProvider provider) throws IOException { if (_useTimestampExplicitOnly(provider)) { generator.writeStartArray(); generator.writeNumber(value.getMonthValue()); generator.writeNumber(value.getDayOfMonth()); generator.writeEndArray(); } else { String str = (_formatter == null) ? value.toString() : value.format(_formatter); generator.writeString(str); } }
@Override public void serialize(Year year, JsonGenerator generator, SerializerProvider provider) throws IOException { if (useTimestamp(provider)) { generator.writeNumber(year.getValue()); } else { String str = (_formatter == null) ? year.toString() : year.format(_formatter); generator.writeString(str); } }
@Override public void serialize(LocalDate date, JsonGenerator generator, SerializerProvider provider) throws IOException { if (useTimestamp(provider)) { generator.writeStartArray(); generator.writeNumber(date.getYear()); generator.writeNumber(date.getMonthValue()); generator.writeNumber(date.getDayOfMonth()); generator.writeEndArray(); } else { String str = (_formatter == null) ? date.toString() : date.format(_formatter); generator.writeString(str); } }
@Override protected ThreeTenFormattedSerializerBase<?> withFormat(Boolean useTimestamp, DateTimeFormatter formatter) { return new ZonedDateTimeSerializer(this, useTimestamp, formatter, _writeZoneId); }