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–4 unchanged (4 lines)
5public class InvalidEncoderException extends RuntimeException {
6
7 private final String name;
8 private final MediaCodecInfo[] availableEncoders;
9
10 public InvalidEncoderException(String name, MediaCodecInfo[] availableEncoders) {
11 super("There is no encoder having name '" + name + '"');
12 this.name = name;
13 this.availableEncoders = availableEncoders;
14 }
15
16 public String getName() {
17 return name;
…lines 18–24 unchanged (7 lines)

After

…lines 1–4 unchanged (4 lines)
5public class InvalidEncoderException extends RuntimeException {
6
7 private final String name;
8 private final MediaCodecInfo[] availableEncoders;
9
10 public InvalidEncoderException(String name, MediaCodecInfo[] availableEncoders) {
11 super("There is no encoder having name '" + name + "'");
12 this.name = name;
13 this.availableEncoders = availableEncoders;
14 }
15
16 public String getName() {
17 return name;
…lines 18–24 unchanged (7 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaCodecInfo"
; ";"
class_declaration
modifiers
public "public"
class "class"
identifier "InvalidEncoderException"
superclass
extends "extends"
type_identifier "RuntimeException"
class_body
{ "{"
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "name"
; ";"
field_declaration
modifiers
private "private"
final "final"
array_type
type_identifier "MediaCodecInfo"
dimensions
[ "["
] "]"
variable_declarator
identifier "availableEncoders"
; ";"
constructor_declaration
modifiers
public "public"
identifier "InvalidEncoderException"
formal_parameters
( "("
formal_parameter
type_identifier "String"
identifier "name"
, ","
formal_parameter
array_type
type_identifier "MediaCodecInfo"
dimensions
[ "["
] "]"
identifier "availableEncoders"
) ")"
constructor_body
{ "{"
explicit_constructor_invocation
super "super"
argument_list
( "("
binary_expression
binary_expression
string_literal
" "\""
string_fragment "There is no encoder having name '"
" "\""
+ "+"
identifier "name"
+ "+"
character_literal "'\"'"
) ")"
; ";"
expression_statement
assignment_expression
field_access
this "this"
. "."
identifier "name"
= "="
identifier "name"
; ";"
expression_statement
assignment_expression
field_access
this "this"
. "."
identifier "availableEncoders"
= "="
identifier "availableEncoders"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "name"
; ";"
} "}"
method_declaration
modifiers
public "public"
array_type
type_identifier "MediaCodecInfo"
dimensions
[ "["
] "]"
identifier "getAvailableEncoders"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "availableEncoders"
; ";"
} "}"
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaCodecInfo"
; ";"
class_declaration
modifiers
public "public"
class "class"
identifier "InvalidEncoderException"
superclass
extends "extends"
type_identifier "RuntimeException"
class_body
{ "{"
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "name"
; ";"
field_declaration
modifiers
private "private"
final "final"
array_type
type_identifier "MediaCodecInfo"
dimensions
[ "["
] "]"
variable_declarator
identifier "availableEncoders"
; ";"
constructor_declaration
modifiers
public "public"
identifier "InvalidEncoderException"
formal_parameters
( "("
formal_parameter
type_identifier "String"
identifier "name"
, ","
formal_parameter
array_type
type_identifier "MediaCodecInfo"
dimensions
[ "["
] "]"
identifier "availableEncoders"
) ")"
constructor_body
{ "{"
explicit_constructor_invocation
super "super"
argument_list
( "("
binary_expression
binary_expression
string_literal
" "\""
string_fragment "There is no encoder having name '"
" "\""
+ "+"
identifier "name"
+ "+"
string_literal
" "\""
string_fragment "'"
" "\""
) ")"
; ";"
expression_statement
assignment_expression
field_access
this "this"
. "."
identifier "name"
= "="
identifier "name"
; ";"
expression_statement
assignment_expression
field_access
this "this"
. "."
identifier "availableEncoders"
= "="
identifier "availableEncoders"
; ";"
} "}"
method_declaration
modifiers
public "public"
type_identifier "String"
identifier "getName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "name"
; ";"
} "}"
method_declaration
modifiers
public "public"
array_type
type_identifier "MediaCodecInfo"
dimensions
[ "["
] "]"
identifier "getAvailableEncoders"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "availableEncoders"
; ";"
} "}"
} "}"