protected BeanPropertyWriter _constructWriter(SerializationConfig config, TypeBindings typeContext,
PropertyBuilder pb, boolean staticTyping, String name, AnnotatedMember accessor)
throws JsonMappingException
{
if (config.isEnabled(SerializationConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS)) {
accessor.fixAccess();
}
JavaType type = accessor.getType(typeContext);
BeanProperty.Std property = new BeanProperty.Std(name, type, pb.getClassAnnotations(), accessor);
JsonSerializer<Object> annotatedSerializer = findSerializerFromAnnotation(config, accessor, property);
TypeSerializer contentTypeSer = null;
if (ClassUtil.isCollectionMapOrArray(type.getRawClass())) {
contentTypeSer = findPropertyContentTypeSerializer(type, config, accessor, property);
}
TypeSerializer typeSer = findPropertyTypeSerializer(type, config, accessor, property);
BeanPropertyWriter pbw = pb.buildWriter(name, type, annotatedSerializer,
typeSer, contentTypeSer, accessor, staticTyping);
AnnotationIntrospector intr = config.getAnnotationIntrospector();
pbw.setViews(intr.findSerializationViews(accessor));
return pbw;
}