This mapping has 1 multi-map group: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–156 unchanged (156 lines)
157 if (!delegateType.hasRawClass(type.getRawClass())) {
158 beanDesc = config.introspect(delegateType);
159 // [#359]: explicitly check (again) for @JsonSerializer...
160 ser = findSerializerFromAnnotation(prov, beanDesc.getClassInfo());
161 }
162 // [databind#731]: Should skip if nominally java.lang.Object
163 if (ser == null) {
164 ser = _createSerializer2(prov, delegateType, beanDesc, true);
165 }
166 return new StdDelegatingSerializer(conv, delegateType, ser);
167 }
168
169 protected JsonSerializer<?> _createSerializer2(SerializerProvider prov,
…lines 170–741 unchanged (572 lines)

After

…lines 1–156 unchanged (156 lines)
157 if (!delegateType.hasRawClass(type.getRawClass())) {
158 beanDesc = config.introspect(delegateType);
159 // [#359]: explicitly check (again) for @JsonSerializer...
160 ser = findSerializerFromAnnotation(prov, beanDesc.getClassInfo());
161 }
162 // [databind#731]: Should skip if nominally java.lang.Object
163 if (ser == null && !delegateType.isJavaLangObject()) {
164 ser = _createSerializer2(prov, delegateType, beanDesc, true);
165 }
166 return new StdDelegatingSerializer(conv, delegateType, ser);
167 }
168
169 protected JsonSerializer<?> _createSerializer2(SerializerProvider prov,
…lines 170–741 unchanged (572 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "ser"
; ";"
import_declaration
import "import"
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "annotation"
. "."
identifier "ObjectIdGenerator"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "annotation"
. "."
identifier "ObjectIdGenerators"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "cfg"
. "."
identifier "SerializerFactoryConfig"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "introspect"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "jsontype"
. "."
identifier "NamedType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "jsontype"
. "."
identifier "TypeResolverBuilder"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "jsontype"
. "."
identifier "TypeSerializer"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "type"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "util"
. "."
identifier "ArrayBuilders"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "util"
. "."
identifier "ClassUtil"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "util"
. "."
identifier "Converter"
; ";"
block_comment "/**\n * Factory class that can provide serializers for any re"...
class_declaration
modifiers
public "public"
class "class"
identifier "BeanSerializerFactory"
superclass
extends "extends"
type_identifier "BasicSerializerFactory"
super_interfaces
implements "implements"
type_list
scoped_type_identifier
scoped_type_identifier
type_identifier "java"
. "."
type_identifier "io"
. "."
type_identifier "Serializable"
line_comment "// since 2.1"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "1"
; ";"
block_comment "/**\n * Like {@link BasicSerializerFactory}, this factory"...
field_declaration
modifiers
public "public"
final "final"
static "static"
type_identifier "BeanSerializerFactory"
variable_declarator
identifier "instance"
= "="
object_creation_expression
new "new"
type_identifier "BeanSerializerFactory"
argument_list
( "("
null_literal "null"
) ")"
; ";"
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Constructor for creating instances with specified"...
constructor_declaration
modifiers
protected "protected"
identifier "BeanSerializerFactory"
formal_parameters
( "("
formal_parameter
type_identifier "SerializerFactoryConfig"
identifier "config"
) ")"
constructor_body
{ "{"
explicit_constructor_invocation
super "super"
argument_list
( "("
identifier "config"
) ")"
; ";"
} "}"
block_comment "/**\n * Method used by module registration functionality,"...
method_declaration (+101 nodes collapsed)
method_declaration (+29 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Main serializer constructor method. We will have "...
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
annotation
@ "@"
identifier "SuppressWarnings"
annotation_argument_list
( "("
string_literal
" "\""
string_fragment "unchecked"
" "\""
) ")"
public "public"
generic_type
type_identifier "JsonSerializer"
type_arguments
< "<"
type_identifier "Object"
> ">"
identifier "createSerializer"
formal_parameters
( "("
formal_parameter
type_identifier "SerializerProvider"
identifier "prov"
, ","
formal_parameter
type_identifier "JavaType"
identifier "origType"
) ")"
throws
throws "throws"
type_identifier "JsonMappingException"
block
{ "{"
line_comment "// Very first thing, let's check if there is explicit serial"...
local_variable_declaration
modifiers
final "final"
type_identifier "SerializationConfig"
variable_declarator
identifier "config"
= "="
method_invocation
identifier "prov"
. "."
identifier "getConfig"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
type_identifier "BeanDescription"
variable_declarator
identifier "beanDesc"
= "="
method_invocation
identifier "config"
. "."
identifier "introspect"
argument_list
( "("
identifier "origType"
) ")"
; ";"
local_variable_declaration (+26 nodes collapsed)
if_statement (+25 nodes collapsed)
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "staticTyping"
; ";"
line_comment "// Next: we may have annotations that further define types t"...
local_variable_declaration (+22 nodes collapsed)
if_statement (+67 nodes collapsed)
line_comment "// Slight detour: do we have a Converter to consider?"
local_variable_declaration
generic_type
type_identifier "Converter"
type_arguments
< "<"
type_identifier "Object"
, ","
type_identifier "Object"
> ">"
variable_declarator
identifier "conv"
= "="
method_invocation
identifier "beanDesc"
. "."
identifier "findSerializationConverter"
argument_list
( "("
) ")"
; ";"
if_statement (+37 nodes collapsed)
local_variable_declaration
type_identifier "JavaType"
variable_declarator
identifier "delegateType"
= "="
method_invocation
identifier "conv"
. "."
identifier "getOutputType"
argument_list
( "("
method_invocation
identifier "prov"
. "."
identifier "getTypeFactory"
argument_list
( "("
) ")"
) ")"
; ";"
line_comment "// One more twist, as per [Issue#288]; probably need to get "...
if_statement (+57 nodes collapsed)
line_comment "// [databind#731]: Should skip if nominally java.lang.Object"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression any 1:2
identifier "ser"
== "=="
null_literal "null"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "ser"
= "="
method_invocation
identifier "_createSerializer2"
argument_list
( "("
identifier "prov"
, ","
identifier "delegateType"
, ","
identifier "beanDesc"
, ","
true "true"
) ")"
; ";"
} "}"
return_statement
return "return"
object_creation_expression
new "new"
type_identifier "StdDelegatingSerializer"
argument_list
( "("
identifier "conv"
, ","
identifier "delegateType"
, ","
identifier "ser"
) ")"
; ";"
} "}"
method_declaration (+443 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Method that will try to construct a {@link BeanSe"...
method_declaration (+87 nodes collapsed)
block_comment "/**\n * Method called to create a type information serial"...
method_declaration (+132 nodes collapsed)
block_comment "/**\n * Method called to create a type information serial"...
method_declaration (+145 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Method called to construct serializer for seriali"...
method_declaration (+737 nodes collapsed)
method_declaration (+450 nodes collapsed)
block_comment "/**\n * Method called to construct a filtered writer, for"...
method_declaration (+41 nodes collapsed)
method_declaration (+30 nodes collapsed)
method_declaration (+24 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Helper method used to skip processing for types t"...
method_declaration (+49 nodes collapsed)
block_comment "/**\n * Method used to collect all actual serializable pr"...
method_declaration (+412 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Overridable method that can filter out properties"...
method_declaration (+190 nodes collapsed)
block_comment "/**\n * Method called to handle view information for cons"...
method_declaration (+243 nodes collapsed)
block_comment "/**\n * Method that will apply by-type limitations (as pe"...
method_declaration (+305 nodes collapsed)
block_comment "/**\n * Helper method that will remove all properties tha"...
method_declaration (+112 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Secondary helper method for constructing {@link B"...
method_declaration (+329 nodes collapsed)
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "ser"
; ";"
import_declaration
import "import"
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "annotation"
. "."
identifier "ObjectIdGenerator"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "annotation"
. "."
identifier "ObjectIdGenerators"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "cfg"
. "."
identifier "SerializerFactoryConfig"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "introspect"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "jsontype"
. "."
identifier "NamedType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "jsontype"
. "."
identifier "TypeResolverBuilder"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "jsontype"
. "."
identifier "TypeSerializer"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "type"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "util"
. "."
identifier "ArrayBuilders"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "util"
. "."
identifier "ClassUtil"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "util"
. "."
identifier "Converter"
; ";"
block_comment "/**\n * Factory class that can provide serializers for any re"...
class_declaration
modifiers
public "public"
class "class"
identifier "BeanSerializerFactory"
superclass
extends "extends"
type_identifier "BasicSerializerFactory"
super_interfaces
implements "implements"
type_list
scoped_type_identifier
scoped_type_identifier
type_identifier "java"
. "."
type_identifier "io"
. "."
type_identifier "Serializable"
line_comment "// since 2.1"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "1"
; ";"
block_comment "/**\n * Like {@link BasicSerializerFactory}, this factory"...
field_declaration
modifiers
public "public"
final "final"
static "static"
type_identifier "BeanSerializerFactory"
variable_declarator
identifier "instance"
= "="
object_creation_expression
new "new"
type_identifier "BeanSerializerFactory"
argument_list
( "("
null_literal "null"
) ")"
; ";"
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Constructor for creating instances with specified"...
constructor_declaration
modifiers
protected "protected"
identifier "BeanSerializerFactory"
formal_parameters
( "("
formal_parameter
type_identifier "SerializerFactoryConfig"
identifier "config"
) ")"
constructor_body
{ "{"
explicit_constructor_invocation
super "super"
argument_list
( "("
identifier "config"
) ")"
; ";"
} "}"
block_comment "/**\n * Method used by module registration functionality,"...
method_declaration (+101 nodes collapsed)
method_declaration (+29 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Main serializer constructor method. We will have "...
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
annotation
@ "@"
identifier "SuppressWarnings"
annotation_argument_list
( "("
string_literal
" "\""
string_fragment "unchecked"
" "\""
) ")"
public "public"
generic_type
type_identifier "JsonSerializer"
type_arguments
< "<"
type_identifier "Object"
> ">"
identifier "createSerializer"
formal_parameters
( "("
formal_parameter
type_identifier "SerializerProvider"
identifier "prov"
, ","
formal_parameter
type_identifier "JavaType"
identifier "origType"
) ")"
throws
throws "throws"
type_identifier "JsonMappingException"
block
{ "{"
line_comment "// Very first thing, let's check if there is explicit serial"...
local_variable_declaration
modifiers
final "final"
type_identifier "SerializationConfig"
variable_declarator
identifier "config"
= "="
method_invocation
identifier "prov"
. "."
identifier "getConfig"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
type_identifier "BeanDescription"
variable_declarator
identifier "beanDesc"
= "="
method_invocation
identifier "config"
. "."
identifier "introspect"
argument_list
( "("
identifier "origType"
) ")"
; ";"
local_variable_declaration (+26 nodes collapsed)
if_statement (+25 nodes collapsed)
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "staticTyping"
; ";"
line_comment "// Next: we may have annotations that further define types t"...
local_variable_declaration (+22 nodes collapsed)
if_statement (+67 nodes collapsed)
line_comment "// Slight detour: do we have a Converter to consider?"
local_variable_declaration
generic_type
type_identifier "Converter"
type_arguments
< "<"
type_identifier "Object"
, ","
type_identifier "Object"
> ">"
variable_declarator
identifier "conv"
= "="
method_invocation
identifier "beanDesc"
. "."
identifier "findSerializationConverter"
argument_list
( "("
) ")"
; ";"
if_statement (+37 nodes collapsed)
local_variable_declaration
type_identifier "JavaType"
variable_declarator
identifier "delegateType"
= "="
method_invocation
identifier "conv"
. "."
identifier "getOutputType"
argument_list
( "("
method_invocation
identifier "prov"
. "."
identifier "getTypeFactory"
argument_list
( "("
) ")"
) ")"
; ";"
line_comment "// One more twist, as per [Issue#288]; probably need to get "...
if_statement (+57 nodes collapsed)
line_comment "// [databind#731]: Should skip if nominally java.lang.Object"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression any 1:2
binary_expression any 1:2
identifier "ser"
== "=="
null_literal "null"
&& "&&"
unary_expression
! "!"
method_invocation
identifier "delegateType"
. "."
identifier "isJavaLangObject"
argument_list
( "("
) ")"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "ser"
= "="
method_invocation
identifier "_createSerializer2"
argument_list
( "("
identifier "prov"
, ","
identifier "delegateType"
, ","
identifier "beanDesc"
, ","
true "true"
) ")"
; ";"
} "}"
return_statement
return "return"
object_creation_expression
new "new"
type_identifier "StdDelegatingSerializer"
argument_list
( "("
identifier "conv"
, ","
identifier "delegateType"
, ","
identifier "ser"
) ")"
; ";"
} "}"
method_declaration (+443 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Method that will try to construct a {@link BeanSe"...
method_declaration (+87 nodes collapsed)
block_comment "/**\n * Method called to create a type information serial"...
method_declaration (+132 nodes collapsed)
block_comment "/**\n * Method called to create a type information serial"...
method_declaration (+145 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Method called to construct serializer for seriali"...
method_declaration (+737 nodes collapsed)
method_declaration (+450 nodes collapsed)
block_comment "/**\n * Method called to construct a filtered writer, for"...
method_declaration (+41 nodes collapsed)
method_declaration (+30 nodes collapsed)
method_declaration (+24 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Helper method used to skip processing for types t"...
method_declaration (+49 nodes collapsed)
block_comment "/**\n * Method used to collect all actual serializable pr"...
method_declaration (+412 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Overridable method that can filter out properties"...
method_declaration (+190 nodes collapsed)
block_comment "/**\n * Method called to handle view information for cons"...
method_declaration (+243 nodes collapsed)
block_comment "/**\n * Method that will apply by-type limitations (as pe"...
method_declaration (+305 nodes collapsed)
block_comment "/**\n * Helper method that will remove all properties tha"...
method_declaration (+112 nodes collapsed)
block_comment "/*\n /****************************************************"...
block_comment "/**\n * Secondary helper method for constructing {@link B"...
method_declaration (+329 nodes collapsed)
} "}"