diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2014-01-02 22:43:15 -0800 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2014-01-02 22:43:15 -0800 |
commit | a569a1551c480190dcd54952b2123b9dd4219c46 (patch) | |
tree | 2656c5f914a85d58b4d84ddd68db6168dc896fb9 /src/main/java/com | |
parent | 4a74985b4244caa20711fef837ce6387096d7a97 (diff) | |
download | jackson-databind-a569a1551c480190dcd54952b2123b9dd4219c46.tar.gz |
minor refactoring
Diffstat (limited to 'src/main/java/com')
3 files changed, 32 insertions, 77 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/ValueInstantiator.java b/src/main/java/com/fasterxml/jackson/databind/deser/ValueInstantiator.java index 0ca1719d5..695d11a56 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/ValueInstantiator.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/ValueInstantiator.java @@ -49,84 +49,62 @@ public abstract class ValueInstantiator * be created. */ public boolean canInstantiate() { - return - canCreateUsingDefault() - || canCreateUsingDelegate() - || canCreateFromObjectWith() - || canCreateFromString() - || canCreateFromInt() - || canCreateFromLong() - || canCreateFromDouble() - || canCreateFromBoolean() - ; + return canCreateUsingDefault() || canCreateUsingDelegate() + || canCreateFromObjectWith() || canCreateFromString() + || canCreateFromInt() || canCreateFromLong() + || canCreateFromDouble() || canCreateFromBoolean(); } /** * Method that can be called to check whether a String-based creator * is available for this instantiator */ - public boolean canCreateFromString() { - return false; - } + public boolean canCreateFromString() { return false; } /** * Method that can be called to check whether an integer (int, Integer) based * creator is available to use (to call {@link #createFromInt}). */ - public boolean canCreateFromInt() { - return false; - } + public boolean canCreateFromInt() { return false; } /** * Method that can be called to check whether a long (long, Long) based * creator is available to use (to call {@link #createFromLong}). */ - public boolean canCreateFromLong() { - return false; - } + public boolean canCreateFromLong() { return false; } /** * Method that can be called to check whether a double (double / Double) based * creator is available to use (to call {@link #createFromDouble}). */ - public boolean canCreateFromDouble() { - return false; - } + public boolean canCreateFromDouble() { return false; } /** * Method that can be called to check whether a double (boolean / Boolean) based * creator is available to use (to call {@link #createFromDouble}). */ - public boolean canCreateFromBoolean() { - return false; - } + public boolean canCreateFromBoolean() { return false; } /** * Method that can be called to check whether a default creator (constructor, * or no-arg static factory method) * is available for this instantiator */ - public boolean canCreateUsingDefault() { - return getDefaultCreator() != null; - } + public boolean canCreateUsingDefault() { return getDefaultCreator() != null; } /** * Method that can be called to check whether a delegate-based creator (single-arg * constructor or factory method) * is available for this instantiator */ - public boolean canCreateUsingDelegate() { - return false; - } + public boolean canCreateUsingDelegate() { return false; } /** * Method that can be called to check whether a property-based creator * (argument-taking constructor or factory method) * is available to instantiate values from JSON Object */ - public boolean canCreateFromObjectWith() { - return false; - } + public boolean canCreateFromObjectWith() { return false; } /** * Method called to determine types of instantiation arguments @@ -138,9 +116,7 @@ public abstract class ValueInstantiator * NOTE: all properties will be of type * {@link com.fasterxml.jackson.databind.deser.CreatorProperty}. */ - public SettableBeanProperty[] getFromObjectArguments(DeserializationConfig config) { - return null; - } + public SettableBeanProperty[] getFromObjectArguments(DeserializationConfig config) { return null; } /** * Method that can be used to determine what is the type of delegate @@ -149,9 +125,7 @@ public abstract class ValueInstantiator * specified type (using standard deserializer for that type), and * pass that to instantiator. */ - public JavaType getDelegateType(DeserializationConfig config) { - return null; - } + public JavaType getDelegateType(DeserializationConfig config) { return null; } /* /********************************************************** @@ -185,8 +159,7 @@ public abstract class ValueInstantiator */ public Object createFromObjectWith(DeserializationContext ctxt, Object[] args) throws IOException, JsonProcessingException { - throw new JsonMappingException("Can not instantiate value of type " - +getValueTypeDesc()+" with arguments"); + throw new JsonMappingException("Can not instantiate value of type "+getValueTypeDesc()+" with arguments"); } /** @@ -194,10 +167,8 @@ public abstract class ValueInstantiator * an intermediate "delegate" value to pass to createor method */ public Object createUsingDelegate(DeserializationContext ctxt, Object delegate) - throws IOException, JsonProcessingException - { - throw new JsonMappingException("Can not instantiate value of type " - +getValueTypeDesc()+" using delegate"); + throws IOException, JsonProcessingException { + throw new JsonMappingException("Can not instantiate value of type "+getValueTypeDesc()+" using delegate"); } /* @@ -253,9 +224,7 @@ public abstract class ValueInstantiator * That is, even if {@link #canCreateUsingDefault()} returns true, * this method may return null . */ - public AnnotatedWithParams getDefaultCreator() { - return null; - } + public AnnotatedWithParams getDefaultCreator() { return null; } /** * Method that can be called to try to access member (constructor, @@ -265,9 +234,7 @@ public abstract class ValueInstantiator * That is, even if {@link #canCreateUsingDelegate()} returns true, * this method may return null . */ - public AnnotatedWithParams getDelegateCreator() { - return null; - } + public AnnotatedWithParams getDelegateCreator() { return null; } /** * Method that can be called to try to access member (constructor, @@ -278,15 +245,11 @@ public abstract class ValueInstantiator * That is, even if {@link #canCreateFromObjectWith()} returns true, * this method may return null . */ - public AnnotatedWithParams getWithArgsCreator() { - return null; - } + public AnnotatedWithParams getWithArgsCreator() { return null; } /** * If an incomplete creator was found, this is the first parameter that * needs further annotation to help make the creator complete. */ - public AnnotatedParameter getIncompleteParameter() { - return null; - } + public AnnotatedParameter getIncompleteParameter() { return null; } } diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializer.java index 03ba7cdf9..b174bef5a 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializer.java @@ -17,7 +17,11 @@ import com.fasterxml.jackson.databind.util.ClassUtil; import com.fasterxml.jackson.databind.util.EnumResolver; /** - * Base class for simple key deserializers. + * Default {@link KeyDeserializer} implementation used for most {@link java.util.Map} + * types Jackson supports. + * Implemented as "chameleon" (or swiss pocket knife) class; not particularly elegant, + * but helps reduce number of classes and jar size (class metadata adds significant + * per-class overhead; much more than bytecode). */ @JacksonStdImpl public class StdKeyDeserializer extends KeyDeserializer @@ -59,10 +63,11 @@ public class StdKeyDeserializer extends KeyDeserializer public static StdKeyDeserializer forType(Class<?> raw) { int kind; - FromStringDeserializer<?> deser = null; // first common types: - if (raw == UUID.class) { + if (raw == String.class || raw == Object.class) { + return StringKD.forType(raw); + } else if (raw == UUID.class) { kind = TYPE_UUID; } else if (raw == Integer.class) { kind = TYPE_INT; @@ -86,12 +91,12 @@ public class StdKeyDeserializer extends KeyDeserializer } else if (raw == Double.class) { kind = TYPE_DOUBLE; } else if (raw == Locale.class) { - kind = TYPE_LOCALE; - deser = FromStringDeserializer.findDeserializer(Locale.class); + FromStringDeserializer<?> deser = FromStringDeserializer.findDeserializer(Locale.class); + return new StdKeyDeserializer(TYPE_LOCALE, raw, deser); } else { return null; } - return new StdKeyDeserializer(kind, raw, deser); + return new StdKeyDeserializer(kind, raw); } @Override diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializers.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializers.java index ea558d8f3..95a560efb 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializers.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdKeyDeserializers.java @@ -29,15 +29,6 @@ public class StdKeyDeserializers implements KeyDeserializers, java.io.Serializable { private static final long serialVersionUID = 923268084968181479L; - - /** - * @deprecated Since 2.2, just call <code>StdKeyDeserializer.StringKD</code> directly - */ - @Deprecated - public static KeyDeserializer constructStringKeyDeserializer(DeserializationConfig config, - JavaType type) { - return StdKeyDeserializer.StringKD.forType(type.getRawClass()); - } public static KeyDeserializer constructEnumKeyDeserializer(EnumResolver<?> enumResolver) { return new StdKeyDeserializer.EnumKD(enumResolver, null); @@ -94,10 +85,6 @@ public class StdKeyDeserializers DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException { Class<?> raw = type.getRawClass(); - // First, common types; String/Object/UUID, Int/Long, Dates - if (raw == String.class || raw == Object.class) { - return StdKeyDeserializer.StringKD.forType(raw); - } // 23-Apr-2013, tatu: Map primitive types, just in case one was given if (raw.isPrimitive()) { raw = ClassUtil.wrapperType(raw); |