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–11 unchanged (11 lines)
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17package org.apache.commons.jxpath.ri.axes;
18
19import org.apache.commons.jxpath.ri.EvalContext;
20import org.apache.commons.jxpath.ri.QName;
21import org.apache.commons.jxpath.ri.compiler.NodeNameTest;
22import org.apache.commons.jxpath.ri.compiler.NodeTest;
23import org.apache.commons.jxpath.ri.model.NodeIterator;
24import org.apache.commons.jxpath.ri.model.NodePointer;
25
26/**
27 * EvalContext that walks the "attribute::" axis.
28 *
29 * @author Dmitri Plotnikov
30 * @version $Revision$ $Date$
31 */
32public class AttributeContext extends EvalContext {
33
34 private NodeTest nodeTest;
35 private boolean setStarted = false;
36 private NodeIterator iterator;
37 private NodePointer currentNodePointer;
38
39 /**
…lines 40–68 unchanged (29 lines)
69 }
70
71 public boolean nextNode() {
72 super.setPosition(getCurrentPosition() + 1);
73 if (!setStarted) {
74 setStarted = true;
75 if (!(nodeTest instanceof NodeNameTest)) {
76 return false;
77 }
78 QName name = ((NodeNameTest) nodeTest).getNodeName();
79 iterator =
80 parentContext.getCurrentNodePointer().attributeIterator(name);
81 }
82 if (iterator == null) {
83 return false;
84 }
85 if (!iterator.setPosition(iterator.getPosition() + 1)) {
86 return false;
…lines 87–92 unchanged (6 lines)

After

…lines 1–12 unchanged (12 lines)
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17package org.apache.commons.jxpath.ri.axes;
18
19import org.apache.commons.jxpath.ri.Compiler;
20import org.apache.commons.jxpath.ri.EvalContext;
21import org.apache.commons.jxpath.ri.QName;
22import org.apache.commons.jxpath.ri.compiler.NodeNameTest;
23import org.apache.commons.jxpath.ri.compiler.NodeTest;
24import org.apache.commons.jxpath.ri.compiler.NodeTypeTest;
25import org.apache.commons.jxpath.ri.model.NodeIterator;
26import org.apache.commons.jxpath.ri.model.NodePointer;
27
28/**
29 * EvalContext that walks the "attribute::" axis.
30 *
31 * @author Dmitri Plotnikov
32 * @version $Revision$ $Date$
33 */
34public class AttributeContext extends EvalContext {
35 private static final NodeNameTest WILDCARD_TEST = new NodeNameTest(new QName(null, "*"));
36
37 private NodeTest nodeTest;
38 private boolean setStarted = false;
39 private NodeIterator iterator;
40 private NodePointer currentNodePointer;
41
…lines 42–71 unchanged (30 lines)
72 }
73
74 public boolean nextNode() {
75 super.setPosition(getCurrentPosition() + 1);
76 if (!setStarted) {
77 setStarted = true;
78 NodeNameTest nodeNameTest = null;
79 if (nodeTest instanceof NodeTypeTest) {
80 if (((NodeTypeTest) nodeTest).getNodeType() == Compiler.NODE_TYPE_NODE) {
81 nodeNameTest = WILDCARD_TEST;
82 }
83 }
84 else if (nodeTest instanceof NodeNameTest) {
85 nodeNameTest = (NodeNameTest) nodeTest;
86 }
87 if (nodeNameTest == null) {
88 return false;
89 }
90 iterator = parentContext.getCurrentNodePointer().attributeIterator(
91 nodeNameTest.getNodeName());
92 }
93 if (iterator == null) {
94 return false;
95 }
96 if (!iterator.setPosition(iterator.getPosition() + 1)) {
97 return false;
…lines 98–102 unchanged (5 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
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "axes"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "EvalContext"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "QName"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
block_comment "/**\n * EvalContext that walks the \"attribute::\" axis.\n *\n * "...
class_declaration
modifiers
public "public"
class "class"
identifier "AttributeContext"
superclass
extends "extends"
type_identifier "EvalContext"
class_body
{ "{"
field_declaration
modifiers
private "private"
type_identifier "NodeTest"
variable_declarator
identifier "nodeTest"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "setStarted"
= "="
false "false"
; ";"
field_declaration
modifiers
private "private"
type_identifier "NodeIterator"
variable_declarator
identifier "iterator"
; ";"
field_declaration
modifiers
private "private"
type_identifier "NodePointer"
variable_declarator
identifier "currentNodePointer"
; ";"
block_comment "/**\n * @param parentContext represents the previous step"...
constructor_declaration (+33 nodes collapsed)
method_declaration
modifiers
public "public"
type_identifier "NodePointer"
identifier "getCurrentNodePointer"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "currentNodePointer"
; ";"
} "}"
method_declaration (+32 nodes collapsed)
method_declaration (+77 nodes collapsed)
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "nextNode"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
method_invocation
super "super"
. "."
identifier "setPosition"
argument_list
( "("
binary_expression
method_invocation
identifier "getCurrentPosition"
argument_list
( "("
) ")"
+ "+"
decimal_integer_literal "1"
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
identifier "setStarted"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "setStarted"
= "="
true "true"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
parenthesized_expression
( "("
instanceof_expression
identifier "nodeTest"
instanceof "instanceof"
type_identifier "NodeNameTest"
) ")"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
local_variable_declaration
type_identifier "QName"
variable_declarator
identifier "name"
= "="
method_invocation
parenthesized_expression
( "("
cast_expression
( "("
type_identifier "NodeNameTest"
) ")"
identifier "nodeTest"
) ")"
. "."
identifier "getNodeName"
argument_list
( "("
) ")"
; ";"
expression_statement
assignment_expression
identifier "iterator"
= "="
method_invocation
method_invocation
identifier "parentContext"
. "."
identifier "getCurrentNodePointer"
argument_list
( "("
) ")"
. "."
identifier "attributeIterator"
argument_list
( "("
identifier "name"
) ")"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "iterator"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
if_statement (+31 nodes collapsed)
expression_statement
assignment_expression
identifier "currentNodePointer"
= "="
method_invocation
identifier "iterator"
. "."
identifier "getNodePointer"
argument_list
( "("
) ")"
; ";"
return_statement
return "return"
true "true"
; ";"
} "}"
} "}"

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
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "axes"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "Compiler"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "EvalContext"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "QName"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "apache"
. "."
identifier "commons"
. "."
identifier "jxpath"
. "."
identifier "ri"
. "."
identifier "compiler"
. "."
identifier "NodeTypeTest"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
block_comment "/**\n * EvalContext that walks the \"attribute::\" axis.\n *\n * "...
class_declaration
modifiers
public "public"
class "class"
identifier "AttributeContext"
superclass
extends "extends"
type_identifier "EvalContext"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "NodeNameTest"
variable_declarator
identifier "WILDCARD_TEST"
= "="
object_creation_expression
new "new"
type_identifier "NodeNameTest"
argument_list
( "("
object_creation_expression
new "new"
type_identifier "QName"
argument_list
( "("
null_literal "null"
, ","
string_literal
" "\""
string_fragment "*"
" "\""
) ")"
) ")"
; ";"
field_declaration
modifiers
private "private"
type_identifier "NodeTest"
variable_declarator
identifier "nodeTest"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "setStarted"
= "="
false "false"
; ";"
field_declaration
modifiers
private "private"
type_identifier "NodeIterator"
variable_declarator
identifier "iterator"
; ";"
field_declaration
modifiers
private "private"
type_identifier "NodePointer"
variable_declarator
identifier "currentNodePointer"
; ";"
block_comment "/**\n * @param parentContext represents the previous step"...
constructor_declaration (+33 nodes collapsed)
method_declaration
modifiers
public "public"
type_identifier "NodePointer"
identifier "getCurrentNodePointer"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "currentNodePointer"
; ";"
} "}"
method_declaration (+32 nodes collapsed)
method_declaration (+77 nodes collapsed)
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "nextNode"
formal_parameters
( "("
) ")"
block
{ "{"
expression_statement
method_invocation
super "super"
. "."
identifier "setPosition"
argument_list
( "("
binary_expression
method_invocation
identifier "getCurrentPosition"
argument_list
( "("
) ")"
+ "+"
decimal_integer_literal "1"
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
identifier "setStarted"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "setStarted"
= "="
true "true"
; ";"
local_variable_declaration
type_identifier "NodeNameTest"
variable_declarator
identifier "nodeNameTest"
= "="
null_literal "null"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
instanceof_expression
identifier "nodeTest"
instanceof "instanceof"
type_identifier "NodeTypeTest"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
method_invocation
parenthesized_expression
( "("
cast_expression
( "("
type_identifier "NodeTypeTest"
) ")"
identifier "nodeTest"
) ")"
. "."
identifier "getNodeType"
argument_list
( "("
) ")"
== "=="
field_access
identifier "Compiler"
. "."
identifier "NODE_TYPE_NODE"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "nodeNameTest"
= "="
identifier "WILDCARD_TEST"
; ";"
} "}"
} "}"
else "else"
if_statement
if "if"
parenthesized_expression
( "("
instanceof_expression
identifier "nodeTest"
instanceof "instanceof"
type_identifier "NodeNameTest"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "nodeNameTest"
= "="
cast_expression
( "("
type_identifier "NodeNameTest"
) ")"
identifier "nodeTest"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "nodeNameTest"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
expression_statement
assignment_expression
identifier "iterator"
= "="
method_invocation
method_invocation
identifier "parentContext"
. "."
identifier "getCurrentNodePointer"
argument_list
( "("
) ")"
. "."
identifier "attributeIterator"
argument_list
( "("
method_invocation
identifier "nodeNameTest"
. "."
identifier "getNodeName"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "iterator"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
if_statement (+31 nodes collapsed)
expression_statement
assignment_expression
identifier "currentNodePointer"
= "="
method_invocation
identifier "iterator"
. "."
identifier "getNodePointer"
argument_list
( "("
) ")"
; ";"
return_statement
return "return"
true "true"
; ";"
} "}"
} "}"