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–298 unchanged (298 lines)
299 public Complex reciprocal() {
300 if (isNaN) {
301 return NaN;
302 }
303
304 if (real == 0.0 && imaginary == 0.0) {
305 return NaN;
306 }
307
308 if (isInfinite) {
309 return ZERO;
310 }
311
…lines 312–1232 unchanged (921 lines)

After

…lines 1–298 unchanged (298 lines)
299 public Complex reciprocal() {
300 if (isNaN) {
301 return NaN;
302 }
303
304 if (real == 0.0 && imaginary == 0.0) {
305 return INF;
306 }
307
308 if (isInfinite) {
309 return ZERO;
310 }
311
…lines 312–1232 unchanged (921 lines)

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 "math3"
. "."
identifier "complex"
; ";"
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 "ArrayList"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "FieldElement"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "exception"
. "."
identifier "NotPositiveException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "exception"
. "."
identifier "NullArgumentException"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "util"
. "."
identifier "FastMath"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "util"
. "."
identifier "MathUtils"
; ";"
block_comment "/**\n * Representation of a Complex number, i.e. a number whi"...
class_declaration
modifiers
public "public"
class "class"
identifier "Complex"
super_interfaces
implements "implements"
type_list
generic_type
type_identifier "FieldElement"
type_arguments
< "<"
type_identifier "Complex"
> ">"
, ","
type_identifier "Serializable"
class_body
{ "{"
block_comment "/** The square root of -1. A number representing \"0.0 + 1.0i"...
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "Complex"
variable_declarator
identifier "I"
= "="
object_creation_expression
new "new"
type_identifier "Complex"
argument_list
( "("
decimal_floating_point_literal "0.0"
, ","
decimal_floating_point_literal "1.0"
) ")"
; ";"
line_comment "// CHECKSTYLE: stop ConstantName"
block_comment "/** A complex number representing \"NaN + NaNi\" */"
field_declaration (+25 nodes collapsed)
line_comment "// CHECKSTYLE: resume ConstantName"
block_comment "/** A complex number representing \"+INF + INFi\" */"
field_declaration (+25 nodes collapsed)
block_comment "/** A complex number representing \"1.0 + 0.0i\" */"
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "Complex"
variable_declarator
identifier "ONE"
= "="
object_creation_expression
new "new"
type_identifier "Complex"
argument_list
( "("
decimal_floating_point_literal "1.0"
, ","
decimal_floating_point_literal "0.0"
) ")"
; ";"
block_comment "/** A complex number representing \"0.0 + 0.0i\" */"
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "Complex"
variable_declarator
identifier "ZERO"
= "="
object_creation_expression
new "new"
type_identifier "Complex"
argument_list
( "("
decimal_floating_point_literal "0.0"
, ","
decimal_floating_point_literal "0.0"
) ")"
; ";"
block_comment "/** Serializable version identifier */"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
unary_expression
- "-"
decimal_integer_literal "6195664516687396620L"
; ";"
block_comment "/** The imaginary part. */"
field_declaration
modifiers
private "private"
final "final"
floating_point_type
double "double"
variable_declarator
identifier "imaginary"
; ";"
block_comment "/** The real part. */"
field_declaration
modifiers
private "private"
final "final"
floating_point_type
double "double"
variable_declarator
identifier "real"
; ";"
block_comment "/** Record whether this complex number is equal to NaN. */"
field_declaration
modifiers
private "private"
final "final"
transient "transient"
boolean_type "boolean"
variable_declarator
identifier "isNaN"
; ";"
block_comment "/** Record whether this complex number is infinite. */"
field_declaration
modifiers
private "private"
final "final"
transient "transient"
boolean_type "boolean"
variable_declarator
identifier "isInfinite"
; ";"
block_comment "/**\n * Create a complex number given only the real part."...
constructor_declaration (+23 nodes collapsed)
block_comment "/**\n * Create a complex number given the real and imagin"...
constructor_declaration (+91 nodes collapsed)
block_comment "/**\n * Return the absolute value of this complex number."...
method_declaration (+200 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+75 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code ("...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Return the conjugate of this complex number.\n "...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+278 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code ("...
method_declaration (+102 nodes collapsed)
block_comment "/** {@inheritDoc} */"
method_declaration
modifiers
public "public"
type_identifier "Complex"
identifier "reciprocal"
formal_parameters
( "("
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
identifier "isNaN"
) ")"
block
{ "{"
return_statement
return "return"
identifier "NaN"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
binary_expression
identifier "real"
== "=="
decimal_floating_point_literal "0.0"
&& "&&"
binary_expression
identifier "imaginary"
== "=="
decimal_floating_point_literal "0.0"
) ")"
block
{ "{"
return_statement
return "return"
identifier "NaN"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
identifier "isInfinite"
) ")"
block
{ "{"
return_statement
return "return"
identifier "ZERO"
; ";"
} "}"
if_statement (+124 nodes collapsed)
} "}"
block_comment "/**\n * Test for the equality of two Complex objects.\n "...
method_declaration (+105 nodes collapsed)
block_comment "/**\n * Get a hashCode for the complex number.\n * Any"...
method_declaration (+58 nodes collapsed)
block_comment "/**\n * Access the imaginary part.\n *\n * @return "...
method_declaration
modifiers
public "public"
floating_point_type
double "double"
identifier "getImaginary"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "imaginary"
; ";"
} "}"
block_comment "/**\n * Access the real part.\n *\n * @return the r"...
method_declaration
modifiers
public "public"
floating_point_type
double "double"
identifier "getReal"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "real"
; ";"
} "}"
block_comment "/**\n * Checks whether either or both parts of this compl"...
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "isNaN"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "isNaN"
; ";"
} "}"
block_comment "/**\n * Checks whether either the real or imaginary part "...
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "isInfinite"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "isInfinite"
; ";"
} "}"
block_comment "/**\n * Returns a {@code Complex} whose value is {@code t"...
method_declaration (+144 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code t"...
method_declaration (+77 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code t"...
method_declaration (+96 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code ("...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+75 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+67 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+76 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+71 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+69 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+70 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * Returns of value of this complex number raised to"...
method_declaration (+50 nodes collapsed)
block_comment "/**\n * Returns of value of this complex number raised to"...
method_declaration (+38 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+69 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+69 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+163 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+42 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+162 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+162 nodes collapsed)
block_comment "/**\n * Compute the argument of this complex number.\n "...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Computes the n-th roots of this complex number.\n "...
method_declaration (+287 nodes collapsed)
block_comment "/**\n * Create a complex number given the real and imagin"...
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Create a complex number given the real and imagin"...
method_declaration (+63 nodes collapsed)
block_comment "/**\n * Create a complex number given only the real part."...
method_declaration (+46 nodes collapsed)
block_comment "/**\n * Resolve the transient fields in a deserialized Co"...
method_declaration (+23 nodes collapsed)
block_comment "/** {@inheritDoc} */"
method_declaration (+21 nodes collapsed)
block_comment "/** {@inheritDoc} */"
method_declaration (+39 nodes collapsed)
} "}"

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 "math3"
. "."
identifier "complex"
; ";"
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 "ArrayList"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "FieldElement"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "exception"
. "."
identifier "NotPositiveException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "exception"
. "."
identifier "NullArgumentException"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "util"
. "."
identifier "FastMath"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "math3"
. "."
identifier "util"
. "."
identifier "MathUtils"
; ";"
block_comment "/**\n * Representation of a Complex number, i.e. a number whi"...
class_declaration
modifiers
public "public"
class "class"
identifier "Complex"
super_interfaces
implements "implements"
type_list
generic_type
type_identifier "FieldElement"
type_arguments
< "<"
type_identifier "Complex"
> ">"
, ","
type_identifier "Serializable"
class_body
{ "{"
block_comment "/** The square root of -1. A number representing \"0.0 + 1.0i"...
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "Complex"
variable_declarator
identifier "I"
= "="
object_creation_expression
new "new"
type_identifier "Complex"
argument_list
( "("
decimal_floating_point_literal "0.0"
, ","
decimal_floating_point_literal "1.0"
) ")"
; ";"
line_comment "// CHECKSTYLE: stop ConstantName"
block_comment "/** A complex number representing \"NaN + NaNi\" */"
field_declaration (+25 nodes collapsed)
line_comment "// CHECKSTYLE: resume ConstantName"
block_comment "/** A complex number representing \"+INF + INFi\" */"
field_declaration (+25 nodes collapsed)
block_comment "/** A complex number representing \"1.0 + 0.0i\" */"
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "Complex"
variable_declarator
identifier "ONE"
= "="
object_creation_expression
new "new"
type_identifier "Complex"
argument_list
( "("
decimal_floating_point_literal "1.0"
, ","
decimal_floating_point_literal "0.0"
) ")"
; ";"
block_comment "/** A complex number representing \"0.0 + 0.0i\" */"
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "Complex"
variable_declarator
identifier "ZERO"
= "="
object_creation_expression
new "new"
type_identifier "Complex"
argument_list
( "("
decimal_floating_point_literal "0.0"
, ","
decimal_floating_point_literal "0.0"
) ")"
; ";"
block_comment "/** Serializable version identifier */"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
long "long"
variable_declarator
identifier "serialVersionUID"
= "="
unary_expression
- "-"
decimal_integer_literal "6195664516687396620L"
; ";"
block_comment "/** The imaginary part. */"
field_declaration
modifiers
private "private"
final "final"
floating_point_type
double "double"
variable_declarator
identifier "imaginary"
; ";"
block_comment "/** The real part. */"
field_declaration
modifiers
private "private"
final "final"
floating_point_type
double "double"
variable_declarator
identifier "real"
; ";"
block_comment "/** Record whether this complex number is equal to NaN. */"
field_declaration
modifiers
private "private"
final "final"
transient "transient"
boolean_type "boolean"
variable_declarator
identifier "isNaN"
; ";"
block_comment "/** Record whether this complex number is infinite. */"
field_declaration
modifiers
private "private"
final "final"
transient "transient"
boolean_type "boolean"
variable_declarator
identifier "isInfinite"
; ";"
block_comment "/**\n * Create a complex number given only the real part."...
constructor_declaration (+23 nodes collapsed)
block_comment "/**\n * Create a complex number given the real and imagin"...
constructor_declaration (+91 nodes collapsed)
block_comment "/**\n * Return the absolute value of this complex number."...
method_declaration (+200 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+75 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code ("...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Return the conjugate of this complex number.\n "...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+278 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code ("...
method_declaration (+102 nodes collapsed)
block_comment "/** {@inheritDoc} */"
method_declaration
modifiers
public "public"
type_identifier "Complex"
identifier "reciprocal"
formal_parameters
( "("
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
identifier "isNaN"
) ")"
block
{ "{"
return_statement
return "return"
identifier "NaN"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
binary_expression
identifier "real"
== "=="
decimal_floating_point_literal "0.0"
&& "&&"
binary_expression
identifier "imaginary"
== "=="
decimal_floating_point_literal "0.0"
) ")"
block
{ "{"
return_statement
return "return"
identifier "INF"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
identifier "isInfinite"
) ")"
block
{ "{"
return_statement
return "return"
identifier "ZERO"
; ";"
} "}"
if_statement (+124 nodes collapsed)
} "}"
block_comment "/**\n * Test for the equality of two Complex objects.\n "...
method_declaration (+105 nodes collapsed)
block_comment "/**\n * Get a hashCode for the complex number.\n * Any"...
method_declaration (+58 nodes collapsed)
block_comment "/**\n * Access the imaginary part.\n *\n * @return "...
method_declaration
modifiers
public "public"
floating_point_type
double "double"
identifier "getImaginary"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "imaginary"
; ";"
} "}"
block_comment "/**\n * Access the real part.\n *\n * @return the r"...
method_declaration
modifiers
public "public"
floating_point_type
double "double"
identifier "getReal"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "real"
; ";"
} "}"
block_comment "/**\n * Checks whether either or both parts of this compl"...
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "isNaN"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "isNaN"
; ";"
} "}"
block_comment "/**\n * Checks whether either the real or imaginary part "...
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "isInfinite"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "isInfinite"
; ";"
} "}"
block_comment "/**\n * Returns a {@code Complex} whose value is {@code t"...
method_declaration (+144 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code t"...
method_declaration (+77 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code t"...
method_declaration (+96 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is {@code ("...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+75 nodes collapsed)
block_comment "/**\n * Returns a {@code Complex} whose value is\n * {"...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+67 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+76 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+71 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+69 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+70 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * Returns of value of this complex number raised to"...
method_declaration (+50 nodes collapsed)
block_comment "/**\n * Returns of value of this complex number raised to"...
method_declaration (+38 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+69 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+69 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+163 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+42 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+162 nodes collapsed)
block_comment "/**\n * Compute the\n * <a href=\"http://mathworld.wolf"...
method_declaration (+162 nodes collapsed)
block_comment "/**\n * Compute the argument of this complex number.\n "...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Computes the n-th roots of this complex number.\n "...
method_declaration (+287 nodes collapsed)
block_comment "/**\n * Create a complex number given the real and imagin"...
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Create a complex number given the real and imagin"...
method_declaration (+63 nodes collapsed)
block_comment "/**\n * Create a complex number given only the real part."...
method_declaration (+46 nodes collapsed)
block_comment "/**\n * Resolve the transient fields in a deserialized Co"...
method_declaration (+23 nodes collapsed)
block_comment "/** {@inheritDoc} */"
method_declaration (+21 nodes collapsed)
block_comment "/** {@inheritDoc} */"
method_declaration (+39 nodes collapsed)
} "}"