This mapping has 8 all-to-all groups: every node on one side corresponds to every node on the other, and none is deleted or inserted. Each member carries an all N:M badge; selecting one highlights all of its counterparts, in the tree and in the code view alike.

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–18 unchanged (18 lines)
19
20import java.net.MalformedURLException;
21import java.net.URL;
22
23import java.util.Date;
24
25import org.apache.commons.lang.math.NumberUtils;
26/**
27 * This is a temporary implementation. TypeHandler will handle the
28 * pluggableness of OptionTypes and it will direct all of these types
29 * of conversion functionalities to ConvertUtils component in Commons
30 * alreayd. BeanUtils I think.
31 *
…lines 32–155 unchanged (124 lines)
156 * is not a number, null is returned.
157 */
158 public static Number createNumber(String str)
159 {
160 try
161 {
162 return NumberUtils.createNumber(str);
163 }
164 catch (NumberFormatException nfe)
165 {
166 System.err.println(nfe.getMessage());
167 }
168
…lines 169–256 unchanged (88 lines)

After

…lines 1–17 unchanged (17 lines)
18import java.io.File;
19
20import java.net.MalformedURLException;
21import java.net.URL;
22
23import java.util.Date;
24
25/**
26 * This is a temporary implementation. TypeHandler will handle the
27 * pluggableness of OptionTypes and it will direct all of these types
28 * of conversion functionalities to ConvertUtils component in Commons
29 * alreayd. BeanUtils I think.
30 *
…lines 31–154 unchanged (124 lines)
155 * is not a number, null is returned.
156 */
157 public static Number createNumber(String str)
158 {
159 try
160 {
161 if( str != null )
162 {
163 if( str.indexOf('.') != -1 )
164 {
165 return Double.valueOf(str);
166 }
167 else
168 {
169 return Long.valueOf(str);
170 }
171 }
172 }
173 catch (NumberFormatException nfe)
174 {
175 System.err.println(nfe.getMessage());
176 }
177
…lines 178–265 unchanged (88 lines)

Before

program
block_comment "/*\n * Copyright 1999-2005 The Apache Software Foundation.\n *"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "cli"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "File"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "net"
. "."
identifier "MalformedURLException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "net"
. "."
identifier "URL"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Date"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "lang"
. "."
identifier "math"
. "."
identifier "NumberUtils"
; ";"
block_comment "/**\n * This is a temporary implementation. TypeHandler will"...
class_declaration
modifiers
public "public"
class "class"
identifier "TypeHandler"
class_body
{ "{"
block_comment "/**\n * <p>Returns the <code>Object</code> of type <code>"...
method_declaration (+34 nodes collapsed)
block_comment "/**\n * <p>Returns the <code>Object</code> of type <code>"...
method_declaration (+246 nodes collapsed)
block_comment "/**\n * <p>Create an Object from the classname and empty"...
method_declaration (+170 nodes collapsed)
block_comment "/**\n * <p>Create a number from a String. If a . is prese"...
method_declaration
modifiers
public "public"
static "static"
type_identifier "Number"
identifier "createNumber"
formal_parameters
( "("
formal_parameter
type_identifier "String"
identifier "str"
) ")"
block
{ "{"
try_statement
try "try"
block
{ "{"
return_statement all 1:2
return "return" all 1:2
method_invocation all 1:2
identifier "NumberUtils"
. "."
identifier "createNumber"
argument_list all 1:2
( "(" all 1:2
identifier "str" all 1:2
) ")" all 1:2
; ";" all 1:2
} "}"
catch_clause (+30 nodes collapsed)
return_statement
return "return"
null_literal "null"
; ";"
} "}"
block_comment "/**\n * <p>Returns the class whose name is <code>str</cod"...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * <p>Returns the date represented by <code>str</cod"...
method_declaration (+57 nodes collapsed)
block_comment "/**\n * <p>Returns the URL represented by <code>str</code"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * <p>Returns the File represented by <code>str</cod"...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * <p>Returns the File[] represented by <code>str</c"...
method_declaration (+25 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 1999-2005 The Apache Software Foundation.\n *"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "cli"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "File"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "net"
. "."
identifier "MalformedURLException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "net"
. "."
identifier "URL"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Date"
; ";"
block_comment "/**\n * This is a temporary implementation. TypeHandler will"...
class_declaration
modifiers
public "public"
class "class"
identifier "TypeHandler"
class_body
{ "{"
block_comment "/**\n * <p>Returns the <code>Object</code> of type <code>"...
method_declaration (+34 nodes collapsed)
block_comment "/**\n * <p>Returns the <code>Object</code> of type <code>"...
method_declaration (+246 nodes collapsed)
block_comment "/**\n * <p>Create an Object from the classname and empty"...
method_declaration (+170 nodes collapsed)
block_comment "/**\n * <p>Create a number from a String. If a . is prese"...
method_declaration
modifiers
public "public"
static "static"
type_identifier "Number"
identifier "createNumber"
formal_parameters
( "("
formal_parameter
type_identifier "String"
identifier "str"
) ")"
block
{ "{"
try_statement
try "try"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "str"
!= "!="
null_literal "null"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
method_invocation
identifier "str"
. "."
identifier "indexOf"
argument_list
( "("
character_literal "'.'"
) ")"
!= "!="
unary_expression
- "-"
decimal_integer_literal "1"
) ")"
block
{ "{"
return_statement all 1:2
return "return" all 1:2
method_invocation all 1:2
identifier "Double"
. "."
identifier "valueOf"
argument_list all 1:2
( "(" all 1:2
identifier "str" all 1:2
) ")" all 1:2
; ";" all 1:2
} "}"
else "else"
block
{ "{"
return_statement all 1:2
return "return" all 1:2
method_invocation all 1:2
identifier "Long"
. "."
identifier "valueOf"
argument_list all 1:2
( "(" all 1:2
identifier "str" all 1:2
) ")" all 1:2
; ";" all 1:2
} "}"
} "}"
} "}"
catch_clause (+30 nodes collapsed)
return_statement
return "return"
null_literal "null"
; ";"
} "}"
block_comment "/**\n * <p>Returns the class whose name is <code>str</cod"...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * <p>Returns the date represented by <code>str</cod"...
method_declaration (+57 nodes collapsed)
block_comment "/**\n * <p>Returns the URL represented by <code>str</code"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * <p>Returns the File represented by <code>str</cod"...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * <p>Returns the File[] represented by <code>str</c"...
method_declaration (+25 nodes collapsed)
} "}"