diff options
author | Cowtowncoder <tatu.saloranta@iki.fi> | 2014-12-23 13:21:11 -0800 |
---|---|---|
committer | Cowtowncoder <tatu.saloranta@iki.fi> | 2014-12-23 13:21:11 -0800 |
commit | b44ebe43fea584580f53113e9b8e7f128592e1bb (patch) | |
tree | 8cb0a70223085927318400b56ce47edbf21d10da | |
parent | d3722c639821a247f4fab39caa018fef7ccc5be9 (diff) | |
download | jackson-databind-b44ebe43fea584580f53113e9b8e7f128592e1bb.tar.gz |
Warnings cleanup, minor refactoring of XMLGregorianCalendarSerializer
16 files changed, 93 insertions, 42 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/CoreXMLSerializers.java b/src/main/java/com/fasterxml/jackson/databind/ext/CoreXMLSerializers.java index a9460fbb8..d44fa4b67 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/CoreXMLSerializers.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/CoreXMLSerializers.java @@ -1,16 +1,17 @@ package com.fasterxml.jackson.databind.ext; import java.io.IOException; -import java.lang.reflect.Type; +import java.util.Calendar; import javax.xml.datatype.Duration; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; import com.fasterxml.jackson.core.*; - import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; +import com.fasterxml.jackson.databind.jsontype.TypeSerializer; +import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.Serializers; import com.fasterxml.jackson.databind.ser.std.CalendarSerializer; import com.fasterxml.jackson.databind.ser.std.StdSerializer; @@ -36,31 +37,76 @@ public class CoreXMLSerializers extends Serializers.Base return ToStringSerializer.instance; } if (XMLGregorianCalendar.class.isAssignableFrom(raw)) { - return new XMLGregorianCalendarSerializer(); + return XMLGregorianCalendarSerializer.instance; } return null; } - public static class XMLGregorianCalendarSerializer extends StdSerializer<XMLGregorianCalendar> + @SuppressWarnings("serial") + public static class XMLGregorianCalendarSerializer + extends StdSerializer<XMLGregorianCalendar> + implements ContextualSerializer { + final static XMLGregorianCalendarSerializer instance = new XMLGregorianCalendarSerializer(); + + final JsonSerializer<Object> _delegate; + public XMLGregorianCalendarSerializer() { + this(CalendarSerializer.instance); + } + + @SuppressWarnings("unchecked") + protected XMLGregorianCalendarSerializer(JsonSerializer<?> del) { super(XMLGregorianCalendar.class); + _delegate = (JsonSerializer<Object>) del; + } + + @Override + public JsonSerializer<?> getDelegatee() { + return _delegate; + } + + @Deprecated + @Override + public boolean isEmpty(XMLGregorianCalendar value) { + return _delegate.isEmpty(_convert(value)); + } + + @Override + public boolean isEmpty(SerializerProvider provider, XMLGregorianCalendar value) { + return _delegate.isEmpty(provider, _convert(value)); } @Override public void serialize(XMLGregorianCalendar value, JsonGenerator jgen, SerializerProvider provider) - throws IOException, JsonGenerationException { - CalendarSerializer.instance.serialize(value.toGregorianCalendar(), jgen, provider); + throws IOException { + _delegate.serialize(_convert(value), jgen, provider); } - + @Override - public JsonNode getSchema(SerializerProvider provider, Type typeHint) throws JsonMappingException { - return CalendarSerializer.instance.getSchema(provider, typeHint); + public void serializeWithType(XMLGregorianCalendar value, JsonGenerator gen, SerializerProvider provider, + TypeSerializer typeSer) throws IOException + { + _delegate.serializeWithType(_convert(value), gen, provider, typeSer); } @Override public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) throws JsonMappingException { - CalendarSerializer.instance.acceptJsonFormatVisitor(visitor, null); + _delegate.acceptJsonFormatVisitor(visitor, null); + } + + @Override + public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) + throws JsonMappingException { + JsonSerializer<?> ser = prov.handlePrimaryContextualization(_delegate, property); + if (ser != _delegate) { + return new XMLGregorianCalendarSerializer(ser); + } + return this; + } + + protected Calendar _convert(XMLGregorianCalendar input) { + return (input == null) ? null : input.toGregorianCalendar(); } } } diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/DOMSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ext/DOMSerializer.java index 90cb1dd90..9095b32c1 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/DOMSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/DOMSerializer.java @@ -1,13 +1,13 @@ package com.fasterxml.jackson.databind.ext; import java.io.IOException; + import org.w3c.dom.Node; import org.w3c.dom.bootstrap.DOMImplementationRegistry; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSSerializer; import com.fasterxml.jackson.core.*; - import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; @@ -15,6 +15,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; import com.fasterxml.jackson.databind.ser.std.StdSerializer; +@SuppressWarnings("serial") public class DOMSerializer extends StdSerializer<Node> { protected final DOMImplementationLS _domImpl; diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/ContainerSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/ContainerSerializer.java index 1da6d88ee..ac0820096 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/ContainerSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/ContainerSerializer.java @@ -12,6 +12,7 @@ import com.fasterxml.jackson.databind.ser.std.StdSerializer; * etc) and {@link java.util.Map}s and iterable things * ({@link java.util.Iterator}s). */ +@SuppressWarnings("serial") public abstract class ContainerSerializer<T> extends StdSerializer<T> { diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/impl/FailingSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/impl/FailingSerializer.java index fafa13d2b..80d96b38b 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/impl/FailingSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/impl/FailingSerializer.java @@ -4,7 +4,6 @@ import java.io.IOException; import java.lang.reflect.Type; import com.fasterxml.jackson.core.*; - import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; @@ -19,10 +18,11 @@ import com.fasterxml.jackson.databind.ser.std.StdSerializer; * as well as for catching unintended usage (like trying to use null * as Map/Object key). */ -public final class FailingSerializer +@SuppressWarnings("serial") +public class FailingSerializer extends StdSerializer<Object> { - final String _msg; + protected final String _msg; public FailingSerializer(String msg) { super(Object.class); @@ -30,16 +30,13 @@ public final class FailingSerializer } @Override - public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) - throws IOException, JsonGenerationException + public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException { throw new JsonGenerationException(_msg); } @Override - public JsonNode getSchema(SerializerProvider provider, Type typeHint) - throws JsonMappingException - { + public JsonNode getSchema(SerializerProvider provider, Type typeHint) throws JsonMappingException { return null; } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/impl/IndexedListSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/impl/IndexedListSerializer.java index 417db7991..a7ff0f50f 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/impl/IndexedListSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/impl/IndexedListSerializer.java @@ -20,6 +20,8 @@ import com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase; public final class IndexedListSerializer extends AsArraySerializerBase<List<?>> { + private static final long serialVersionUID = 1L; + public IndexedListSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, BeanProperty property, JsonSerializer<Object> valueSerializer) { diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/ArraySerializerBase.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/ArraySerializerBase.java index 2968db186..bcc4f91b2 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/ArraySerializerBase.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/ArraySerializerBase.java @@ -3,7 +3,6 @@ package com.fasterxml.jackson.databind.ser.std; import java.io.IOException; import com.fasterxml.jackson.core.*; - import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; import com.fasterxml.jackson.databind.ser.*; @@ -14,6 +13,7 @@ import com.fasterxml.jackson.databind.ser.*; * * @param <T> Type of arrays serializer handles */ +@SuppressWarnings("serial") public abstract class ArraySerializerBase<T> extends ContainerSerializer<T> { diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/AsArraySerializerBase.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/AsArraySerializerBase.java index 91a6510c8..7ae5fc98f 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/AsArraySerializerBase.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/AsArraySerializerBase.java @@ -20,6 +20,7 @@ import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap; * arrays; typically serializers used for {@link java.util.Collection} * and array types. */ +@SuppressWarnings("serial") public abstract class AsArraySerializerBase<T> extends ContainerSerializer<T> implements ContextualSerializer diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/CollectionSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/CollectionSerializer.java index bdbcbc39d..1b32c344b 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/CollectionSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/CollectionSerializer.java @@ -24,6 +24,8 @@ import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap; public class CollectionSerializer extends AsArraySerializerBase<Collection<?>> { + private static final long serialVersionUID = 1L; + /* /********************************************************** /* Life-cycle diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/DateSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/DateSerializer.java index 7a484483a..c22f2c580 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/DateSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/DateSerializer.java @@ -5,7 +5,6 @@ import java.text.DateFormat; import java.util.*; import com.fasterxml.jackson.core.*; - import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; @@ -14,6 +13,7 @@ import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; * potentially more readable Strings. */ @JacksonStdImpl +@SuppressWarnings("serial") public class DateSerializer extends DateTimeSerializerBase<Date> { diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase.java index 2825a0a78..eb8464788 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase.java @@ -17,6 +17,7 @@ import com.fasterxml.jackson.databind.jsonFormatVisitors.*; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.util.StdDateFormat; +@SuppressWarnings("serial") public abstract class DateTimeSerializerBase<T> extends StdScalarSerializer<T> implements ContextualSerializer diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/FileSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/FileSerializer.java index 8db1757c3..f587729cd 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/FileSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/FileSerializer.java @@ -4,7 +4,6 @@ import java.io.File; import java.io.IOException; import java.lang.reflect.Type; -import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonMappingException; @@ -16,21 +15,19 @@ import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrappe * For now, File objects get serialized by just outputting * absolute (but not canonical) name as String value */ +@SuppressWarnings("serial") public class FileSerializer extends StdScalarSerializer<File> { public FileSerializer() { super(File.class); } @Override - public void serialize(File value, JsonGenerator jgen, SerializerProvider provider) - throws IOException, JsonGenerationException - { + public void serialize(File value, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeString(value.getAbsolutePath()); } @Override - public JsonNode getSchema(SerializerProvider provider, Type typeHint) - { + public JsonNode getSchema(SerializerProvider provider, Type typeHint) { return createSchemaNode("string", true); } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/NumberSerializers.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/NumberSerializers.java index e368b37b3..ca9bbc1fc 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/NumberSerializers.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/NumberSerializers.java @@ -18,6 +18,7 @@ import com.fasterxml.jackson.databind.ser.ContextualSerializer; /** * Container class for serializers used for handling standard JDK-provided types. */ +@SuppressWarnings("serial") public class NumberSerializers { protected NumberSerializers() { } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdArraySerializers.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdArraySerializers.java index 19f7929f8..798292059 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdArraySerializers.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdArraySerializers.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.databind.type.TypeFactory; * Dummy container class to group standard homogenous array serializer implementations * (primitive arrays and String array). */ +@SuppressWarnings("serial") public class StdArraySerializers { protected final static HashMap<String, JsonSerializer<?>> _arraySerializers = @@ -81,7 +82,7 @@ public class StdArraySerializers */ @JacksonStdImpl - public final static class BooleanArraySerializer extends ArraySerializerBase<boolean[]> + public static class BooleanArraySerializer extends ArraySerializerBase<boolean[]> { // as above, assuming no one re-defines primitive/wrapper types private final static JavaType VALUE_TYPE = TypeFactory.defaultInstance().uncheckedSimpleType(Boolean.class); @@ -169,7 +170,7 @@ public class StdArraySerializers * NOTE: since it is NOT serialized as an array, can not use AsArraySerializer as base */ @JacksonStdImpl - public final static class ByteArraySerializer extends StdSerializer<byte[]> + public static class ByteArraySerializer extends StdSerializer<byte[]> { public ByteArraySerializer() { super(byte[].class); @@ -221,7 +222,7 @@ public class StdArraySerializers } @JacksonStdImpl - public final static class ShortArraySerializer extends TypedPrimitiveArraySerializer<short[]> + public static class ShortArraySerializer extends TypedPrimitiveArraySerializer<short[]> { // as above, assuming no one re-defines primitive/wrapper types private final static JavaType VALUE_TYPE = TypeFactory.defaultInstance().uncheckedSimpleType(Short.TYPE); @@ -317,7 +318,7 @@ public class StdArraySerializers * NOTE: since it is NOT serialized as an array, can not use AsArraySerializer as base */ @JacksonStdImpl - public final static class CharArraySerializer extends StdSerializer<char[]> + public static class CharArraySerializer extends StdSerializer<char[]> { public CharArraySerializer() { super(char[].class); } @@ -388,7 +389,7 @@ public class StdArraySerializers } @JacksonStdImpl - public final static class IntArraySerializer extends ArraySerializerBase<int[]> + public static class IntArraySerializer extends ArraySerializerBase<int[]> { // as above, assuming no one re-defines primitive/wrapper types private final static JavaType VALUE_TYPE = TypeFactory.defaultInstance().uncheckedSimpleType(Integer.TYPE); @@ -465,7 +466,7 @@ public class StdArraySerializers } @JacksonStdImpl - public final static class LongArraySerializer extends TypedPrimitiveArraySerializer<long[]> + public static class LongArraySerializer extends TypedPrimitiveArraySerializer<long[]> { // as above, assuming no one re-defines primitive/wrapper types private final static JavaType VALUE_TYPE = TypeFactory.defaultInstance().uncheckedSimpleType(Long.TYPE); @@ -554,7 +555,7 @@ public class StdArraySerializers } @JacksonStdImpl - public final static class FloatArraySerializer extends TypedPrimitiveArraySerializer<float[]> + public static class FloatArraySerializer extends TypedPrimitiveArraySerializer<float[]> { // as above, assuming no one re-defines primitive/wrapper types private final static JavaType VALUE_TYPE = TypeFactory.defaultInstance().uncheckedSimpleType(Float.TYPE); @@ -641,7 +642,7 @@ public class StdArraySerializers } @JacksonStdImpl - public final static class DoubleArraySerializer extends ArraySerializerBase<double[]> + public static class DoubleArraySerializer extends ArraySerializerBase<double[]> { // as above, assuming no one re-defines primitive/wrapper types private final static JavaType VALUE_TYPE = TypeFactory.defaultInstance().uncheckedSimpleType(Double.TYPE); diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java index a9e86ab57..0b435ead1 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java @@ -1,7 +1,6 @@ package com.fasterxml.jackson.databind.ser.std; import com.fasterxml.jackson.core.JsonGenerator; - import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; @@ -24,6 +23,7 @@ import java.lang.reflect.Type; * * @since 2.1 */ +@SuppressWarnings("serial") public class StdDelegatingSerializer extends StdSerializer<Object> implements ContextualSerializer, ResolvableSerializer, diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdJdkSerializers.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdJdkSerializers.java index 13ae3e3e6..f8f446844 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdJdkSerializers.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdJdkSerializers.java @@ -6,7 +6,6 @@ import java.util.*; import java.util.concurrent.atomic.*; import com.fasterxml.jackson.core.*; - import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonIntegerFormatVisitor; @@ -17,6 +16,7 @@ import com.fasterxml.jackson.databind.ser.BasicSerializerFactory; * are serializer as scalars; some using basic {@link ToStringSerializer}, * others explicit serializers. */ +@SuppressWarnings("serial") public class StdJdkSerializers { /** @@ -64,7 +64,7 @@ public class StdJdkSerializers /********************************************************** */ - public final static class AtomicBooleanSerializer + public static class AtomicBooleanSerializer extends StdScalarSerializer<AtomicBoolean> { public AtomicBooleanSerializer() { super(AtomicBoolean.class, false); } @@ -85,7 +85,7 @@ public class StdJdkSerializers } } - public final static class AtomicIntegerSerializer + public static class AtomicIntegerSerializer extends StdScalarSerializer<AtomicInteger> { public AtomicIntegerSerializer() { super(AtomicInteger.class, false); } @@ -110,7 +110,7 @@ public class StdJdkSerializers } } - public final static class AtomicLongSerializer + public static class AtomicLongSerializer extends StdScalarSerializer<AtomicLong> { public AtomicLongSerializer() { super(AtomicLong.class, false); } @@ -135,8 +135,8 @@ public class StdJdkSerializers } } } - - public final static class AtomicReferenceSerializer + + public static class AtomicReferenceSerializer extends StdSerializer<AtomicReference<?>> { public AtomicReferenceSerializer() { super(AtomicReference.class, false); } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdKeySerializers.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdKeySerializers.java index 33ea2acb6..515c08fc6 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdKeySerializers.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdKeySerializers.java @@ -7,6 +7,7 @@ import java.util.Date; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; +@SuppressWarnings("serial") public class StdKeySerializers { protected final static JsonSerializer<Object> DEFAULT_KEY_SERIALIZER = new StdKeySerializer(); |