@Override protected MonthDaySerializer withFormat(Boolean useTimestamp, DateTimeFormatter formatter, JsonFormat.Shape shape) { return new MonthDaySerializer(this, useTimestamp, formatter); }
@Override public void serialize(MonthDay value, JsonGenerator g, SerializerProvider provider) throws IOException { if (_useTimestampExplicitOnly(provider)) { g.writeStartArray(); _serializeAsArrayContents(value, g, provider); g.writeEndArray(); } else { g.writeString((_formatter == null) ? value.toString() : value.format(_formatter)); } }
@Override public void serializeWithType(MonthDay value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException { WritableTypeId typeIdDef = typeSer.writeTypePrefix(g, typeSer.typeId(value, serializationShape(provider))); // need to write out to avoid double-writing array markers if (typeIdDef.valueShape == JsonToken.START_ARRAY) { _serializeAsArrayContents(value, g, provider); } else { g.writeString((_formatter == null) ? value.toString() : value.format(_formatter)); } typeSer.writeTypeSuffix(g, typeIdDef); }
@Override protected void _acceptTimestampVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) throws JsonMappingException { SerializerProvider provider = visitor.getProvider(); boolean useTimestamp = (provider != null) && _useTimestampExplicitOnly(provider); if (useTimestamp) { _acceptTimestampVisitor(visitor, typeHint); } else { JsonStringFormatVisitor v2 = visitor.expectStringFormat(typeHint); if (v2 != null) { v2.format(JsonValueFormat.DATE_TIME); } } } }
@Override // since 2.9 protected JsonToken serializationShape(SerializerProvider provider) { return _useTimestampExplicitOnly(provider) ? JsonToken.START_ARRAY : JsonToken.VALUE_STRING; } }
@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 protected MonthDaySerializer withFormat(Boolean useTimestamp, DateTimeFormatter formatter) { return new MonthDaySerializer(this, useTimestamp, formatter); }