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–433 unchanged (433 lines)
434 if (prop == null) {
435 continue;
436 }
437 if (!found) {
438 // 09-Jan-2017, tatu: Important: must check name slot and NOT property name,
439 // as only former is lower-case in case-insensitive case
440 found = key.equals(prop.getName());
441 if (found) {
442 // need to leave a hole here
443 _propsInOrder[_findFromOrdered(prop)] = null;
444 continue;
445 }
446 }
…lines 447–608 unchanged (162 lines)

After

…lines 1–433 unchanged (433 lines)
434 if (prop == null) {
435 continue;
436 }
437 if (!found) {
438 // 09-Jan-2017, tatu: Important: must check name slot and NOT property name,
439 // as only former is lower-case in case-insensitive case
440 found = key.equals(_hashArea[i-1]);
441 if (found) {
442 // need to leave a hole here
443 _propsInOrder[_findFromOrdered(prop)] = null;
444 continue;
445 }
446 }
…lines 447–608 unchanged (162 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 "reflect"
. "."
identifier "InvocationTargetException"
; ";"
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 "core"
. "."
identifier "JsonParser"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "core"
. "."
identifier "JsonProcessingException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "DeserializationContext"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "DeserializationFeature"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "JsonDeserializer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "JsonMappingException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "deser"
. "."
identifier "SettableBeanProperty"
; ";"
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 "NameTransformer"
; ";"
block_comment "/**\n * Helper class used for storing mapping from property n"...
class_declaration
modifiers
public "public"
class "class"
identifier "BeanPropertyMap"
super_interfaces
implements "implements"
type_list
generic_type
type_identifier "Iterable"
type_arguments
< "<"
type_identifier "SettableBeanProperty"
> ">"
, ","
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 "2L"
; ";"
block_comment "/**\n * @since 2.5\n */"
field_declaration
modifiers
protected "protected"
final "final"
boolean_type "boolean"
variable_declarator
identifier "_caseInsensitive"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "_hashMask"
; ";"
block_comment "/**\n * Number of entries stored in the hash area.\n *"...
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "_size"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "_spillCount"
; ";"
block_comment "/**\n * Hash area that contains key/property pairs in adj"...
field_declaration
modifiers
private "private"
array_type
type_identifier "Object"
dimensions
[ "["
] "]"
variable_declarator
identifier "_hashArea"
; ";"
block_comment "/**\n * Array of properties in the exact order they were "...
field_declaration
modifiers
private "private"
array_type
type_identifier "SettableBeanProperty"
dimensions
[ "["
] "]"
variable_declarator
identifier "_propsInOrder"
; ";"
constructor_declaration (+61 nodes collapsed)
block_comment "/**\n * @since 2.8\n */"
constructor_declaration (+64 nodes collapsed)
block_comment "/**\n * Mutant factory method that constructs a new insta"...
method_declaration (+42 nodes collapsed)
method_declaration (+333 nodes collapsed)
method_declaration (+98 nodes collapsed)
block_comment "/**\n * @since 2.6\n */"
method_declaration (+36 nodes collapsed)
block_comment "/**\n * Fluent copy method that creates a new instance th"...
method_declaration (+371 nodes collapsed)
method_declaration (+95 nodes collapsed)
block_comment "/**\n * Mutant factory method for constructing a map wher"...
method_declaration (+169 nodes collapsed)
block_comment "/**\n * Mutant factory method that will use this instance"...
method_declaration (+171 nodes collapsed)
block_comment "/**\n * Specialized method that can be used to replace an"...
method_declaration (+117 nodes collapsed)
method_declaration (+112 nodes collapsed)
block_comment "/**\n * Accessor for traversing over all contained proper"...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Method that will re-create initial insertion-orde"...
method_declaration
modifiers
public "public"
array_type
type_identifier "SettableBeanProperty"
dimensions
[ "["
] "]"
identifier "getPropertiesInInsertionOrder"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "_propsInOrder"
; ";"
} "}"
line_comment "// Confining this case insensitivity to this function (and t"...
line_comment "// apply a particular locale to the lower case function. Fo"...
method_declaration (+42 nodes collapsed)
block_comment "/**\n * @since 2.3\n */"
method_declaration (+102 nodes collapsed)
method_declaration (+158 nodes collapsed)
method_declaration (+230 nodes collapsed)
block_comment "/*\n /****************************************************"...
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "size"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "_size"
; ";"
} "}"
block_comment "/**\n * Specialized method for removing specified existin"...
method_declaration
modifiers
public "public"
void_type "void"
identifier "remove"
formal_parameters
( "("
formal_parameter
type_identifier "SettableBeanProperty"
identifier "propToRm"
) ")"
block
{ "{"
local_variable_declaration (+23 nodes collapsed)
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "key"
= "="
method_invocation
identifier "getPropertyName"
argument_list
( "("
identifier "propToRm"
) ")"
; ";"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "found"
= "="
false "false"
; ";"
for_statement
for "for"
( "("
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "i"
= "="
decimal_integer_literal "1"
, ","
variable_declarator
identifier "end"
= "="
field_access
identifier "_hashArea"
. "."
identifier "length"
; ";"
binary_expression
identifier "i"
< "<"
identifier "end"
; ";"
assignment_expression
identifier "i"
+= "+="
decimal_integer_literal "2"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "SettableBeanProperty"
variable_declarator
identifier "prop"
= "="
cast_expression
( "("
type_identifier "SettableBeanProperty"
) ")"
array_access
identifier "_hashArea"
[ "["
identifier "i"
] "]"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "prop"
== "=="
null_literal "null"
) ")"
block
{ "{"
continue_statement
continue "continue"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
identifier "found"
) ")"
block
{ "{"
line_comment "// 09-Jan-2017, tatu: Important: must check name slot and NO"...
line_comment "// as only former is lower-case in case-insensitive case"
expression_statement
assignment_expression
identifier "found"
= "="
method_invocation
identifier "key"
. "."
identifier "equals"
argument_list
( "("
method_invocation
identifier "prop"
. "."
identifier "getName"
argument_list
( "("
) ")"
) ")"
; ";"
if_statement (+28 nodes collapsed)
} "}"
expression_statement
method_invocation
identifier "props"
. "."
identifier "add"
argument_list
( "("
identifier "prop"
) ")"
; ";"
} "}"
if_statement (+39 nodes collapsed)
expression_statement
method_invocation
identifier "init"
argument_list
( "("
identifier "props"
) ")"
; ";"
} "}"
block_comment "/**\n * Convenience method that tries to find property wi"...
method_declaration (+107 nodes collapsed)
method_declaration (+190 nodes collapsed)
block_comment "/*\n /****************************************************"...
method_declaration (+166 nodes collapsed)
method_declaration (+205 nodes collapsed)
block_comment "/**\n * Helper method used to find exact location of a pr"...
method_declaration (+214 nodes collapsed)
method_declaration (+95 nodes collapsed)
line_comment "// Offlined version for convenience if we want to change has"...
method_declaration (+33 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 "reflect"
. "."
identifier "InvocationTargetException"
; ";"
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 "core"
. "."
identifier "JsonParser"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "core"
. "."
identifier "JsonProcessingException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "DeserializationContext"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "DeserializationFeature"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "JsonDeserializer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "JsonMappingException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "fasterxml"
. "."
identifier "jackson"
. "."
identifier "databind"
. "."
identifier "deser"
. "."
identifier "SettableBeanProperty"
; ";"
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 "NameTransformer"
; ";"
block_comment "/**\n * Helper class used for storing mapping from property n"...
class_declaration
modifiers
public "public"
class "class"
identifier "BeanPropertyMap"
super_interfaces
implements "implements"
type_list
generic_type
type_identifier "Iterable"
type_arguments
< "<"
type_identifier "SettableBeanProperty"
> ">"
, ","
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 "2L"
; ";"
block_comment "/**\n * @since 2.5\n */"
field_declaration
modifiers
protected "protected"
final "final"
boolean_type "boolean"
variable_declarator
identifier "_caseInsensitive"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "_hashMask"
; ";"
block_comment "/**\n * Number of entries stored in the hash area.\n *"...
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "_size"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "_spillCount"
; ";"
block_comment "/**\n * Hash area that contains key/property pairs in adj"...
field_declaration
modifiers
private "private"
array_type
type_identifier "Object"
dimensions
[ "["
] "]"
variable_declarator
identifier "_hashArea"
; ";"
block_comment "/**\n * Array of properties in the exact order they were "...
field_declaration
modifiers
private "private"
array_type
type_identifier "SettableBeanProperty"
dimensions
[ "["
] "]"
variable_declarator
identifier "_propsInOrder"
; ";"
constructor_declaration (+61 nodes collapsed)
block_comment "/**\n * @since 2.8\n */"
constructor_declaration (+64 nodes collapsed)
block_comment "/**\n * Mutant factory method that constructs a new insta"...
method_declaration (+42 nodes collapsed)
method_declaration (+333 nodes collapsed)
method_declaration (+98 nodes collapsed)
block_comment "/**\n * @since 2.6\n */"
method_declaration (+36 nodes collapsed)
block_comment "/**\n * Fluent copy method that creates a new instance th"...
method_declaration (+371 nodes collapsed)
method_declaration (+95 nodes collapsed)
block_comment "/**\n * Mutant factory method for constructing a map wher"...
method_declaration (+169 nodes collapsed)
block_comment "/**\n * Mutant factory method that will use this instance"...
method_declaration (+171 nodes collapsed)
block_comment "/**\n * Specialized method that can be used to replace an"...
method_declaration (+117 nodes collapsed)
method_declaration (+112 nodes collapsed)
block_comment "/**\n * Accessor for traversing over all contained proper"...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Method that will re-create initial insertion-orde"...
method_declaration
modifiers
public "public"
array_type
type_identifier "SettableBeanProperty"
dimensions
[ "["
] "]"
identifier "getPropertiesInInsertionOrder"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "_propsInOrder"
; ";"
} "}"
line_comment "// Confining this case insensitivity to this function (and t"...
line_comment "// apply a particular locale to the lower case function. Fo"...
method_declaration (+42 nodes collapsed)
block_comment "/**\n * @since 2.3\n */"
method_declaration (+102 nodes collapsed)
method_declaration (+158 nodes collapsed)
method_declaration (+230 nodes collapsed)
block_comment "/*\n /****************************************************"...
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "size"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "_size"
; ";"
} "}"
block_comment "/**\n * Specialized method for removing specified existin"...
method_declaration
modifiers
public "public"
void_type "void"
identifier "remove"
formal_parameters
( "("
formal_parameter
type_identifier "SettableBeanProperty"
identifier "propToRm"
) ")"
block
{ "{"
local_variable_declaration (+23 nodes collapsed)
local_variable_declaration
type_identifier "String"
variable_declarator
identifier "key"
= "="
method_invocation
identifier "getPropertyName"
argument_list
( "("
identifier "propToRm"
) ")"
; ";"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "found"
= "="
false "false"
; ";"
for_statement
for "for"
( "("
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "i"
= "="
decimal_integer_literal "1"
, ","
variable_declarator
identifier "end"
= "="
field_access
identifier "_hashArea"
. "."
identifier "length"
; ";"
binary_expression
identifier "i"
< "<"
identifier "end"
; ";"
assignment_expression
identifier "i"
+= "+="
decimal_integer_literal "2"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "SettableBeanProperty"
variable_declarator
identifier "prop"
= "="
cast_expression
( "("
type_identifier "SettableBeanProperty"
) ")"
array_access
identifier "_hashArea"
[ "["
identifier "i"
] "]"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "prop"
== "=="
null_literal "null"
) ")"
block
{ "{"
continue_statement
continue "continue"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
identifier "found"
) ")"
block
{ "{"
line_comment "// 09-Jan-2017, tatu: Important: must check name slot and NO"...
line_comment "// as only former is lower-case in case-insensitive case"
expression_statement
assignment_expression
identifier "found"
= "="
method_invocation
identifier "key"
. "."
identifier "equals"
argument_list
( "("
array_access
identifier "_hashArea"
[ "["
binary_expression
identifier "i"
- "-"
decimal_integer_literal "1"
] "]"
) ")"
; ";"
if_statement (+28 nodes collapsed)
} "}"
expression_statement
method_invocation
identifier "props"
. "."
identifier "add"
argument_list
( "("
identifier "prop"
) ")"
; ";"
} "}"
if_statement (+39 nodes collapsed)
expression_statement
method_invocation
identifier "init"
argument_list
( "("
identifier "props"
) ")"
; ";"
} "}"
block_comment "/**\n * Convenience method that tries to find property wi"...
method_declaration (+107 nodes collapsed)
method_declaration (+190 nodes collapsed)
block_comment "/*\n /****************************************************"...
method_declaration (+166 nodes collapsed)
method_declaration (+205 nodes collapsed)
block_comment "/**\n * Helper method used to find exact location of a pr"...
method_declaration (+214 nodes collapsed)
method_declaration (+95 nodes collapsed)
line_comment "// Offlined version for convenience if we want to change has"...
method_declaration (+33 nodes collapsed)
} "}"