下面列出了怎么用com.fasterxml.jackson.databind.ser.VirtualBeanPropertyWriter的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
public void virtualPropertyWriterInstanceReturnsSingleton() {
// given
VirtualProperty[] customProperties = new VirtualProperty[0];
Log4j2Lookup valueResolver = new Log4j2Lookup(null);
JacksonHandlerInstantiator handlerInstantiator = createTestHandlerInstantiator(customProperties, valueResolver);
MapperConfig config = new ObjectMapper().getSerializationConfig();
// when
VirtualBeanPropertyWriter result1 = handlerInstantiator.virtualPropertyWriterInstance(
config,
VirtualPropertiesWriter.class
);
VirtualBeanPropertyWriter result2 = handlerInstantiator.virtualPropertyWriterInstance(
config,
VirtualPropertiesWriter.class
);
// then
Assert.assertTrue(result1 == result2);
}
@Override
public VirtualBeanPropertyWriter withConfig(MapperConfig<?> config,
AnnotatedClass declaringClass, BeanPropertyDefinition propDef,
JavaType type)
{
return new CustomVProperty(propDef, declaringClass.getAnnotations(), type);
}
/** @since 4.3 */
@Override
public VirtualBeanPropertyWriter virtualPropertyWriterInstance(MapperConfig<?> config, Class<?> implClass) {
return (VirtualBeanPropertyWriter) this.beanFactory.createBean(implClass);
}
/** @since 4.3 */
@Override
public VirtualBeanPropertyWriter virtualPropertyWriterInstance(MapperConfig<?> config, Class<?> implClass) {
return (VirtualBeanPropertyWriter) this.beanFactory.createBean(implClass);
}
/** @since 4.3 */
@Override
public VirtualBeanPropertyWriter virtualPropertyWriterInstance(MapperConfig<?> config, Class<?> implClass) {
return (VirtualBeanPropertyWriter) this.beanFactory.createBean(implClass);
}
/**
* Since this method should typically not be called on this sub-type,
* default implementation simply throws an {@link IllegalStateException}.
*/
@Override
public VirtualBeanPropertyWriter withConfig(MapperConfig<?> config,
AnnotatedClass declaringClass, BeanPropertyDefinition propDef, JavaType type) {
throw new IllegalStateException("Should not be called on this type");
}
@Override
public VirtualBeanPropertyWriter withConfig(MapperConfig<?> config, AnnotatedClass declaringClass,
BeanPropertyDefinition propDef, JavaType type) {
return new MyVirtualPropertyWriter(propDef, declaringClass.getAnnotations(), type);
}
/**
* Method called to construct a {@link VirtualBeanPropertyWriter} instance
* of specified type.
*
* @since 2.5
*/
public VirtualBeanPropertyWriter virtualPropertyWriterInstance(MapperConfig<?> config,
Class<?> implClass) {
return null;
}