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–73 unchanged (73 lines)
74 Class<?> src = type.getRawClass();
75 Class<?> dst = _mappings.get(new ClassKey(src));
76 if (dst == null) {
77 return null;
78 }
79 // 09-Aug-2015, tatu: Instead of direct call via JavaType, better use TypeFactory
80 return type.narrowBy(dst);
81 }
82
83
84 @Override
85 public JavaType resolveAbstractType(DeserializationConfig config, JavaType type)
86 {
…lines 87–91 unchanged (5 lines)

After

…lines 1–73 unchanged (73 lines)
74 Class<?> src = type.getRawClass();
75 Class<?> dst = _mappings.get(new ClassKey(src));
76 if (dst == null) {
77 return null;
78 }
79 // 09-Aug-2015, tatu: Instead of direct call via JavaType, better use TypeFactory
80 return config.getTypeFactory().constructSpecializedType(type, dst);
81 }
82
83
84 @Override
85 public JavaType resolveAbstractType(DeserializationConfig config, JavaType type)
86 {
…lines 87–91 unchanged (5 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "module"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "lang"
. "."
identifier "reflect"
. "."
identifier "Modifier"
; ";"
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 "databind"
. "."
identifier "AbstractTypeResolver"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "DeserializationConfig"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "JavaType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "type"
. "."
identifier "ClassKey"
; ";"
block_comment "/**\n * Simple {@link AbstractTypeResolver} implementation, w"...
class_declaration
modifiers
public "public"
class "class"
identifier "SimpleAbstractTypeResolver"
superclass
extends "extends"
type_identifier "AbstractTypeResolver"
super_interfaces
implements "implements"
type_list
scoped_type_identifier
scoped_type_identifier
type_identifier "java"
. "."
type_identifier "io"
. "."
type_identifier "Serializable"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "8635483102371490919L"
; ";"
block_comment "/**\n * Mappings from super types to subtypes\n */"
field_declaration (+41 nodes collapsed)
block_comment "/**\n * Method for adding a mapping from super type to sp"...
method_declaration (+197 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "JavaType"
identifier "findTypeMapping"
formal_parameters
( "("
formal_parameter
type_identifier "DeserializationConfig"
identifier "config"
, ","
formal_parameter
type_identifier "JavaType"
identifier "type"
) ")"
block
{ "{"
line_comment "// this is the main mapping base, so let's "
local_variable_declaration
generic_type
type_identifier "Class"
type_arguments
< "<"
wildcard
? "?"
> ">"
variable_declarator
identifier "src"
= "="
method_invocation
identifier "type"
. "."
identifier "getRawClass"
argument_list
( "("
) ")"
; ";"
local_variable_declaration (+26 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "dst"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
null_literal "null"
; ";"
} "}"
line_comment "// 09-Aug-2015, tatu: Instead of direct call via JavaType, b"...
return_statement
return "return"
method_invocation
identifier "type"
. "."
identifier "narrowBy"
argument_list
( "("
identifier "dst"
) ")"
; ";"
} "}"
method_declaration (+26 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 "module"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "lang"
. "."
identifier "reflect"
. "."
identifier "Modifier"
; ";"
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 "databind"
. "."
identifier "AbstractTypeResolver"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "DeserializationConfig"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "JavaType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "type"
. "."
identifier "ClassKey"
; ";"
block_comment "/**\n * Simple {@link AbstractTypeResolver} implementation, w"...
class_declaration
modifiers
public "public"
class "class"
identifier "SimpleAbstractTypeResolver"
superclass
extends "extends"
type_identifier "AbstractTypeResolver"
super_interfaces
implements "implements"
type_list
scoped_type_identifier
scoped_type_identifier
type_identifier "java"
. "."
type_identifier "io"
. "."
type_identifier "Serializable"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "8635483102371490919L"
; ";"
block_comment "/**\n * Mappings from super types to subtypes\n */"
field_declaration (+41 nodes collapsed)
block_comment "/**\n * Method for adding a mapping from super type to sp"...
method_declaration (+197 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "JavaType"
identifier "findTypeMapping"
formal_parameters
( "("
formal_parameter
type_identifier "DeserializationConfig"
identifier "config"
, ","
formal_parameter
type_identifier "JavaType"
identifier "type"
) ")"
block
{ "{"
line_comment "// this is the main mapping base, so let's "
local_variable_declaration
generic_type
type_identifier "Class"
type_arguments
< "<"
wildcard
? "?"
> ">"
variable_declarator
identifier "src"
= "="
method_invocation
identifier "type"
. "."
identifier "getRawClass"
argument_list
( "("
) ")"
; ";"
local_variable_declaration (+26 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "dst"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
null_literal "null"
; ";"
} "}"
line_comment "// 09-Aug-2015, tatu: Instead of direct call via JavaType, b"...
return_statement
return "return"
method_invocation
method_invocation
identifier "config"
. "."
identifier "getTypeFactory"
argument_list
( "("
) ")"
. "."
identifier "constructSpecializedType"
argument_list
( "("
identifier "type"
, ","
identifier "dst"
) ")"
; ";"
} "}"
method_declaration (+26 nodes collapsed)
} "}"