Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.fasterxml.jackson.databind.deser.std;
  
  import java.util.*;
  
Helper class used to contain simple/well-known key deserializers. Following kinds of Objects can be handled currently:
  • Primitive wrappers (Boolean, Byte, Char, Short, Integer, Float, Long, Double)
  • Enums (usually not needed, since EnumMap doesn't call us)
  • java.util.Date
  • java.util.Calendar
  • java.util.UUID
  • java.util.Locale
  • Anything with constructor that takes a single String arg (if not explicitly

    JsonIgnore:
    d)
  • Anything with static T valueOf(String) factory method (if not explicitly @JsonIgnore'd)
 
 public class StdKeyDeserializers
 {
     protected final HashMap<JavaTypeKeyDeserializer_keyDeserializers = new HashMap<JavaTypeKeyDeserializer>();
 
     protected StdKeyDeserializers()
     {
         add(new StdKeyDeserializer.BoolKD());
         add(new StdKeyDeserializer.ByteKD());
         add(new StdKeyDeserializer.CharKD());
         add(new StdKeyDeserializer.ShortKD());
         add(new StdKeyDeserializer.IntKD());
         add(new StdKeyDeserializer.LongKD());
         add(new StdKeyDeserializer.FloatKD());
         add(new StdKeyDeserializer.DoubleKD());
         add(new StdKeyDeserializer.DateKD());
         add(new StdKeyDeserializer.CalendarKD());
         add(new StdKeyDeserializer.UuidKD());
         add(new StdKeyDeserializer.LocaleKD());
     }
 
     private void add(StdKeyDeserializer kdeser)
     {
         Class<?> keyClass = kdeser.getKeyClass();
         /* As with other cases involving primitive types, we can use
          * default TypeFactory ok, even if it's not our first choice:
          */
         .put(TypeFactory.defaultInstance().constructType(keyClass), kdeser);
     }
 
     public static HashMap<JavaTypeKeyDeserializerconstructAll()
     {
         return new StdKeyDeserializers().;
     }
 
     /*
     /**********************************************************
     /* Dynamic factory methods
     /**********************************************************
      */
 
         return StdKeyDeserializer.StringKD.forType(type.getRawClass());
     }
     
     public static KeyDeserializer constructEnumKeyDeserializer(EnumResolver<?> enumResolver) {
         return new StdKeyDeserializer.EnumKD(enumResolvernull);
     }
 
     public static KeyDeserializer constructEnumKeyDeserializer(EnumResolver<?> enumResolver,
             AnnotatedMethod factory) {
         return new StdKeyDeserializer.EnumKD(enumResolverfactory);
     }
     
             JavaType typeJsonDeserializer<?> deser)
     {
         return new StdKeyDeserializer.DelegatingKD(type.getRawClass(), deser);
     }
     
     {
         /* We don't need full deserialization information, just need to
          * know creators.
          */
         BeanDescription beanDesc = config.introspect(type);
         // Ok, so: can we find T(String) constructor?
         Constructor<?> ctor = beanDesc.findSingleArgConstructor(String.class);
         if (ctor != null) {
             if (config.canOverrideAccessModifiers()) {
                 ClassUtil.checkAndFixAccess(ctor);
             }
            return new StdKeyDeserializer.StringCtorKeyDeserializer(ctor);
        }
        /* or if not, "static T valueOf(String)" (or equivalent marked
         * with @JsonCreator annotation?)
         */
        Method m = beanDesc.findFactoryMethod(String.class);
        if (m != null){
            if (config.canOverrideAccessModifiers()) {
                ClassUtil.checkAndFixAccess(m);
            }
            return new StdKeyDeserializer.StringFactoryKeyDeserializer(m);
        }
        // nope, no such luck...
        return null;
    }
New to GrepCode? Check out our FAQ X