Java 类com.fasterxml.jackson.databind.cfg.HandlerInstantiator 实例源码

项目:bowman    文件:RestOperationsFactoryTest.java   
@Test
public void createInstantiatesObjectMapperWithInlineAssociationDeserializerAwareHandlerInstantiator() {
    ObjectMapper mapper = new ObjectMapper();
    RestTemplate restTemplate = new RestTemplate();

    when(mapperFactory.create(any(HandlerInstantiator.class))).thenReturn(mapper);
    when(restTemplateFactory.create(any(ClientHttpRequestFactory.class), any(ObjectMapper.class)))
        .thenReturn(restTemplate);

    factory.create();

    ArgumentCaptor<HandlerInstantiator> handlerInstantiator = ArgumentCaptor.forClass(HandlerInstantiator.class);
    verify(mapperFactory).create(handlerInstantiator.capture());

    assertThat(handlerInstantiator.getValue().deserializerInstance(null, null, InlineAssociationDeserializer.class),
            is(anInlineAssociationDeserializerMatching(aRestOperationsMatching(restTemplate, mapper),
                    proxyFactory)));
}
项目:bowman    文件:RestOperationsFactoryTest.java   
@Test
public void createInvokesConfigurerOnObjectMapperIfPresent() {
    ObjectMapperConfigurer objectMapperConfigurer = mock(ObjectMapperConfigurer.class);
    Configuration configuration = Configuration.builder()
        .setObjectMapperConfigurer(objectMapperConfigurer)
        .build();

    ObjectMapper objectMapper = new ObjectMapper();
    when(mapperFactory.create(any(HandlerInstantiator.class)))
        .thenReturn(objectMapper);

    new RestOperationsFactory(configuration, proxyFactory, mapperFactory, restTemplateFactory)
        .create();

    verify(objectMapperConfigurer).configure(objectMapper);
}
项目:bowman    文件:ResourceDeserializerTest.java   
@Before
public void setup() {
    typeResolver = mock(TypeResolver.class);
    configuration = Configuration.build();

    instantiator = mock(HandlerInstantiator.class);

    doReturn(new ResourceDeserializer(Object.class, typeResolver, configuration))
        .when(instantiator).deserializerInstance(any(DeserializationConfig.class),
                any(Annotated.class), eq(ResourceDeserializer.class));

    mapper = new ObjectMapper();
    mapper.setHandlerInstantiator(instantiator);
    mapper.registerModule(new Jackson2HalModule());
    mapper.registerModule(new TestModule());
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
项目:QuizUpWinner    文件:POJOPropertiesCollector.java   
private PropertyNamingStrategy _findNamingStrategy()
{
  Object localObject1;
  if (this._annotationIntrospector == null)
    localObject1 = null;
  else
    localObject1 = this._annotationIntrospector.findNamingStrategy(this._classDef);
  Object localObject2 = localObject1;
  if (localObject1 == null)
    return this._config.getPropertyNamingStrategy();
  if ((localObject2 instanceof PropertyNamingStrategy))
    return (PropertyNamingStrategy)localObject2;
  if (!(localObject2 instanceof Class))
    throw new IllegalStateException("AnnotationIntrospector returned PropertyNamingStrategy definition of type " + localObject2.getClass().getName() + "; expected type PropertyNamingStrategy or Class<PropertyNamingStrategy> instead");
  Class localClass = (Class)localObject2;
  if (!PropertyNamingStrategy.class.isAssignableFrom(localClass))
    throw new IllegalStateException("AnnotationIntrospector returned Class " + localClass.getName() + "; expected Class<PropertyNamingStrategy>");
  HandlerInstantiator localHandlerInstantiator = this._config.getHandlerInstantiator();
  if (localHandlerInstantiator != null)
  {
    PropertyNamingStrategy localPropertyNamingStrategy = localHandlerInstantiator.namingStrategyInstance(this._config, this._classDef, localClass);
    if (localPropertyNamingStrategy != null)
      return localPropertyNamingStrategy;
  }
  return (PropertyNamingStrategy)ClassUtil.createInstance(localClass, this._config.canOverrideAccessModifiers());
}
项目:QuizUpWinner    文件:BasicDeserializerFactory.java   
public ValueInstantiator _valueInstantiatorInstance(DeserializationConfig paramDeserializationConfig, Annotated paramAnnotated, Object paramObject)
{
  if (paramObject == null)
    return null;
  if ((paramObject instanceof ValueInstantiator))
    return (ValueInstantiator)paramObject;
  if (!(paramObject instanceof Class))
    throw new IllegalStateException("AnnotationIntrospector returned key deserializer definition of type " + paramObject.getClass().getName() + "; expected type KeyDeserializer or Class<KeyDeserializer> instead");
  Class localClass = (Class)paramObject;
  if (localClass == NoClass.class)
    return null;
  if (!ValueInstantiator.class.isAssignableFrom(localClass))
    throw new IllegalStateException("AnnotationIntrospector returned Class " + localClass.getName() + "; expected Class<ValueInstantiator>");
  HandlerInstantiator localHandlerInstantiator = paramDeserializationConfig.getHandlerInstantiator();
  if (localHandlerInstantiator != null)
  {
    ValueInstantiator localValueInstantiator = localHandlerInstantiator.valueInstantiatorInstance(paramDeserializationConfig, paramAnnotated, localClass);
    if (localValueInstantiator != null)
      return localValueInstantiator;
  }
  return (ValueInstantiator)ClassUtil.createInstance(localClass, paramDeserializationConfig.canOverrideAccessModifiers());
}
项目:joyplus-tv    文件:DefaultSerializerProvider.java   
@Override
public ObjectIdGenerator<?> objectIdGeneratorInstance(Annotated annotated,
        ObjectIdInfo objectIdInfo)
    throws JsonMappingException
{
    Class<?> implClass = objectIdInfo.getGeneratorType();
    HandlerInstantiator hi = _config.getHandlerInstantiator();
    ObjectIdGenerator<?> gen;

    if (hi != null) {
        gen =  hi.objectIdGeneratorInstance(_config, annotated, implClass);
    } else {
        gen = (ObjectIdGenerator<?>) ClassUtil.createInstance(implClass,
                _config.canOverrideAccessModifiers());
    }
    return gen.forScope(objectIdInfo.getScope());
}
项目:joyplus-tv    文件:DefaultDeserializationContext.java   
@Override
public ObjectIdGenerator<?> objectIdGeneratorInstance(Annotated annotated,
        ObjectIdInfo objectIdInfo)
    throws JsonMappingException
{
    Class<?> implClass = objectIdInfo.getGeneratorType();
    HandlerInstantiator hi = _config.getHandlerInstantiator();
    ObjectIdGenerator<?> gen;

    if (hi != null) {
        gen = hi.objectIdGeneratorInstance(_config, annotated, implClass);
    } else {
        gen = (ObjectIdGenerator<?>) ClassUtil.createInstance(implClass,
                _config.canOverrideAccessModifiers());
    }
    return gen.forScope(objectIdInfo.getScope());
}
项目:taskana    文件:RestApplication.java   
/**
 * Needed to override JSON De-/Serializer in Jackson.
 *
 * @param handlerInstantiator
 * @return
 */
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder(HandlerInstantiator handlerInstantiator) {
    Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
    b.indentOutput(true).mixIn(Workbasket.class, WorkbasketMixIn.class);
    b.handlerInstantiator(handlerInstantiator);
    return b;
}
项目:bowman    文件:DefaultObjectMapperFactory.java   
@Override
public ObjectMapper create(HandlerInstantiator instantiator) {
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    mapper.registerModule(new Jackson2HalModule());
    mapper.registerModule(new JacksonClientModule());
    mapper.setHandlerInstantiator(instantiator);
    return mapper;
}
项目:bowman    文件:RestOperationsFactoryTest.java   
@Test
public void createReturnsRestOperations() {
    ObjectMapper mapper = new ObjectMapper();
    RestTemplate restTemplate = new RestTemplate();

    when(mapperFactory.create(any(HandlerInstantiator.class))).thenReturn(mapper);
    when(restTemplateFactory.create(clientHttpRequestFactory, mapper)).thenReturn(restTemplate);

    RestOperations restOperations = factory.create();

    assertThat(restOperations, is(aRestOperationsMatching(restTemplate, mapper)));
}
项目:bowman    文件:InlineAssociationDeserializerTest.java   
@Before
public void setup() {
    RestOperations restOperations = mock(RestOperations.class);
    ClientProxyFactory proxyFactory = new JavassistClientProxyFactory();

    instantiator = mock(HandlerInstantiator.class);

    doReturn(new InlineAssociationDeserializer<>(Object.class, restOperations, proxyFactory))
        .when(instantiator).deserializerInstance(any(DeserializationConfig.class),
                any(Annotated.class), eq(InlineAssociationDeserializer.class));

    mapper = new ObjectMapper();
    mapper.setHandlerInstantiator(instantiator);
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
项目:bowman    文件:RestOperationsTest.java   
@Before
public void setup() {
    HandlerInstantiator instantiator = mock(HandlerInstantiator.class);

    doReturn(declaredTypeResourceDeserializer()).when(instantiator).deserializerInstance(
        any(DeserializationConfig.class), any(Annotated.class), eq(ResourceDeserializer.class));

    restTemplate = mock(RestTemplate.class);
    objectMapper = new DefaultObjectMapperFactory().create(instantiator);

    restOperations = new RestOperations(restTemplate, objectMapper);
}
项目:QuizUpWinner    文件:DefaultSerializerProvider.java   
public JsonSerializer<Object> serializerInstance(Annotated paramAnnotated, Object paramObject)
{
  if (paramObject == null)
    return null;
  Object localObject;
  if ((paramObject instanceof JsonSerializer))
  {
    localObject = (JsonSerializer)paramObject;
  }
  else
  {
    if (!(paramObject instanceof Class))
      throw new IllegalStateException("AnnotationIntrospector returned serializer definition of type " + paramObject.getClass().getName() + "; expected type JsonSerializer or Class<JsonSerializer> instead");
    Class localClass = (Class)paramObject;
    if ((localClass == JsonSerializer.None.class) || (localClass == NoClass.class))
      return null;
    if (!JsonSerializer.class.isAssignableFrom(localClass))
      throw new IllegalStateException("AnnotationIntrospector returned Class " + localClass.getName() + "; expected Class<JsonSerializer>");
    HandlerInstantiator localHandlerInstantiator = this._config.getHandlerInstantiator();
    JsonSerializer localJsonSerializer;
    if (localHandlerInstantiator == null)
      localJsonSerializer = null;
    else
      localJsonSerializer = localHandlerInstantiator.serializerInstance(this._config, paramAnnotated, localClass);
    localObject = localJsonSerializer;
    if (localJsonSerializer == null)
      localObject = (JsonSerializer)ClassUtil.createInstance(localClass, this._config.canOverrideAccessModifiers());
  }
  return _handleResolvable((JsonSerializer)localObject);
}
项目:joyplus-tv    文件:DefaultSerializerProvider.java   
@Override
public JsonSerializer<Object> serializerInstance(Annotated annotated,
        Object serDef)
    throws JsonMappingException

{
    if (serDef == null) {
        return null;
    }
    JsonSerializer<?> ser;

    if (serDef instanceof JsonSerializer) {
        ser = (JsonSerializer<?>) serDef;
    } else {
        /* Alas, there's no way to force return type of "either class
         * X or Y" -- need to throw an exception after the fact
         */
        if (!(serDef instanceof Class)) {
            throw new IllegalStateException("AnnotationIntrospector returned serializer definition of type "
                    +serDef.getClass().getName()+"; expected type JsonSerializer or Class<JsonSerializer> instead");
        }
        Class<?> serClass = (Class<?>)serDef;
        // there are some known "no class" markers to consider too:
        if (serClass == JsonSerializer.None.class || serClass == NoClass.class) {
            return null;
        }
        if (!JsonSerializer.class.isAssignableFrom(serClass)) {
            throw new IllegalStateException("AnnotationIntrospector returned Class "
                    +serClass.getName()+"; expected Class<JsonSerializer>");
        }
        HandlerInstantiator hi = _config.getHandlerInstantiator();
        if (hi != null) {
            ser = hi.serializerInstance(_config, annotated, serClass);
        } else {
            ser = (JsonSerializer<?>) ClassUtil.createInstance(serClass,
                    _config.canOverrideAccessModifiers());
        }
    }
    return (JsonSerializer<Object>) _handleResolvable(ser);
}
项目:joyplus-tv    文件:POJOPropertiesCollector.java   
private PropertyNamingStrategy _findNamingStrategy()
{
    Object namingDef = (_annotationIntrospector == null)? null
            : _annotationIntrospector.findNamingStrategy(_classDef);
    if (namingDef == null) {
        return _config.getPropertyNamingStrategy();
    }
    if (namingDef instanceof PropertyNamingStrategy) {
        return (PropertyNamingStrategy) namingDef;
    }
    /* Alas, there's no way to force return type of "either class
     * X or Y" -- need to throw an exception after the fact
     */
    if (!(namingDef instanceof Class)) {
        throw new IllegalStateException("AnnotationIntrospector returned PropertyNamingStrategy definition of type "
                +namingDef.getClass().getName()+"; expected type PropertyNamingStrategy or Class<PropertyNamingStrategy> instead");
    }
    Class<?> namingClass = (Class<?>)namingDef;
    if (!PropertyNamingStrategy.class.isAssignableFrom(namingClass)) {
        throw new IllegalStateException("AnnotationIntrospector returned Class "
                +namingClass.getName()+"; expected Class<PropertyNamingStrategy>");
    }
    HandlerInstantiator hi = _config.getHandlerInstantiator();
    if (hi != null) {
        return hi.namingStrategyInstance(_config, _classDef, namingClass);
    }
    return (PropertyNamingStrategy) ClassUtil.createInstance(namingClass,
                _config.canOverrideAccessModifiers());
}
项目:joyplus-tv    文件:BasicDeserializerFactory.java   
public ValueInstantiator _valueInstantiatorInstance(DeserializationConfig config,
        Annotated annotated, Object instDef)
    throws JsonMappingException
{
    if (instDef == null) {
        return null;
    }

    ValueInstantiator inst;

    if (instDef instanceof ValueInstantiator) {
        inst = (ValueInstantiator) instDef;
    } else {
        if (!(instDef instanceof Class)) {
            throw new IllegalStateException("AnnotationIntrospector returned key deserializer definition of type "
                    +instDef.getClass().getName()
                    +"; expected type KeyDeserializer or Class<KeyDeserializer> instead");
        }
        Class<?> instClass = (Class<?>)instDef;
        if (instClass == NoClass.class) {
            return null;
        }
        if (!ValueInstantiator.class.isAssignableFrom(instClass)) {
            throw new IllegalStateException("AnnotationIntrospector returned Class "+instClass.getName()
                    +"; expected Class<ValueInstantiator>");
        }
        HandlerInstantiator hi = config.getHandlerInstantiator();
        if (hi != null) {
            inst = hi.valueInstantiatorInstance(config, annotated, instClass);
        } else {
            inst = (ValueInstantiator) ClassUtil.createInstance(instClass,
                    config.canOverrideAccessModifiers());
        }
    }
    // not resolvable or contextual, just return:
    return inst;
}
项目:QuizUpWinner    文件:SerializationConfig.java   
public final SerializationConfig with(HandlerInstantiator paramHandlerInstantiator)
{
  return _withBase(this._base.withHandlerInstantiator(paramHandlerInstantiator));
}
项目:QuizUpWinner    文件:DeserializationConfig.java   
public final DeserializationConfig with(HandlerInstantiator paramHandlerInstantiator)
{
  return _withBase(this._base.withHandlerInstantiator(paramHandlerInstantiator));
}
项目:joyplus-tv    文件:SerializationConfig.java   
@Override
public SerializationConfig with(HandlerInstantiator hi) {
    return _withBase(_base.withHandlerInstantiator(hi));
}
项目:joyplus-tv    文件:DefaultDeserializationContext.java   
@SuppressWarnings("unchecked")
@Override
public JsonDeserializer<Object> deserializerInstance(Annotated annotated,
        Object deserDef)
    throws JsonMappingException
{
    if (deserDef == null) {
        return null;
    }
    JsonDeserializer<?> deser;

    if (deserDef instanceof JsonDeserializer) {
        deser = (JsonDeserializer<?>) deserDef;
    } else {
        /* Alas, there's no way to force return type of "either class
         * X or Y" -- need to throw an exception after the fact
         */
        if (!(deserDef instanceof Class)) {
            throw new IllegalStateException("AnnotationIntrospector returned deserializer definition of type "+deserDef.getClass().getName()+"; expected type JsonDeserializer or Class<JsonDeserializer> instead");
        }
        Class<?> deserClass = (Class<?>)deserDef;
        // there are some known "no class" markers to consider too:
        if (deserClass == JsonDeserializer.None.class || deserClass == NoClass.class) {
            return null;
        }
        if (!JsonDeserializer.class.isAssignableFrom(deserClass)) {
            throw new IllegalStateException("AnnotationIntrospector returned Class "+deserClass.getName()+"; expected Class<JsonDeserializer>");
        }
        HandlerInstantiator hi = _config.getHandlerInstantiator();
        if (hi != null) {
            deser = hi.deserializerInstance(_config, annotated, deserClass);
        } else {
            deser = (JsonDeserializer<?>) ClassUtil.createInstance(deserClass,
                    _config.canOverrideAccessModifiers());
        }
    }
    // First: need to resolve
    if (deser instanceof ResolvableDeserializer) {
        ((ResolvableDeserializer) deser).resolve(this);
    }
    return (JsonDeserializer<Object>) deser;
}
项目:joyplus-tv    文件:DefaultDeserializationContext.java   
@Override
public final KeyDeserializer keyDeserializerInstance(Annotated annotated,
        Object deserDef)
    throws JsonMappingException
{
    if (deserDef == null) {
        return null;
    }

    KeyDeserializer deser;

    if (deserDef instanceof KeyDeserializer) {
        deser = (KeyDeserializer) deserDef;
    } else {
        if (!(deserDef instanceof Class)) {
            throw new IllegalStateException("AnnotationIntrospector returned key deserializer definition of type "
                    +deserDef.getClass().getName()
                    +"; expected type KeyDeserializer or Class<KeyDeserializer> instead");
        }
        Class<?> deserClass = (Class<?>)deserDef;
        // there are some known "no class" markers to consider too:
        if (deserClass == KeyDeserializer.None.class || deserClass == NoClass.class) {
            return null;
        }
        if (!KeyDeserializer.class.isAssignableFrom(deserClass)) {
            throw new IllegalStateException("AnnotationIntrospector returned Class "+deserClass.getName()
                    +"; expected Class<KeyDeserializer>");
        }
        HandlerInstantiator hi = _config.getHandlerInstantiator();
        if (hi != null) {
            deser = hi.keyDeserializerInstance(_config, annotated, deserClass);
        } else {
            deser = (KeyDeserializer) ClassUtil.createInstance(deserClass,
                    _config.canOverrideAccessModifiers());
        }
    }
    // First: need to resolve
    if (deser instanceof ResolvableDeserializer) {
        ((ResolvableDeserializer) deser).resolve(this);
    }
    return deser;
}
项目:joyplus-tv    文件:DeserializationConfig.java   
@Override
public DeserializationConfig with(HandlerInstantiator hi) {
    return _withBase(_base.withHandlerInstantiator(hi));
}
项目:joyplus-tv    文件:ObjectMapper.java   
/**
 * Method for configuring {@link HandlerInstantiator} to use for creating
 * instances of handlers (such as serializers, deserializers, type and type
 * id resolvers), given a class.
 *
 * @param hi Instantiator to use; if null, use the default implementation
 */
public Object setHandlerInstantiator(HandlerInstantiator hi)
{
    _deserializationConfig = _deserializationConfig.with(hi);
    _serializationConfig = _serializationConfig.with(hi);
    return this;
}
项目:taskana    文件:RestApplication.java   
/**
 * Needed for injection into jackson deserilizer.
 *
 * @param context
 * @return
 */
@Bean
public HandlerInstantiator handlerInstantiator(ApplicationContext context) {
    return new SpringHandlerInstantiator(context.getAutowireCapableBeanFactory());
}
项目:spring4-understanding    文件:Jackson2ObjectMapperFactoryBean.java   
/**
 * Customize the construction of Jackson handlers
 * ({@link JsonSerializer}, {@link JsonDeserializer}, {@link KeyDeserializer},
 * {@code TypeResolverBuilder} and {@code TypeIdResolver}).
 * @since 4.1.3
 * @see Jackson2ObjectMapperFactoryBean#setApplicationContext(ApplicationContext)
 */
public void setHandlerInstantiator(HandlerInstantiator handlerInstantiator) {
    this.builder.handlerInstantiator(handlerInstantiator);
}
项目:bowman    文件:ObjectMapperFactory.java   
ObjectMapper create(HandlerInstantiator instantiator);