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

1package com.fasterxml.jackson.databind.deser.impl;
2
3import java.io.IOException;
4import java.lang.annotation.Annotation;
5
6import com.fasterxml.jackson.core.JsonParser;
7import com.fasterxml.jackson.databind.*;
8import com.fasterxml.jackson.databind.deser.*;
9import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
10
11/**
12 * Specialized {@link SettableBeanProperty} implementation used
13 * for virtual property that represents Object Id that is used
…lines 14–71 unchanged (58 lines)
72 }
73
74 @Override
75 public Object deserializeSetAndReturn(JsonParser p,
76 DeserializationContext ctxt, Object instance) throws IOException
77 {
78 Object id = _valueDeserializer.deserialize(p, ctxt);
79 /* 02-Apr-2015, tatu: Actually, as per [databind#742], let it be;
80 * missing or null id is needed for some cases, such as cases where id
81 * will be generated externally, at a later point, and is not available
82 * quite yet. Typical use case is with DB inserts.
83 */
84 // note: no null checks (unlike usually); deserializer should fail if one found
85 if (id == null) {
86 return null;
87 }
88 ReadableObjectId roid = ctxt.findObjectId(id, _objectIdReader.generator, _objectIdReader.resolver);
89 roid.bindItem(instance);
90 // also: may need to set a property value as well
91 SettableBeanProperty idProp = _objectIdReader.idProperty;
…lines 92–114 unchanged (23 lines)

After

1package com.fasterxml.jackson.databind.deser.impl;
2
3import java.io.IOException;
4import java.lang.annotation.Annotation;
5
6import com.fasterxml.jackson.core.JsonParser;
7import com.fasterxml.jackson.core.JsonToken;
8import com.fasterxml.jackson.databind.*;
9import com.fasterxml.jackson.databind.deser.*;
10import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
11
12/**
13 * Specialized {@link SettableBeanProperty} implementation used
…lines 14–78 unchanged (65 lines)
79 /* 02-Apr-2015, tatu: Actually, as per [databind#742], let it be;
80 * missing or null id is needed for some cases, such as cases where id
81 * will be generated externally, at a later point, and is not available
82 * quite yet. Typical use case is with DB inserts.
83 */
84 // note: no null checks (unlike usually); deserializer should fail if one found
85 if (p.hasToken(JsonToken.VALUE_NULL)) {
86 return null;
87 }
88 Object id = _valueDeserializer.deserialize(p, ctxt);
89 ReadableObjectId roid = ctxt.findObjectId(id, _objectIdReader.generator, _objectIdReader.resolver);
90 roid.bindItem(instance);
91 // also: may need to set a property value as well
92 SettableBeanProperty idProp = _objectIdReader.idProperty;
93 if (idProp != null) {
94 return idProp.setAndReturn(instance, id);
…lines 95–115 unchanged (21 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "deser"
. "."
identifier "impl"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "lang"
. "."
identifier "annotation"
. "."
identifier "Annotation"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "core"
. "."
identifier "JsonParser"
; ";"
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
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "deser"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "introspect"
. "."
identifier "AnnotatedMember"
; ";"
block_comment "/**\n * Specialized {@link SettableBeanProperty} implementati"...
class_declaration
modifiers
public "public"
final "final"
class "class"
identifier "ObjectIdValueProperty"
superclass
extends "extends"
type_identifier "SettableBeanProperty"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "1L"
; ";"
field_declaration
modifiers
protected "protected"
final "final"
type_identifier "ObjectIdReader"
variable_declarator
identifier "_objectIdReader"
; ";"
constructor_declaration (+51 nodes collapsed)
constructor_declaration (+41 nodes collapsed)
constructor_declaration (+35 nodes collapsed)
method_declaration (+29 nodes collapsed)
method_declaration (+35 nodes collapsed)
line_comment "// // // BeanProperty impl"
method_declaration (+34 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "AnnotatedMember"
identifier "getMember"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
null_literal "null"
; ";"
} "}"
block_comment "/*\n /****************************************************"...
method_declaration (+40 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "Object"
identifier "deserializeSetAndReturn"
formal_parameters
( "("
formal_parameter
type_identifier "JsonParser"
identifier "p"
, ","
formal_parameter
type_identifier "DeserializationContext"
identifier "ctxt"
, ","
formal_parameter
type_identifier "Object"
identifier "instance"
) ")"
throws
throws "throws"
type_identifier "IOException"
block
{ "{"
local_variable_declaration
type_identifier "Object"
variable_declarator
identifier "id"
= "="
method_invocation
identifier "_valueDeserializer"
. "."
identifier "deserialize"
argument_list
( "("
identifier "p"
, ","
identifier "ctxt"
) ")"
; ";"
block_comment "/* 02-Apr-2015, tatu: Actually, as per [databind#742], let i"...
line_comment "// note: no null checks (unlike usually); deserializer shoul"...
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "id"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
null_literal "null"
; ";"
} "}"
local_variable_declaration (+24 nodes collapsed)
expression_statement
method_invocation
identifier "roid"
. "."
identifier "bindItem"
argument_list
( "("
identifier "instance"
) ")"
; ";"
line_comment "// also: may need to set a property value as well"
local_variable_declaration
type_identifier "SettableBeanProperty"
variable_declarator
identifier "idProp"
= "="
field_access
identifier "_objectIdReader"
. "."
identifier "idProperty"
; ";"
if_statement (+25 nodes collapsed)
return_statement
return "return"
identifier "instance"
; ";"
} "}"
method_declaration (+34 nodes collapsed)
method_declaration (+72 nodes collapsed)
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "deser"
. "."
identifier "impl"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "lang"
. "."
identifier "annotation"
. "."
identifier "Annotation"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "core"
. "."
identifier "JsonParser"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "core"
. "."
identifier "JsonToken"
; ";"
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
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "deser"
. "."
asterisk
* "*"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "introspect"
. "."
identifier "AnnotatedMember"
; ";"
block_comment "/**\n * Specialized {@link SettableBeanProperty} implementati"...
class_declaration
modifiers
public "public"
final "final"
class "class"
identifier "ObjectIdValueProperty"
superclass
extends "extends"
type_identifier "SettableBeanProperty"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "1L"
; ";"
field_declaration
modifiers
protected "protected"
final "final"
type_identifier "ObjectIdReader"
variable_declarator
identifier "_objectIdReader"
; ";"
constructor_declaration (+51 nodes collapsed)
constructor_declaration (+41 nodes collapsed)
constructor_declaration (+35 nodes collapsed)
method_declaration (+29 nodes collapsed)
method_declaration (+35 nodes collapsed)
line_comment "// // // BeanProperty impl"
method_declaration (+34 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "AnnotatedMember"
identifier "getMember"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
null_literal "null"
; ";"
} "}"
block_comment "/*\n /****************************************************"...
method_declaration (+40 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "Object"
identifier "deserializeSetAndReturn"
formal_parameters
( "("
formal_parameter
type_identifier "JsonParser"
identifier "p"
, ","
formal_parameter
type_identifier "DeserializationContext"
identifier "ctxt"
, ","
formal_parameter
type_identifier "Object"
identifier "instance"
) ")"
throws
throws "throws"
type_identifier "IOException"
block
{ "{"
block_comment "/* 02-Apr-2015, tatu: Actually, as per [databind#742], let i"...
line_comment "// note: no null checks (unlike usually); deserializer shoul"...
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
identifier "p"
. "."
identifier "hasToken"
argument_list
( "("
field_access
identifier "JsonToken"
. "."
identifier "VALUE_NULL"
) ")"
) ")"
block
{ "{"
return_statement
return "return"
null_literal "null"
; ";"
} "}"
local_variable_declaration
type_identifier "Object"
variable_declarator
identifier "id"
= "="
method_invocation
identifier "_valueDeserializer"
. "."
identifier "deserialize"
argument_list
( "("
identifier "p"
, ","
identifier "ctxt"
) ")"
; ";"
local_variable_declaration (+24 nodes collapsed)
expression_statement
method_invocation
identifier "roid"
. "."
identifier "bindItem"
argument_list
( "("
identifier "instance"
) ")"
; ";"
line_comment "// also: may need to set a property value as well"
local_variable_declaration
type_identifier "SettableBeanProperty"
variable_declarator
identifier "idProp"
= "="
field_access
identifier "_objectIdReader"
. "."
identifier "idProperty"
; ";"
if_statement (+25 nodes collapsed)
return_statement
return "return"
identifier "instance"
; ";"
} "}"
method_declaration (+34 nodes collapsed)
method_declaration (+72 nodes collapsed)
} "}"