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–270 unchanged (270 lines)
271 /**
272 * Recalculate the hash code after deserialization. The hash code of some
273 * keys might have change (hash codes based on the system hash code are
274 * only stable for the same process).
275 * @return the instance with recalculated hash code
276 */
277 private Object readResolve() {
278 calculateHashCode(keys);
279 return this;
280 }
281}
282

After

…lines 1–270 unchanged (270 lines)
271 /**
272 * Recalculate the hash code after deserialization. The hash code of some
273 * keys might have change (hash codes based on the system hash code are
274 * only stable for the same process).
275 * @return the instance with recalculated hash code
276 */
277 protected Object readResolve() {
278 calculateHashCode(keys);
279 return this;
280 }
281}
282

Before

program
block_comment "/*\n * Licensed to the Apache Software Foundation (ASF) under"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "collections4"
. "."
identifier "keyvalue"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "Serializable"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Arrays"
; ";"
block_comment "/**\n * A <code>MultiKey</code> allows multiple map keys to b"...
class_declaration
modifiers
public "public"
class "class"
identifier "MultiKey"
type_parameters
< "<"
type_parameter
type_identifier "K"
> ">"
super_interfaces
implements "implements"
type_list
type_identifier "Serializable"
class_body
{ "{"
line_comment "// This class could implement List, but that would confuse i"...
block_comment "/** Serialisation version */"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "4465448607415788805L"
; ";"
block_comment "/** The individual keys */"
field_declaration
modifiers
private "private"
final "final"
array_type
type_identifier "K"
dimensions
[ "["
] "]"
variable_declarator
identifier "keys"
; ";"
block_comment "/** The cached hashCode */"
field_declaration
modifiers
private "private"
transient "transient"
integral_type
int "int"
variable_declarator
identifier "hashCode"
; ";"
block_comment "/**\n * Constructor taking two keys.\n * <p>\n * Th"...
constructor_declaration (+59 nodes collapsed)
block_comment "/**\n * Constructor taking three keys.\n * <p>\n * "...
constructor_declaration (+67 nodes collapsed)
block_comment "/**\n * Constructor taking four keys.\n * <p>\n * T"...
constructor_declaration (+75 nodes collapsed)
block_comment "/**\n * Constructor taking five keys.\n * <p>\n * T"...
constructor_declaration (+83 nodes collapsed)
block_comment "/**\n * Constructor taking an array of keys which is clon"...
constructor_declaration (+28 nodes collapsed)
block_comment "/**\n * Constructor taking an array of keys, optionally c"...
constructor_declaration (+101 nodes collapsed)
line_comment "//----------------------------------------------------------"...
block_comment "/**\n * Gets a clone of the array of keys.\n * <p>\n "...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Gets the key at the specified index.\n * <p>\n "...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Gets the size of the list of keys.\n *\n * "...
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "size"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
field_access
identifier "keys"
. "."
identifier "length"
; ";"
} "}"
line_comment "//----------------------------------------------------------"...
block_comment "/**\n * Compares this object to another.\n * <p>\n "...
method_declaration (+92 nodes collapsed)
block_comment "/**\n * Gets the combined hash code that is computed from"...
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
integral_type
int "int"
identifier "hashCode"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "hashCode"
; ";"
} "}"
block_comment "/**\n * Gets a debugging string version of the key.\n "...
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Calculate the hash code of the instance using the"...
method_declaration (+71 nodes collapsed)
block_comment "/**\n * Recalculate the hash code after deserialization. "...
method_declaration
modifiers
private "private"
type_identifier "Object"
identifier "readResolve"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
method_invocation
identifier "calculateHashCode"
argument_list
( "("
identifier "keys"
) ")"
; ";"
return_statement
return "return"
this "this"
; ";"
} "}"
} "}"

After

program
block_comment "/*\n * Licensed to the Apache Software Foundation (ASF) under"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "collections4"
. "."
identifier "keyvalue"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "Serializable"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Arrays"
; ";"
block_comment "/**\n * A <code>MultiKey</code> allows multiple map keys to b"...
class_declaration
modifiers
public "public"
class "class"
identifier "MultiKey"
type_parameters
< "<"
type_parameter
type_identifier "K"
> ">"
super_interfaces
implements "implements"
type_list
type_identifier "Serializable"
class_body
{ "{"
line_comment "// This class could implement List, but that would confuse i"...
block_comment "/** Serialisation version */"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
decimal_integer_literal "4465448607415788805L"
; ";"
block_comment "/** The individual keys */"
field_declaration
modifiers
private "private"
final "final"
array_type
type_identifier "K"
dimensions
[ "["
] "]"
variable_declarator
identifier "keys"
; ";"
block_comment "/** The cached hashCode */"
field_declaration
modifiers
private "private"
transient "transient"
integral_type
int "int"
variable_declarator
identifier "hashCode"
; ";"
block_comment "/**\n * Constructor taking two keys.\n * <p>\n * Th"...
constructor_declaration (+59 nodes collapsed)
block_comment "/**\n * Constructor taking three keys.\n * <p>\n * "...
constructor_declaration (+67 nodes collapsed)
block_comment "/**\n * Constructor taking four keys.\n * <p>\n * T"...
constructor_declaration (+75 nodes collapsed)
block_comment "/**\n * Constructor taking five keys.\n * <p>\n * T"...
constructor_declaration (+83 nodes collapsed)
block_comment "/**\n * Constructor taking an array of keys which is clon"...
constructor_declaration (+28 nodes collapsed)
block_comment "/**\n * Constructor taking an array of keys, optionally c"...
constructor_declaration (+101 nodes collapsed)
line_comment "//----------------------------------------------------------"...
block_comment "/**\n * Gets a clone of the array of keys.\n * <p>\n "...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Gets the key at the specified index.\n * <p>\n "...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Gets the size of the list of keys.\n *\n * "...
method_declaration
modifiers
public "public"
integral_type
int "int"
identifier "size"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
field_access
identifier "keys"
. "."
identifier "length"
; ";"
} "}"
line_comment "//----------------------------------------------------------"...
block_comment "/**\n * Compares this object to another.\n * <p>\n "...
method_declaration (+92 nodes collapsed)
block_comment "/**\n * Gets the combined hash code that is computed from"...
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
integral_type
int "int"
identifier "hashCode"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "hashCode"
; ";"
} "}"
block_comment "/**\n * Gets a debugging string version of the key.\n "...
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Calculate the hash code of the instance using the"...
method_declaration (+71 nodes collapsed)
block_comment "/**\n * Recalculate the hash code after deserialization. "...
method_declaration
modifiers
protected "protected"
type_identifier "Object"
identifier "readResolve"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
method_invocation
identifier "calculateHashCode"
argument_list
( "("
identifier "keys"
) ")"
; ";"
return_statement
return "return"
this "this"
; ";"
} "}"
} "}"