diff --git a/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaDateFormat.java b/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaDateFormat.java index 4e2cb75..87ab5b9 100644 --- a/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaDateFormat.java +++ b/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaDateFormat.java @@ -10,8 +10,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import tools.jackson.databind.DeserializationContext; import tools.jackson.databind.DeserializationFeature; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; /** * Simple container used to encapsulate (some of) gory details of @@ -236,7 +236,7 @@ public DateTimeFormatter rawFormatter() { return _formatter; } - public DateTimeFormatter createFormatter(SerializerProvider ctxt) + public DateTimeFormatter createFormatter(SerializationContext ctxt) { DateTimeFormatter formatter = createFormatterWithLocale(ctxt); if (!_explicitTimezone) { @@ -248,7 +248,7 @@ public DateTimeFormatter createFormatter(SerializerProvider ctxt) return formatter; } - public DateTimeFormatter createFormatterWithLocale(SerializerProvider ctxt) + public DateTimeFormatter createFormatterWithLocale(SerializationContext ctxt) { DateTimeFormatter formatter = _formatter; if (!_explicitLocale) { @@ -296,7 +296,7 @@ public boolean shouldAdjustToContextTimeZone(DeserializationContext ctxt) { /** * @since 2.8 */ - public boolean shouldWriteWithZoneId(SerializerProvider ctxt) { + public boolean shouldWriteWithZoneId(SerializationContext ctxt) { return (_writeZoneId != null) ? _writeZoneId : ctxt.isEnabled(SerializationFeature.WRITE_DATES_WITH_ZONE_ID); } diff --git a/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaFormatBase.java b/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaFormatBase.java index ac2295e..2175824 100644 --- a/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaFormatBase.java +++ b/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaFormatBase.java @@ -3,8 +3,8 @@ import java.util.Locale; import java.util.TimeZone; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; /** * Base object for different formatters (date-time, period, ...) @@ -78,11 +78,11 @@ protected JacksonJodaFormatBase(JacksonJodaFormatBase base, Locale locale) /********************************************************** */ - public boolean useTimestamp(SerializerProvider provider, SerializationFeature feat) + public boolean useTimestamp(SerializationContext ctxt, SerializationFeature feat) { if (_useTimestamp != null) { return _useTimestamp.booleanValue(); } - return provider.isEnabled(feat); + return ctxt.isEnabled(feat); } } diff --git a/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaPeriodFormat.java b/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaPeriodFormat.java index 6770f07..ab34cfd 100644 --- a/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaPeriodFormat.java +++ b/src/main/java/tools/jackson/datatype/joda/cfg/JacksonJodaPeriodFormat.java @@ -7,7 +7,7 @@ import org.joda.time.format.PeriodFormatter; import tools.jackson.databind.DeserializationContext; -import tools.jackson.databind.SerializerProvider; +import tools.jackson.databind.SerializationContext; /** * Simple container used to encapsulate (some of) gory details of @@ -81,12 +81,12 @@ public JacksonJodaPeriodFormat withLocale(Locale locale) { /********************************************************** */ - public PeriodFormatter createFormatter(SerializerProvider provider) + public PeriodFormatter createFormatter(SerializationContext ctxt) { PeriodFormatter formatter = _formatter; if (!_explicitLocale) { - Locale loc = provider.getLocale(); + Locale loc = ctxt.getLocale(); if (loc != null && !loc.equals(_locale)) { formatter = formatter.withLocale(loc); } diff --git a/src/main/java/tools/jackson/datatype/joda/ser/DateTimeSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/DateTimeSerializer.java index a45a1dc..161350f 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/DateTimeSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/DateTimeSerializer.java @@ -36,22 +36,22 @@ public DateTimeSerializer withFormat(JacksonJodaDateFormat formatter, } @Override - public boolean isEmpty(SerializerProvider prov, DateTime value) { + public boolean isEmpty(SerializationContext ctxt, DateTime value) { return (value.getMillis() == 0L); } @Override - public void serialize(DateTime value, JsonGenerator gen, SerializerProvider provider) + public void serialize(DateTime value, JsonGenerator gen, SerializationContext ctxt) throws JacksonException { - boolean numeric = (_serializationShape(provider) != FORMAT_STRING); + boolean numeric = (_serializationShape(ctxt) != FORMAT_STRING); // First: simple, non-timezone-included output - if (!writeWithZoneId(provider)) { + if (!writeWithZoneId(ctxt)) { if (numeric) { gen.writeNumber(value.getMillis()); } else { - gen.writeString(_format.createFormatter(provider).print(value)); + gen.writeString(_format.createFormatter(ctxt).print(value)); } } else { // and then as per [datatype-joda#44], optional TimeZone inclusion @@ -69,7 +69,7 @@ public void serialize(DateTime value, JsonGenerator gen, SerializerProvider prov return; } StringBuilder sb = new StringBuilder(40) - .append(_format.createFormatter(provider).withOffsetParsed().print(value)); + .append(_format.createFormatter(ctxt).withOffsetParsed().print(value)); sb = sb.append('[') .append(value.getZone()) .append(']'); diff --git a/src/main/java/tools/jackson/datatype/joda/ser/DateTimeZoneSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/DateTimeZoneSerializer.java index 5bc21b0..1fc9493 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/DateTimeZoneSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/DateTimeZoneSerializer.java @@ -7,7 +7,7 @@ import tools.jackson.core.JsonGenerator; import tools.jackson.core.JsonToken; import tools.jackson.core.type.WritableTypeId; -import tools.jackson.databind.SerializerProvider; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.jsontype.TypeSerializer; import org.joda.time.DateTimeZone; @@ -17,7 +17,7 @@ public class DateTimeZoneSerializer extends JodaSerializerBase public DateTimeZoneSerializer() { super(DateTimeZone.class); } @Override - public void serialize(DateTimeZone value, JsonGenerator g, SerializerProvider ctxt) + public void serialize(DateTimeZone value, JsonGenerator g, SerializationContext ctxt) throws JacksonException { g.writeString(value.getID()); @@ -26,7 +26,7 @@ public void serialize(DateTimeZone value, JsonGenerator g, SerializerProvider ct // as per [datatype-joda#82], need to ensure we will indicate nominal, NOT physical type: @Override public void serializeWithType(DateTimeZone value, JsonGenerator g, - SerializerProvider ctxt, TypeSerializer typeSer) + SerializationContext ctxt, TypeSerializer typeSer) throws JacksonException { WritableTypeId typeIdDef = typeSer.writeTypePrefix(g, ctxt, diff --git a/src/main/java/tools/jackson/datatype/joda/ser/DurationSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/DurationSerializer.java index 0a13964..fd4367b 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/DurationSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/DurationSerializer.java @@ -3,8 +3,8 @@ import tools.jackson.core.JacksonException; import tools.jackson.core.JsonGenerator; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -41,15 +41,15 @@ public DurationSerializer withFormat(JacksonJodaDateFormat formatter, } @Override - public boolean isEmpty(SerializerProvider prov, Duration value) { + public boolean isEmpty(SerializationContext ctxt, Duration value) { return (value.getMillis() == 0L); } @Override - public void serialize(Duration value, JsonGenerator g, SerializerProvider provider) + public void serialize(Duration value, JsonGenerator g, SerializationContext ctxt) throws JacksonException { - if (_serializationShape(provider) == FORMAT_STRING) { + if (_serializationShape(ctxt) == FORMAT_STRING) { g.writeString(value.toString()); } else { g.writeNumber(value.getMillis()); diff --git a/src/main/java/tools/jackson/datatype/joda/ser/InstantSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/InstantSerializer.java index 106201e..0922a74 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/InstantSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/InstantSerializer.java @@ -4,8 +4,8 @@ import tools.jackson.core.JacksonException; import tools.jackson.core.JsonGenerator; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -30,16 +30,16 @@ public InstantSerializer withFormat(JacksonJodaDateFormat formatter, } @Override - public boolean isEmpty(SerializerProvider prov, Instant value) { + public boolean isEmpty(SerializationContext ctxt, Instant value) { return (value.getMillis() == 0L); } @Override - public void serialize(Instant value, JsonGenerator gen, SerializerProvider provider) + public void serialize(Instant value, JsonGenerator gen, SerializationContext ctxt) throws JacksonException { - if (_serializationShape(provider) == FORMAT_STRING) { - gen.writeString(_format.createFormatter(provider).print(value)); + if (_serializationShape(ctxt) == FORMAT_STRING) { + gen.writeString(_format.createFormatter(ctxt).print(value)); } else { gen.writeNumber(value.getMillis()); } diff --git a/src/main/java/tools/jackson/datatype/joda/ser/IntervalSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/IntervalSerializer.java index dbe89ec..ff65657 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/IntervalSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/IntervalSerializer.java @@ -3,8 +3,8 @@ import tools.jackson.core.JacksonException; import tools.jackson.core.JsonGenerator; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -30,20 +30,20 @@ public IntervalSerializer withFormat(JacksonJodaDateFormat formatter, } @Override - public boolean isEmpty(SerializerProvider prov, Interval value) { + public boolean isEmpty(SerializationContext ctxt, Interval value) { return (value.getStartMillis() == value.getEndMillis()); } @Override - public void serialize(Interval interval, JsonGenerator gen, SerializerProvider provider) + public void serialize(Interval interval, JsonGenerator gen, SerializationContext ctxt) throws JacksonException { // 19-Nov-2014, tatu: Support textual representation similar to what Joda uses // (and why not exact one? In future we'll make it configurable) String repr; - if (_serializationShape(provider) == FORMAT_STRING) { - DateTimeFormatter f = _format.createFormatter(provider); + if (_serializationShape(ctxt) == FORMAT_STRING) { + DateTimeFormatter f = _format.createFormatter(ctxt); repr = f.print(interval.getStart()) + "/" + f.print(interval.getEnd()); } else { // !!! TODO: maybe allow textual format too? diff --git a/src/main/java/tools/jackson/datatype/joda/ser/JodaDateSerializerBase.java b/src/main/java/tools/jackson/datatype/joda/ser/JodaDateSerializerBase.java index 80ad5f3..f0693e6 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/JodaDateSerializerBase.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/JodaDateSerializerBase.java @@ -46,15 +46,15 @@ public abstract JodaDateSerializerBase withFormat(JacksonJodaDateFormat forma int shapeOverride); @Override - public boolean isEmpty(SerializerProvider prov, T value) { + public boolean isEmpty(SerializationContext ctxt, T value) { return value == null; } @Override - public ValueSerializer createContextual(SerializerProvider prov, + public ValueSerializer createContextual(SerializationContext ctxt, BeanProperty property) { - JsonFormat.Value ann = findFormatOverrides(prov, property, handledType()); + JsonFormat.Value ann = findFormatOverrides(ctxt, property, handledType()); if (ann != null) { int shapeOverride; Boolean useTimestamp; @@ -91,7 +91,7 @@ public ValueSerializer createContextual(SerializerProvider prov, @Override public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) { - switch (_serializationShape(visitor.getProvider())) { + switch (_serializationShape(visitor.getContext())) { case FORMAT_TIMESTAMP: { JsonIntegerFormatVisitor v2 = visitor.expectIntegerFormat(typeHint); @@ -126,17 +126,17 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t /********************************************************** */ - protected boolean writeWithZoneId(SerializerProvider provider) { - return _format.shouldWriteWithZoneId(provider); + protected boolean writeWithZoneId(SerializationContext ctxt) { + return _format.shouldWriteWithZoneId(ctxt); } /** * @since 2.9 */ - protected int _serializationShape(SerializerProvider provider) { + protected int _serializationShape(SerializationContext ctxt) { int shape = _shapeOverride; if (shape == 0) { - if (_format.useTimestamp(provider, _featureForNumeric)) { + if (_format.useTimestamp(ctxt, _featureForNumeric)) { shape = _defaultNumericShape; } else { shape = FORMAT_STRING; diff --git a/src/main/java/tools/jackson/datatype/joda/ser/JodaSerializerBase.java b/src/main/java/tools/jackson/datatype/joda/ser/JodaSerializerBase.java index 6f3215e..27c97be 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/JodaSerializerBase.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/JodaSerializerBase.java @@ -5,7 +5,7 @@ import tools.jackson.core.JsonToken; import tools.jackson.core.type.WritableTypeId; -import tools.jackson.databind.SerializerProvider; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.jsontype.TypeSerializer; import tools.jackson.databind.ser.std.StdSerializer; @@ -14,7 +14,7 @@ abstract class JodaSerializerBase extends StdSerializer protected JodaSerializerBase(Class cls) { super(cls); } @Override - public void serializeWithType(T value, JsonGenerator g, SerializerProvider ctxt, + public void serializeWithType(T value, JsonGenerator g, SerializationContext ctxt, TypeSerializer typeSer) throws JacksonException { diff --git a/src/main/java/tools/jackson/datatype/joda/ser/LocalDateSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/LocalDateSerializer.java index 9dba746..8edbd3b 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/LocalDateSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/LocalDateSerializer.java @@ -2,8 +2,8 @@ import tools.jackson.core.*; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -39,11 +39,11 @@ public boolean isEmpty(LocalDate value) { */ @Override - public void serialize(LocalDate value, JsonGenerator g, SerializerProvider provider) + public void serialize(LocalDate value, JsonGenerator g, SerializationContext ctxt) throws JacksonException { - if (_serializationShape(provider) == FORMAT_STRING) { - g.writeString(_format.createFormatter(provider).print(value)); + if (_serializationShape(ctxt) == FORMAT_STRING) { + g.writeString(_format.createFormatter(ctxt).print(value)); return; } // 28-Jul-2017, tatu: Wrt [dataformat-joda#39]... we could perhaps support timestamps, diff --git a/src/main/java/tools/jackson/datatype/joda/ser/LocalDateTimeSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/LocalDateTimeSerializer.java index c93021d..9d94270 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/LocalDateTimeSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/LocalDateTimeSerializer.java @@ -4,7 +4,7 @@ import tools.jackson.core.*; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; +import tools.jackson.databind.SerializationContext; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -37,18 +37,18 @@ public boolean isEmpty(LocalDateTime value) { */ @Override - public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider provider) + public void serialize(LocalDateTime value, JsonGenerator gen, SerializationContext ctxt) throws JacksonException { - switch (_serializationShape(provider)) { + switch (_serializationShape(ctxt)) { case FORMAT_STRING: - gen.writeString(_format.createFormatter(provider).print(value)); + gen.writeString(_format.createFormatter(ctxt).print(value)); break; case FORMAT_TIMESTAMP: { // copied from `LocalDateTimeDeserializer`... DateTimeZone tz = _format.isTimezoneExplicit() ? _format.getTimeZone() - : DateTimeZone.forTimeZone(provider.getTimeZone()); + : DateTimeZone.forTimeZone(ctxt.getTimeZone()); gen.writeNumber(value.toDateTime(tz).getMillis()); } break; diff --git a/src/main/java/tools/jackson/datatype/joda/ser/LocalTimeSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/LocalTimeSerializer.java index 811872e..b5836d3 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/LocalTimeSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/LocalTimeSerializer.java @@ -5,8 +5,8 @@ import tools.jackson.core.JacksonException; import tools.jackson.core.JsonGenerator; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -42,11 +42,11 @@ public boolean isEmpty(LocalTime value) { */ @Override - public void serialize(LocalTime value, JsonGenerator g, SerializerProvider provider) + public void serialize(LocalTime value, JsonGenerator g, SerializationContext ctxt) throws JacksonException { - if (_serializationShape(provider) == FORMAT_STRING) { - g.writeString(_format.createFormatter(provider).print(value)); + if (_serializationShape(ctxt) == FORMAT_STRING) { + g.writeString(_format.createFormatter(ctxt).print(value)); return; } // Timestamp here actually means an array of values diff --git a/src/main/java/tools/jackson/datatype/joda/ser/MonthDaySerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/MonthDaySerializer.java index d5d0f6a..32c5af7 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/MonthDaySerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/MonthDaySerializer.java @@ -2,8 +2,8 @@ import tools.jackson.core.*; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -28,9 +28,9 @@ public MonthDaySerializer withFormat(JacksonJodaDateFormat formatter, } @Override - public void serialize(MonthDay value, JsonGenerator gen, SerializerProvider provider) + public void serialize(MonthDay value, JsonGenerator gen, SerializationContext ctxt) throws JacksonException { - gen.writeString(_format.createFormatter(provider).print(value)); + gen.writeString(_format.createFormatter(ctxt).print(value)); } } diff --git a/src/main/java/tools/jackson/datatype/joda/ser/PeriodSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/PeriodSerializer.java index 25c57c0..d0cb88a 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/PeriodSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/PeriodSerializer.java @@ -43,11 +43,11 @@ public boolean isEmpty(ReadablePeriod value) { // Lots of work, although realistically, won't have much or any effect... @Override - public ValueSerializer createContextual(SerializerProvider prov, + public ValueSerializer createContextual(SerializationContext ctxt, BeanProperty property) { if (property != null) { - JsonFormat.Value ann = findFormatOverrides(prov, property, handledType()); + JsonFormat.Value ann = findFormatOverrides(ctxt, property, handledType()); if (ann != null) { JacksonJodaPeriodFormat format = _format; @@ -80,10 +80,10 @@ public ValueSerializer createContextual(SerializerProvider prov, } @Override - public void serialize(ReadablePeriod value, JsonGenerator g, SerializerProvider provider) + public void serialize(ReadablePeriod value, JsonGenerator g, SerializationContext ctxt) throws JacksonException { - g.writeString(_format.createFormatter(provider).print(value)); + g.writeString(_format.createFormatter(ctxt).print(value)); } @Override diff --git a/src/main/java/tools/jackson/datatype/joda/ser/YearMonthSerializer.java b/src/main/java/tools/jackson/datatype/joda/ser/YearMonthSerializer.java index a6ae7b9..c80ea86 100644 --- a/src/main/java/tools/jackson/datatype/joda/ser/YearMonthSerializer.java +++ b/src/main/java/tools/jackson/datatype/joda/ser/YearMonthSerializer.java @@ -2,8 +2,8 @@ import tools.jackson.core.*; +import tools.jackson.databind.SerializationContext; import tools.jackson.databind.SerializationFeature; -import tools.jackson.databind.SerializerProvider; import tools.jackson.datatype.joda.cfg.FormatConfig; import tools.jackson.datatype.joda.cfg.JacksonJodaDateFormat; @@ -28,9 +28,9 @@ public YearMonthSerializer withFormat(JacksonJodaDateFormat formatter, int shape } @Override - public void serialize(YearMonth value, JsonGenerator g, SerializerProvider provider) + public void serialize(YearMonth value, JsonGenerator g, SerializationContext ctxt) throws JacksonException { - g.writeString(_format.createFormatter(provider).print(value)); + g.writeString(_format.createFormatter(ctxt).print(value)); } }