use the children axis instead of getChildNodes([ContentRange])
Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DeepCopyTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DeepCopyTest.java
index 071aa7d..9c3535c 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DeepCopyTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DeepCopyTest.java
@@ -11,10 +11,12 @@
package org.eclipse.vex.core.internal.dom;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertTrue;
+import java.util.Iterator;
import java.util.List;
import org.junit.Test;
@@ -102,11 +104,11 @@
final DeepCopy deepCopy = new DeepCopy(parent);
final Element copiedParent = (Element) deepCopy.getNodes().get(0);
- final List<Node> copiedChildNodes = copiedParent.getChildNodes();
+ final Iterator<Node> copiedChildren = copiedParent.children().iterator();
- assertEquals(2, copiedChildNodes.size());
- assertEquals("1", ((Element) copiedChildNodes.get(0)).getAttribute("order").getValue());
- assertEquals("2", ((Element) copiedChildNodes.get(1)).getAttribute("order").getValue());
+ assertEquals("1", ((Element) copiedChildren.next()).getAttribute("order").getValue());
+ assertEquals("2", ((Element) copiedChildren.next()).getAttribute("order").getValue());
+ assertFalse(copiedChildren.hasNext());
}
@Test
@@ -132,18 +134,12 @@
final DeepCopy deepCopy = new DeepCopy(parent);
final Element copiedParent = (Element) deepCopy.getNodes().get(0);
- final List<Node> copiedChildNodes = copiedParent.getChildNodes();
+ final Iterator<Node> copiedChildren = copiedParent.children().iterator();
- assertEquals(3, copiedChildNodes.size());
- assertTrue(copiedChildNodes.get(0).isAssociated());
- assertTrue(copiedChildNodes.get(0) instanceof Element);
- assertEquals("Hello", copiedChildNodes.get(0).getText());
- assertTrue(copiedChildNodes.get(1).isAssociated());
- assertTrue(copiedChildNodes.get(1) instanceof Text);
- assertEquals(" New ", copiedChildNodes.get(1).getText());
- assertTrue(copiedChildNodes.get(2).isAssociated());
- assertTrue(copiedChildNodes.get(2) instanceof Element);
- assertEquals("World", copiedChildNodes.get(2).getText());
+ assertNodeIsAssociatedElementWithText("Hello", copiedChildren.next());
+ assertNodeIsAssociatedText(" New ", copiedChildren.next());
+ assertNodeIsAssociatedElementWithText("World", copiedChildren.next());
+ assertFalse(copiedChildren.hasNext());
}
@Test
@@ -226,11 +222,22 @@
final DeepCopy deepCopy = new DeepCopy(parent);
final Element copiedParent = (Element) deepCopy.getNodes().get(0);
- final List<Node> copiedChildNodes = copiedParent.getChildNodes();
+ final Iterator<Node> copiedChildren = copiedParent.children().iterator();
- assertEquals(2, copiedChildNodes.size());
- assertEquals("Hello", copiedChildNodes.get(0).getText());
- assertEquals("World", copiedChildNodes.get(1).getText());
+ assertEquals("Hello", copiedChildren.next().getText());
+ assertEquals("World", copiedChildren.next().getText());
+ assertFalse(copiedChildren.hasNext());
}
+ private static void assertNodeIsAssociatedElementWithText(final String expectedText, final Node actualNode) {
+ assertTrue(actualNode.isAssociated());
+ assertTrue(actualNode instanceof Element);
+ assertEquals(expectedText, actualNode.getText());
+ }
+
+ private static void assertNodeIsAssociatedText(final String expectedText, final Node actualNode) {
+ assertTrue(actualNode.isAssociated());
+ assertTrue(actualNode instanceof Text);
+ assertEquals(expectedText, actualNode.getText());
+ }
}
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentFragmentTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentFragmentTest.java
index 9d81560..2bc078b 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentFragmentTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentFragmentTest.java
@@ -11,13 +11,14 @@
package org.eclipse.vex.core.internal.dom;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collections;
-import java.util.List;
+import java.util.Iterator;
import org.eclipse.core.runtime.AssertionFailedException;
import org.junit.Test;
@@ -47,10 +48,9 @@
final GapContent content = new GapContent(3);
content.insertText(0, "abc");
final DocumentFragment fragment = new DocumentFragment(content, Collections.<Node> emptyList());
- final List<Node> childNodes = fragment.getChildNodes();
- assertEquals(1, childNodes.size());
- final Node child = childNodes.get(0);
- assertTrue(child instanceof Text);
+ final Iterator<Node> actualChildren = fragment.children().iterator();
+ assertTrue(actualChildren.next() instanceof Text);
+ assertFalse(actualChildren.hasNext());
}
@Test
@@ -66,8 +66,10 @@
child2.associate(content, new ContentRange(2, 3));
final DocumentFragment fragment = new DocumentFragment(content, Arrays.<Node> asList(child1, child2));
- assertSame(child1, fragment.getChildNodes().get(0));
- assertSame(child2, fragment.getChildNodes().get(1));
+ final Iterator<Node> actualChildren = fragment.children().iterator();
+ assertSame(child1, actualChildren.next());
+ assertSame(child2, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentTest.java
index 09b4e6d..9a07a4c 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/DocumentTest.java
@@ -11,11 +11,12 @@
package org.eclipse.vex.core.internal.dom;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
-import java.util.List;
+import java.util.Iterator;
import org.eclipse.core.runtime.AssertionFailedException;
import org.eclipse.core.runtime.QualifiedName;
@@ -113,11 +114,14 @@
assertNodeEquals(expectedFragment, actualFragment, 0);
}
- private static void assertNodesEqual(final List<? extends Node> expected, final List<? extends Node> actual, final int rangeOffsetExpected) {
- assertEquals(expected.size(), actual.size());
- for (int i = 0; i < expected.size(); i++) {
- assertNodeEquals(expected.get(i), actual.get(i), rangeOffsetExpected);
+ private static void assertNodesEqual(final Iterable<Node> expected, final Iterable<Node> actual, final int rangeOffsetExpected) {
+ final Iterator<Node> expectedIterator = expected.iterator();
+ final Iterator<Node> actualIterator = actual.iterator();
+ while (expectedIterator.hasNext() && actualIterator.hasNext()) {
+ assertNodeEquals(expectedIterator.next(), actualIterator.next(), rangeOffsetExpected);
}
+ assertFalse("more elements expected", expectedIterator.hasNext());
+ assertFalse("less elements expected", actualIterator.hasNext());
}
private static void assertNodeEquals(final Node expected, final Node actual, final int rangeOffsetExpected) {
@@ -125,7 +129,7 @@
assertEquals("node range", expected.getRange(), actual.getRange().moveBy(rangeOffsetExpected));
assertEquals("node text", expected.getText(), actual.getText());
if (expected instanceof Parent) {
- assertNodesEqual(((Parent) expected).getChildNodes(), ((Parent) actual).getChildNodes(), rangeOffsetExpected);
+ assertNodesEqual(((Parent) expected).children(), ((Parent) actual).children(), rangeOffsetExpected);
}
}
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1CommentHandlingTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1CommentHandlingTest.java
index 111f422..9b603db 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1CommentHandlingTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1CommentHandlingTest.java
@@ -15,6 +15,7 @@
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.core.runtime.QualifiedName;
@@ -54,9 +55,9 @@
assertSame(rootElement, comment.getParent());
assertTrue(comment.isAssociated());
- final List<Node> newChildNodes = rootElement.getChildNodes();
- assertEquals(2, newChildNodes.size());
- assertSame(newChildNodes.get(0), comment);
+ final Iterator<Node> actualChildren = rootElement.children().iterator();
+ assertSame(comment, actualChildren.next());
+ assertSame(titleElement, actualChildren.next());
}
@Test
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ParentTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ParentTest.java
index da04c1e..e73458e 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ParentTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ParentTest.java
@@ -40,7 +40,7 @@
assertTrue(parent.hasChildren());
assertEquals(1, parent.getChildCount());
assertSame(child, parent.getChildNode(0));
- assertSame(child, parent.getChildNodes().get(0));
+ assertSame(child, parent.children().iterator().next());
}
@Test
@@ -56,22 +56,26 @@
parent.insertChild(1, child);
assertEquals(3, parent.getChildCount());
assertSame(child, parent.getChildNode(1));
- assertSame(child, parent.getChildNodes().get(1));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ actualChildren.next(); // TODO implement Axis.get(int);
+ assertSame(child, actualChildren.next());
}
@Test
public void removeChild() throws Exception {
- final TestChild child = new TestChild();
+ final TestChild secondChild = new TestChild();
parent.addChild(new TestChild());
- parent.addChild(child);
+ parent.addChild(secondChild);
parent.addChild(new TestChild());
assertTrue(parent.hasChildren());
assertEquals(3, parent.getChildCount());
- parent.removeChild(child);
+ parent.removeChild(secondChild);
assertTrue(parent.hasChildren());
assertEquals(2, parent.getChildCount());
- assertFalse(parent.getChildNodes().contains(child));
+ for (final Node child : parent.children()) {
+ assertTrue(child != secondChild);
+ }
}
@Test
@@ -106,15 +110,6 @@
}
@Test(expected = UnsupportedOperationException.class)
- public void shouldReturnUnmodifiableChildNodesList() throws Exception {
- addTestChild();
- addTestChild();
- addTestChild();
- final List<Node> childNodes = parent.getChildNodes();
- childNodes.add(new TestChild());
- }
-
- @Test(expected = UnsupportedOperationException.class)
public void shouldReturnUnmodifiableChildNodesIterator() throws Exception {
addTestChild();
addTestChild();
@@ -131,10 +126,11 @@
content.insertText(child.getStartOffset(), "Hello ");
content.insertText(parent.getEndOffset(), "World");
- assertEquals(3, parent.getChildNodes().size());
- assertTrue(parent.getChildNodes().get(0) instanceof Text);
- assertSame(child, parent.getChildNodes().get(1));
- assertTrue(parent.getChildNodes().get(2) instanceof Text);
+ final Iterator<Node> children = parent.children().iterator();
+ assertTrue(children.next() instanceof Text);
+ assertSame(child, children.next());
+ assertTrue(children.next() instanceof Text);
+ assertFalse(children.hasNext());
}
@Test
@@ -146,8 +142,9 @@
assertEquals(1, child.getStartOffset());
assertEquals(2, child.getEndOffset());
- assertEquals(1, parent.getChildNodes().size());
- assertSame(child, parent.getChildNodes().get(0));
+ final Iterator<Node> children = parent.children().iterator();
+ assertSame(child, children.next());
+ assertFalse(children.hasNext());
}
@Test
@@ -157,10 +154,10 @@
final TestChild child3 = addTestChild();
addTestChild();
- final List<Node> childNodes = parent.getChildNodes(new ContentRange(child2.getStartOffset(), child3.getEndOffset()));
- assertEquals(2, childNodes.size());
- assertSame(child2, childNodes.get(0));
- assertSame(child3, childNodes.get(1));
+ final Iterator<Node> children = parent.children(new ContentRange(child2.getStartOffset(), child3.getEndOffset())).iterator();
+ assertSame(child2, children.next());
+ assertSame(child3, children.next());
+ assertFalse(children.hasNext());
}
@Test
@@ -171,108 +168,102 @@
content.insertText(child1.getStartOffset(), "Hello");
content.insertText(child2.getStartOffset(), "World!");
- final List<Node> childNodes = parent.getChildNodes(child1.getRange().resizeBy(-2, 2));
- assertEquals(3, childNodes.size());
- assertTrue(childNodes.get(0) instanceof Text);
- assertSame(child1, childNodes.get(1));
- assertTrue(childNodes.get(2) instanceof Text);
- assertEquals("lo", childNodes.get(0).getText());
- assertEquals("", childNodes.get(1).getText());
- assertEquals("Wo", childNodes.get(2).getText());
+ final Iterator<Node> children = parent.children(child1.getRange().resizeBy(-2, 2)).iterator();
+ assertTextNodeEquals("lo", 4, 5, children.next());
+ assertChildNodeEquals("", 6, 7, children.next());
+ assertTextNodeEquals("Wo", 8, 9, children.next());
+ assertFalse(children.hasNext());
}
@Test
public void shouldSetParentOnTextNodes() throws Exception {
content.insertText(parent.getEndOffset(), "Hello World");
- assertSame(parent, parent.getChildNodes().get(0).getParent());
+ assertSame(parent, parent.children().iterator().next().getParent());
}
@Test
public void shouldProvideNoChildNodesIfEmpty() throws Exception {
- assertTrue(parent.getChildNodes().isEmpty());
+ assertFalse(parent.children().iterator().hasNext());
}
@Test
public void shouldProvideAddedChildren() throws Exception {
- final ArrayList<TestChild> children = new ArrayList<TestChild>();
+ final ArrayList<TestChild> expectedChildren = new ArrayList<TestChild>();
for (int i = 0; i < 4; i++) {
- children.add(addTestChild());
+ expectedChildren.add(addTestChild());
}
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(4, childNodes.size());
- for (int i = 0; i < 4; i++) {
- assertSame(children.get(i), childNodes.get(i));
+ int i = 0;
+ for (final Node actualChild : parent.children()) {
+ assertTrue(i < expectedChildren.size());
+ assertSame(expectedChildren.get(i++), actualChild);
}
}
@Test
public void shouldProvideAddedChildrenInRange1To3() throws Exception {
- final ArrayList<TestChild> children = new ArrayList<TestChild>();
+ final ArrayList<TestChild> expectedChildren = new ArrayList<TestChild>();
for (int i = 0; i < 4; i++) {
- children.add(addTestChild());
+ expectedChildren.add(addTestChild());
}
- final List<Node> childNodes = parent.getChildNodes(new ContentRange(children.get(1).getStartOffset(), children.get(3).getEndOffset()));
- assertEquals(3, childNodes.size());
- assertSame(children.get(1), childNodes.get(0));
- assertSame(children.get(2), childNodes.get(1));
- assertSame(children.get(3), childNodes.get(2));
+ final Iterator<Node> actualChildren = parent.children(new ContentRange(expectedChildren.get(1).getStartOffset(), expectedChildren.get(3).getEndOffset())).iterator();
+ assertSame(expectedChildren.get(1), actualChildren.next());
+ assertSame(expectedChildren.get(2), actualChildren.next());
+ assertSame(expectedChildren.get(3), actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
public void shouldProvideAddedChildrenInRange1To2() throws Exception {
- final ArrayList<TestChild> children = new ArrayList<TestChild>();
+ final ArrayList<TestChild> expectedChildren = new ArrayList<TestChild>();
for (int i = 0; i < 4; i++) {
- children.add(addTestChild());
+ expectedChildren.add(addTestChild());
}
- final List<Node> childNodes = parent.getChildNodes(new ContentRange(children.get(1).getStartOffset(), children.get(3).getStartOffset()));
- assertEquals(2, childNodes.size());
- assertSame(children.get(1), childNodes.get(0));
- assertSame(children.get(2), childNodes.get(1));
+ final Iterator<Node> actualChildren = parent.children(new ContentRange(expectedChildren.get(1).getStartOffset(), expectedChildren.get(3).getStartOffset())).iterator();
+ assertSame(expectedChildren.get(1), actualChildren.next());
+ assertSame(expectedChildren.get(2), actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
public void shouldProvideAddedChildrenInRange2() throws Exception {
- final ArrayList<TestChild> children = new ArrayList<TestChild>();
+ final ArrayList<TestChild> expectedChildren = new ArrayList<TestChild>();
for (int i = 0; i < 4; i++) {
- children.add(addTestChild());
+ expectedChildren.add(addTestChild());
}
- final List<Node> childNodes = parent.getChildNodes(new ContentRange(children.get(1).getEndOffset(), children.get(3).getStartOffset()));
- assertEquals(1, childNodes.size());
- assertSame(children.get(2), childNodes.get(0));
+ final Iterator<Node> actualChildren = parent.children(new ContentRange(expectedChildren.get(1).getEndOffset(), expectedChildren.get(3).getStartOffset())).iterator();
+ assertSame(expectedChildren.get(2), actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
public void shouldProvideAddedChildrenInRange2To3() throws Exception {
- final ArrayList<TestChild> children = new ArrayList<TestChild>();
+ final ArrayList<TestChild> expectedChildren = new ArrayList<TestChild>();
for (int i = 0; i < 4; i++) {
- children.add(addTestChild());
+ expectedChildren.add(addTestChild());
}
- final List<Node> childNodes = parent.getChildNodes(new ContentRange(children.get(1).getEndOffset(), children.get(3).getEndOffset()));
- assertEquals(2, childNodes.size());
- assertSame(children.get(2), childNodes.get(0));
- assertSame(children.get(3), childNodes.get(1));
+ final Iterator<Node> actualChildren = parent.children(new ContentRange(expectedChildren.get(1).getEndOffset(), expectedChildren.get(3).getEndOffset())).iterator();
+ assertSame(expectedChildren.get(2), actualChildren.next());
+ assertSame(expectedChildren.get(3), actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
public void shouldProvideAllDissociatedChildren() throws Exception {
- final ArrayList<TestChild> children = new ArrayList<TestChild>();
+ final ArrayList<TestChild> expectedChildren = new ArrayList<TestChild>();
for (int i = 0; i < 4; i++) {
final TestChild child = new TestChild();
- children.add(child);
+ expectedChildren.add(child);
parent.addChild(child);
}
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(4, childNodes.size());
- for (int i = 0; i < 4; i++) {
- assertSame(children.get(i), childNodes.get(i));
+ int i = 0;
+ for (final Node actualChild : parent.children()) {
+ assertSame(expectedChildren.get(i++), actualChild);
}
}
@@ -280,20 +271,18 @@
public void shouldProvideSingleText() throws Exception {
content.insertText(parent.getEndOffset(), "Hello World");
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(1, childNodes.size());
- assertTextNodeEquals("Hello World", 1, 11, childNodes.get(0));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertTextNodeEquals("Hello World", 1, 11, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
public void shouldProvideSingleCharacterText() throws Exception {
content.insertText(parent.getEndOffset(), "x");
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(1, childNodes.size());
- assertTextNodeEquals("x", 1, 1, childNodes.get(0));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertTextNodeEquals("x", 1, 1, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
@@ -301,11 +290,10 @@
content.insertText(parent.getEndOffset(), "Hello World");
addTestChild();
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(2, childNodes.size());
- assertTextNodeEquals("Hello World", 1, 11, childNodes.get(0));
- assertChildNodeEquals("", 12, 13, childNodes.get(1));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertTextNodeEquals("Hello World", 1, 11, actualChildren.next());
+ assertChildNodeEquals("", 12, 13, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
@@ -313,11 +301,10 @@
content.insertText(parent.getEndOffset(), "x");
addTestChild();
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(2, childNodes.size());
- assertTextNodeEquals("x", 1, 1, childNodes.get(0));
- assertChildNodeEquals("", 2, 3, childNodes.get(1));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertTextNodeEquals("x", 1, 1, actualChildren.next());
+ assertChildNodeEquals("", 2, 3, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
@@ -325,11 +312,10 @@
addTestChild();
content.insertText(parent.getEndOffset(), "Hello World");
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(2, childNodes.size());
- assertChildNodeEquals("", 1, 2, childNodes.get(0));
- assertTextNodeEquals("Hello World", 3, 13, childNodes.get(1));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertChildNodeEquals("", 1, 2, actualChildren.next());
+ assertTextNodeEquals("Hello World", 3, 13, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
@@ -337,43 +323,43 @@
addTestChild();
content.insertText(parent.getEndOffset(), "x");
- final List<Node> childNodes = parent.getChildNodes();
-
- assertEquals(2, childNodes.size());
- assertChildNodeEquals("", 1, 2, childNodes.get(0));
- assertTextNodeEquals("x", 3, 3, childNodes.get(1));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertChildNodeEquals("", 1, 2, actualChildren.next());
+ assertTextNodeEquals("x", 3, 3, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
public void shouldProvideAllChildNodesIncludingText() throws Exception {
setUpChildNodes();
- final List<Node> childNodes = parent.getChildNodes();
- assertTextNodeEquals("Hello ", 1, 6, childNodes.get(0));
- assertChildNodeEquals("Child1", 7, 14, childNodes.get(1));
- assertChildNodeEquals("Child2", 15, 22, childNodes.get(2));
- assertTextNodeEquals(" World", 23, 28, childNodes.get(3));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertTextNodeEquals("Hello ", 1, 6, actualChildren.next());
+ assertChildNodeEquals("Child1", 7, 14, actualChildren.next());
+ assertChildNodeEquals("Child2", 15, 22, actualChildren.next());
+ assertTextNodeEquals(" World", 23, 28, actualChildren.next());
+ assertFalse(actualChildren.hasNext());
}
@Test
public void shouldHandleSmallerStartOffset() throws Exception {
setUpChildNodes();
content.insertText(parent.getStartOffset(), "prefix");
- final List<Node> childNodes = parent.getChildNodes(parent.getRange().resizeBy(-2, 0));
- assertTextNodeEquals("Hello ", 7, 12, childNodes.get(0));
- assertChildNodeEquals("Child1", 13, 20, childNodes.get(1));
- assertChildNodeEquals("Child2", 21, 28, childNodes.get(2));
- assertTextNodeEquals(" World", 29, 34, childNodes.get(3));
+ final Iterator<Node> actualChildren = parent.children(parent.getRange().resizeBy(-2, 0)).iterator();
+ assertTextNodeEquals("Hello ", 7, 12, actualChildren.next());
+ assertChildNodeEquals("Child1", 13, 20, actualChildren.next());
+ assertChildNodeEquals("Child2", 21, 28, actualChildren.next());
+ assertTextNodeEquals(" World", 29, 34, actualChildren.next());
}
@Test
public void shouldHandleBiggerEndOffset() throws Exception {
setUpChildNodes();
content.insertText(parent.getEndOffset() + 1, "suffix");
- final List<Node> childNodes = parent.getChildNodes();
- assertTextNodeEquals("Hello ", 1, 6, childNodes.get(0));
- assertChildNodeEquals("Child1", 7, 14, childNodes.get(1));
- assertChildNodeEquals("Child2", 15, 22, childNodes.get(2));
- assertTextNodeEquals(" World", 23, 28, childNodes.get(3));
+ final Iterator<Node> actualChildren = parent.children().iterator();
+ assertTextNodeEquals("Hello ", 1, 6, actualChildren.next());
+ assertChildNodeEquals("Child1", 7, 14, actualChildren.next());
+ assertChildNodeEquals("Child2", 15, 22, actualChildren.next());
+ assertTextNodeEquals(" World", 23, 28, actualChildren.next());
}
@Test
@@ -385,7 +371,7 @@
@Test
public void shouldReturnTextWithinBoundaries() throws Exception {
content.insertText(parent.getEndOffset(), "Hello World");
- final Node text = parent.getChildNodes().get(0);
+ final Node text = parent.children().iterator().next();
assertTextNodeEquals("Hello World", text.getStartOffset(), text.getEndOffset(), parent.getChildNodeAt(text.getStartOffset()));
assertTextNodeEquals("Hello World", text.getStartOffset(), text.getEndOffset(), parent.getChildNodeAt(text.getStartOffset() + 1));
assertTextNodeEquals("Hello World", text.getStartOffset(), text.getEndOffset(), parent.getChildNodeAt(text.getEndOffset() - 1));
@@ -401,7 +387,7 @@
parent.addChild(child);
child.associate(content, new ContentRange(offset, offset + 1));
content.insertText(child.getEndOffset(), "Hello World");
- final Node text = child.getChildNodes().get(0);
+ final Node text = child.children().iterator().next();
assertTextNodeEquals("Hello World", text.getStartOffset(), text.getEndOffset(), parent.getChildNodeAt(text.getStartOffset()));
assertTextNodeEquals("Hello World", text.getStartOffset(), text.getEndOffset(), parent.getChildNodeAt(text.getStartOffset() + 1));
assertTextNodeEquals("Hello World", text.getStartOffset(), text.getEndOffset(), parent.getChildNodeAt(text.getEndOffset() - 1));
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/DocumentReaderTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/DocumentReaderTest.java
index d9d1d80..5e1f0e0 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/DocumentReaderTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/DocumentReaderTest.java
@@ -14,18 +14,18 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.net.URL;
-import java.util.List;
+import java.util.Iterator;
import org.eclipse.vex.core.internal.dom.Comment;
import org.eclipse.vex.core.internal.dom.Document;
import org.eclipse.vex.core.internal.dom.DocumentContentModel;
import org.eclipse.vex.core.internal.dom.Element;
import org.eclipse.vex.core.internal.dom.Node;
-import org.eclipse.vex.core.internal.io.DocumentReader;
import org.eclipse.vex.core.tests.TestResources;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
@@ -139,26 +139,30 @@
final DocumentReader reader = new DocumentReader();
final Document document = reader.read(TestResources.get("documentWithComments.xml"));
- final List<Node> documentChildNodes = document.getChildNodes();
- assertEquals(3, documentChildNodes.size());
+ final Iterator<Node> documentChildren = document.children().iterator();
- final Comment documentComment1 = (Comment) documentChildNodes.get(0);
+ final Comment documentComment1 = (Comment) documentChildren.next();
assertEquals("A comment before the root element.", documentComment1.getText());
-
- final Comment documentComment2 = (Comment) documentChildNodes.get(2);
+ assertSame(document.getRootElement(), documentChildren.next());
+ final Comment documentComment2 = (Comment) documentChildren.next();
assertEquals("A final comment after the root element.", documentComment2.getText());
+ assertFalse(documentChildren.hasNext());
final Element rootElement = document.getRootElement();
- final List<Node> rootChildNodes = rootElement.getChildNodes();
- assertEquals(4, rootChildNodes.size());
+ final Iterator<Node> rootChildren = rootElement.children().iterator();
- final Comment comment1 = (Comment) rootChildNodes.get(0);
+ final Comment comment1 = (Comment) rootChildren.next();
assertEquals("A comment within the root element.", comment1.getText());
- final Comment comment2 = (Comment) ((Element) rootChildNodes.get(1)).getChildNodes().get(1);
- assertEquals("A comment within text.", comment2.getText());
+ // TODO implement Axis.get(int)
+ rootChildren.next();
+ // final Comment comment2 = (Comment) ((Element) rootChildren.next()).getChildNodes().get(1);
+ // assertEquals("A comment within text.", comment2.getText());
- final Comment comment3 = (Comment) rootChildNodes.get(2);
+ final Comment comment3 = (Comment) rootChildren.next();
assertEquals("Another comment between two child elements.", comment3.getText());
+
+ rootChildren.next();
+ assertFalse(rootChildren.hasNext());
}
}
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/RoundTrip.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/RoundTrip.java
index 73689b1..b01901b 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/RoundTrip.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/RoundTrip.java
@@ -11,9 +11,11 @@
package org.eclipse.vex.core.internal.io;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.core.runtime.QualifiedName;
@@ -40,12 +42,11 @@
public static void assertContentEqual(final Parent expected, final Parent actual) {
assertContentRangeEqual(expected, actual);
- final List<Node> expectedContent = expected.getChildNodes();
- final List<Node> actualContent = actual.getChildNodes();
- assertEquals("children of " + expected, expectedContent.size(), actualContent.size());
- for (int i = 0; i < expectedContent.size(); i++) {
- final Node expectedNode = expectedContent.get(i);
- final Node actualNode = actualContent.get(i);
+ final Iterator<Node> expectedChildren = expected.children().iterator();
+ final Iterator<Node> actualChildren = actual.children().iterator();
+ while (expectedChildren.hasNext() && actualChildren.hasNext()) {
+ final Node expectedNode = expectedChildren.next();
+ final Node actualNode = actualChildren.next();
assertContentRangeEqual(expectedNode, actualNode);
assertEquals(expectedNode.getClass(), actualNode.getClass());
expectedNode.accept(new BaseNodeVisitor() {
@@ -65,6 +66,8 @@
}
});
}
+ assertFalse("more children expected", expectedChildren.hasNext());
+ assertFalse("less children expected", actualChildren.hasNext());
}
public static void assertContentRangeEqual(final Node expected, final Node actual) {
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/SpaceNormalizerTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/SpaceNormalizerTest.java
index dcaf8ca..c07aec1 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/SpaceNormalizerTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/io/SpaceNormalizerTest.java
@@ -16,6 +16,7 @@
import java.io.InputStream;
import java.net.URL;
import java.util.Enumeration;
+import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
@@ -71,7 +72,6 @@
getAndCreateProject();
final Bundle coreTestBundle = Platform.getBundle(VEXCoreTestPlugin.PLUGIN_ID);
- @SuppressWarnings("unchecked")
final Enumeration<String> projectFilePaths = coreTestBundle.getEntryPaths("/" + PROJECT_FILES_FOLDER_NAME);
while (projectFilePaths.hasMoreElements()) {
final String absolutePath = projectFilePaths.nextElement();
@@ -272,19 +272,20 @@
* brackets, it's assume to refer to the name of an element; otherwise, it represents text content.
*/
private void assertContent(final Element element, final String... strings) {
- final List<Node> content = element.getChildNodes();
- assertEquals(strings.length, content.size());
- for (int i = 0; i < strings.length; i++) {
- if (strings[i].startsWith("<")) {
- final String name = strings[i].substring(1, strings[i].length() - 1);
- assertTrue(content.get(i) instanceof Element);
- assertEquals(name, ((Element) content.get(i)).getPrefixedName());
+ final Iterator<Node> children = element.children().iterator();
+ for (final String string : strings) {
+ final Node node = children.next();
+ if (string.startsWith("<")) {
+ final String name = string.substring(1, string.length() - 1);
+ assertTrue(node instanceof Element);
+ assertEquals(name, ((Element) node).getPrefixedName());
} else {
- assertTrue(content.get(i) instanceof Text);
- final String contentText = content.get(i).getText();
- assertEquals(strings[i], contentText);
+ assertTrue(node instanceof Text);
+ final String contentText = node.getText();
+ assertEquals(string, contentText);
}
}
+ assertFalse("more strings expected", children.hasNext());
}
private Document createDocument(final String s, final StyleSheet ss) throws ParserConfigurationException, SAXException, IOException {
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/widget/VexWidgetTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/widget/VexWidgetTest.java
index 022200d..8450e6e 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/widget/VexWidgetTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/widget/VexWidgetTest.java
@@ -16,7 +16,6 @@
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
-import java.util.List;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.vex.core.internal.css.StyleSheet;
@@ -142,10 +141,9 @@
final StringBuilder result = new StringBuilder();
result.append("<").append(element.getQualifiedName()).append(" (").append(element.getStartOffset()).append("-").append(element.getEndOffset()).append(")");
result.append(" ").append(element.getText());
- final List<Node> children = element.getChildNodes();
- if (!children.isEmpty()) {
+ if (!element.hasChildren()) {
result.append(" [");
- for (final Node child : children) {
+ for (final Node child : element.children()) {
if (child instanceof Element) {
result.append(getContentStructure((Element) child));
} else if (child instanceof Text) {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopy.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopy.java
index 93beb4c..474ba33 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopy.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopy.java
@@ -67,10 +67,10 @@
}
nodes = new ArrayList<Node>();
- copyNodes(parent.getChildNodes(range), delta);
+ copyNodes(parent.children(range), delta);
}
- private void copyNodes(final List<Node> sourceNodes, final int delta) {
+ private void copyNodes(final Iterable<Node> sourceNodes, final int delta) {
final DeepCopyVisitor deepCopyVisitor = new DeepCopyVisitor(nodes, content, delta);
for (final Node sourceNode : sourceNodes) {
sourceNode.accept(deepCopyVisitor);
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopyVisitor.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopyVisitor.java
index 44cf722..9071993 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopyVisitor.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DeepCopyVisitor.java
@@ -82,7 +82,7 @@
private void copyChildren(final Parent source, final Parent copy) {
final Parent lastParent = currentParent;
- for (final Node child : source.getChildNodes()) {
+ for (final Node child : source.children()) {
currentParent = copy;
child.accept(this);
}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Document.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Document.java
index 3a889cd..327f49f 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Document.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Document.java
@@ -13,6 +13,7 @@
package org.eclipse.vex.core.internal.dom;
import java.text.MessageFormat;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -424,7 +425,7 @@
private void associateDeeply(final Node node, final int offset) {
if (node instanceof Parent) {
final Parent parent = (Parent) node;
- for (final Node child : parent.getChildNodes()) {
+ for (final Node child : parent.children()) {
associateDeeply(child, offset);
}
}
@@ -524,8 +525,7 @@
}
private static Node findCommonNodeIn(final Parent parent, final int offset1, final int offset2) {
- final List<Node> children = parent.getChildNodes();
- for (final Node child : children) {
+ for (final Node child : parent.children()) {
if (child instanceof Text) {
continue;
}
@@ -647,7 +647,11 @@
* @return all nodes in the given range in this document
*/
public List<Node> getNodes(final ContentRange range) {
- return getParentOfRange(range).getChildNodes(range);
+ final List<Node> result = new ArrayList<Node>();
+ for (final Node node : getParentOfRange(range).children(range)) {
+ result.add(node);
+ }
+ return result;
}
/*
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java
index e6ac8a3..e88cb41 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java
@@ -12,6 +12,7 @@
*******************************************************************************/
package org.eclipse.vex.core.internal.dom;
+import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.Assert;
@@ -50,14 +51,18 @@
* @return a list with the qualified names off all nodes on the root level of this fragment
*/
public List<QualifiedName> getNodeNames() {
- return Node.getNodeNames(getChildNodes());
+ return Node.getNodeNames(children());
}
/**
* @return all nodes on the root level of this fragment
*/
public List<Node> getNodes() {
- return getChildNodes();
+ final List<Node> result = new ArrayList<Node>();
+ for (final Node node : children()) {
+ result.add(node);
+ }
+ return result;
}
/**
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
index deb0fc2..aa7d67b 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
@@ -324,9 +324,8 @@
* @return the child elements of this element
*/
public List<Element> getChildElements() {
- final List<Node> nodes = getChildNodes();
final List<Element> elements = new ArrayList<Element>();
- for (final Node node : nodes) {
+ for (final Node node : children()) {
node.accept(new BaseNodeVisitor() {
@Override
public void visit(final Element element) {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java
index 39fabdc..4d58141 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java
@@ -12,7 +12,6 @@
package org.eclipse.vex.core.internal.dom;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import org.eclipse.core.runtime.Assert;
@@ -244,8 +243,8 @@
/**
* @return the qualified names of the given nodes
*/
- public static List<QualifiedName> getNodeNames(final Collection<Node> nodes) {
- final List<QualifiedName> names = new ArrayList<QualifiedName>(nodes.size());
+ public static List<QualifiedName> getNodeNames(final Iterable<Node> nodes) {
+ final List<QualifiedName> names = new ArrayList<QualifiedName>();
for (final Node node : nodes) {
node.accept(new BaseNodeVisitor() {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
index 56eebd7..9eebaa2 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
@@ -18,6 +18,7 @@
import java.util.NoSuchElementException;
import org.eclipse.core.runtime.Assert;
+import org.eclipse.vex.core.internal.css.IProperty.Axis;
/**
* A Parent node is a Node which can contain other nodes as children. This class defines the tree-like structure of the
@@ -85,19 +86,6 @@
}
/**
- * Returns a list of all child nodes of this parent node, including Text nodes for the textual content.
- *
- * @return all child nodes including Text nodes
- */
- public List<Node> getChildNodes() {
- if (!isAssociated()) {
- return Collections.unmodifiableList(children);
- }
-
- return getChildNodes(getRange());
- }
-
- /**
* Returns a list of all child nodes (including Text nodes) in the given range. The Text nodes are cut at the edges,
* all other nodes must be fully contained in the range (i.e. the start tag and the end tag). The returned list is
* not modifyable.
@@ -108,7 +96,7 @@
* the end offset of the range
* @return all child nodes which are completely within the given range plus the textual content
*/
- public List<Node> getChildNodes(final ContentRange range) {
+ private List<Node> getChildNodes(final ContentRange range) {
final List<Node> result = new ArrayList<Node>();
for (final Node child : children(range)) {
@@ -158,6 +146,10 @@
return children.size();
}
+ /**
+ * @see Axis
+ * @return the iterable children Axis of this node.
+ */
public Iterable<Node> children() {
if (!isAssociated()) {
return Collections.unmodifiableList(children);
@@ -195,13 +187,12 @@
}
/**
- * Indicates whether this parent node has child nodes. Text nodes are ignored, i.e. this method will return false if
- * this parent node contains only text.
+ * Indicates whether this parent node has child nodes, including text nodes.
*
- * @return true if this parent node has any child nodes besides text
+ * @return true if this parent node has any child nodes
*/
public boolean hasChildren() {
- return !children.isEmpty();
+ return children().iterator().hasNext();
}
private class ChildrenAndText implements Iterator<Node> {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/io/DocumentWriter.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/io/DocumentWriter.java
index c4d83f4..17b4960 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/io/DocumentWriter.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/io/DocumentWriter.java
@@ -180,7 +180,7 @@
out.println(buffer.toString());
}
- for (final Node child : document.getChildNodes()) {
+ for (final Node child : document.children()) {
writeNode(child, out, indent);
}
}
@@ -188,7 +188,7 @@
@Override
public void visit(final DocumentFragment fragment) {
out.print("<vex_fragment>");
- for (final Node child : fragment.getChildNodes()) {
+ for (final Node child : fragment.children()) {
writeNodeNoWrap(child, out);
}
out.println("</vex_fragment>");
@@ -236,7 +236,7 @@
out.println(">");
final String childIndent = indent + DocumentWriter.this.indent;
- for (final Node child : element.getChildNodes()) {
+ for (final Node child : element.children()) {
writeNode(child, out, childIndent);
}
out.print(indent);
@@ -298,7 +298,7 @@
out.print(getAttributeString(element));
out.print(">");
- for (final Node child : element.getChildNodes()) {
+ for (final Node child : element.children()) {
writeNodeNoWrap(child, out);
}
@@ -337,24 +337,25 @@
node.accept(new BaseNodeVisitor() {
@Override
public void visit(final Element element) {
- final List<Node> content = element.getChildNodes();
+ final boolean elementHasChildren = element.hasChildren();
final StringBuilder buffer = new StringBuilder();
buffer.append("<").append(element.getPrefixedName());
buffer.append(getNamespaceDeclarationsString(element));
buffer.append(getAttributeString(element));
- if (content.isEmpty()) {
- buffer.append("/>");
- } else {
+
+ if (elementHasChildren) {
buffer.append(">");
+ } else {
+ buffer.append("/>");
}
wrapper.addNoSplit(buffer.toString());
- for (final Node child : content) {
+ for (final Node child : element.children()) {
addNode(child, wrapper);
}
- if (!content.isEmpty()) {
+ if (elementHasChildren) {
wrapper.add("</" + element.getPrefixedName() + ">");
}
}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java
index 3aae0c8..129dbe6 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java
@@ -872,8 +872,7 @@
* The offset at which to end the search.
*/
private static Node findNextBlockNode(final LayoutContext context, final Parent parent, final int startOffset, final int endOffset) {
- final List<Node> children = parent.getChildNodes(new ContentRange(startOffset, endOffset));
- for (final Node child : children) {
+ for (final Node child : parent.children(new ContentRange(startOffset, endOffset))) {
final Node nextBlockNode = child.accept(new BaseNodeVisitorWithResult<Node>() {
@Override
public Node visit(final Element element) {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/InlineElementBox.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/InlineElementBox.java
index 66421bf..a5884e2 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/InlineElementBox.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/InlineElementBox.java
@@ -272,7 +272,7 @@
node.accept(new BaseNodeVisitor() {
@Override
public void visit(final Element element) {
- for (final Node childNode : element.getChildNodes(range)) {
+ for (final Node childNode : element.children(range)) {
childNode.accept(new BaseNodeVisitor() {
@Override
public void visit(final Element element) {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java
index 3c175ad..7ede339 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java
@@ -319,7 +319,7 @@
}
final List<QualifiedName> seq1 = Node.getNodeNames(parent.getChildNodesBefore(element.getStartOffset()));
- final List<QualifiedName> seq2 = Node.getNodeNames(element.getChildNodes());
+ final List<QualifiedName> seq2 = Node.getNodeNames(element.children());
final List<QualifiedName> seq3 = Node.getNodeNames(parent.getChildNodesAfter(element.getEndOffset()));
return validator.isValidSequence(parent.getQualifiedName(), seq1, seq2, seq3, true);
@@ -624,7 +624,7 @@
final List<QualifiedName> nodesBefore = Node.getNodeNames(parent.getChildNodesBefore(startOffset));
final List<QualifiedName> nodesAfter = Node.getNodeNames(parent.getChildNodesAfter(endOffset));
- final List<QualifiedName> selectedNodes = Node.getNodeNames(parent.getChildNodes(new ContentRange(startOffset, endOffset)));
+ final List<QualifiedName> selectedNodes = Node.getNodeNames(parent.children(new ContentRange(startOffset, endOffset)));
final List<QualifiedName> candidates = createCandidatesList(validator, parent, Validator.PCDATA);
filterInvalidSequences(validator, parent, nodesBefore, nodesAfter, candidates);
@@ -713,7 +713,7 @@
final List<QualifiedName> candidates = createCandidatesList(validator, parent, Validator.PCDATA, element.getQualifiedName());
// root out those that can't contain the current content
- final List<QualifiedName> content = Node.getNodeNames(element.getChildNodes());
+ final List<QualifiedName> content = Node.getNodeNames(element.children());
for (final Iterator<QualifiedName> iter = candidates.iterator(); iter.hasNext();) {
final QualifiedName candidate = iter.next();
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java
index ac0d04f..079a9d5 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java
@@ -254,8 +254,7 @@
int previousSiblingStart = -1;
final Element parent = vexWidget.getDocument().getElementForInsertionAt(startOffset);
- final List<Node> children = parent.getChildNodes();
- for (final Node child : children) {
+ for (final Node child : parent.children()) {
if (startOffset == child.getStartOffset()) {
break;
}