reflect domain in class name for better distinction

Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ContentTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ContentTest.java
index 22ff845..a12a7d2 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ContentTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ContentTest.java
@@ -64,7 +64,7 @@
 	public void shouldReturnAPartialCopy() throws Exception {

 		final String text = "Hello World";

 		content.insertText(0, text);

-		final Content partialCopy = content.getContent(new Range(3, 7));

+		final Content partialCopy = content.getContent(new ContentRange(3, 7));

 		assertEquals("lo Wo", partialCopy.getText());

 

 		// make shure, it is a copy

@@ -107,11 +107,11 @@
 		content.insertElementMarker(6);

 		content.insertElementMarker(14);

 

-		content.remove(new Range(7, 13));

+		content.remove(new ContentRange(7, 13));

 		assertTrue(content.isElementMarker(6));

 		assertTrue(content.isElementMarker(7));

 

-		content.remove(new Range(6, 7));

+		content.remove(new ContentRange(6, 7));

 		assertEquals("Hello  World", content.getText());

 

 		content.insertText(6, "Cut Out");

@@ -123,14 +123,14 @@
 		content.insertText(0, "Hello World");

 		final Position helloPosition = content.createPosition(0);

 		final Position worldPosition = content.createPosition(6);

-		assertEquals("Hello", content.getText(new Range(helloPosition.getOffset(), helloPosition.getOffset() + 4)));

-		assertEquals("World", content.getText(new Range(worldPosition.getOffset(), worldPosition.getOffset() + 4)));

+		assertEquals("Hello", content.getText(new ContentRange(helloPosition.getOffset(), helloPosition.getOffset() + 4)));

+		assertEquals("World", content.getText(new ContentRange(worldPosition.getOffset(), worldPosition.getOffset() + 4)));

 

 		content.insertText(6, "New ");

 		assertEquals(0, helloPosition.getOffset());

 		assertEquals(10, worldPosition.getOffset());

-		assertEquals("Hello", content.getText(new Range(helloPosition.getOffset(), helloPosition.getOffset() + 4)));

-		assertEquals("World", content.getText(new Range(worldPosition.getOffset(), worldPosition.getOffset() + 4)));

+		assertEquals("Hello", content.getText(new ContentRange(helloPosition.getOffset(), helloPosition.getOffset() + 4)));

+		assertEquals("World", content.getText(new ContentRange(worldPosition.getOffset(), worldPosition.getOffset() + 4)));

 	}

 

 	@Test

@@ -138,15 +138,15 @@
 		content.insertText(0, "Hello World");

 		final Position worldStartPosition = content.createPosition(6);

 		final Position worldEndPosition = content.createPosition(10);

-		assertEquals("d", content.getText(new Range(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

-		assertEquals("World", content.getText(new Range(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

+		assertEquals("d", content.getText(new ContentRange(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

+		assertEquals("World", content.getText(new ContentRange(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

 

 		content.insertElementMarker(11);

 		content.insertElementMarker(6);

 		assertEquals(7, worldStartPosition.getOffset());

 		assertEquals(11, worldEndPosition.getOffset());

-		assertEquals("d", content.getText(new Range(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

-		assertEquals("World", content.getText(new Range(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

+		assertEquals("d", content.getText(new ContentRange(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

+		assertEquals("World", content.getText(new ContentRange(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

 		assertTrue(content.isElementMarker(worldStartPosition.getOffset() - 1));

 		assertTrue(content.isElementMarker(worldEndPosition.getOffset() + 1));

 	}

@@ -158,12 +158,12 @@
 		content.insertElementMarker(6);

 		final Position worldStartPosition = content.createPosition(12);

 		final Position worldEndPosition = content.createPosition(16);

-		assertEquals("d", content.getText(new Range(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

-		assertEquals("World", content.getText(new Range(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

+		assertEquals("d", content.getText(new ContentRange(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

+		assertEquals("World", content.getText(new ContentRange(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

 

-		content.remove(new Range(6, 11));

-		assertEquals("d", content.getText(new Range(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

-		assertEquals("World", content.getText(new Range(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

+		content.remove(new ContentRange(6, 11));

+		assertEquals("d", content.getText(new ContentRange(worldEndPosition.getOffset(), worldEndPosition.getOffset())));

+		assertEquals("World", content.getText(new ContentRange(worldStartPosition.getOffset(), worldEndPosition.getOffset())));

 		assertEquals(6, worldStartPosition.getOffset());

 		assertEquals(10, worldEndPosition.getOffset());

 	}

@@ -175,7 +175,7 @@
 		final Position ePosition = content.createPosition(7);

 		final Position wPosition = content.createPosition(8);

 

-		content.remove(new Range(6, 8));

+		content.remove(new ContentRange(6, 8));

 

 		assertEquals(6, nPosition.getOffset());

 		assertEquals(6, ePosition.getOffset());

@@ -214,8 +214,8 @@
 		assertFalse(content.getText().equals(content.getRawText()));

 		assertEquals(content.getText().length() + 3, content.getRawText().length());

 		assertFalse(content.getText().charAt(0) == content.getRawText().charAt(0));

-		assertEquals(content.getText(new Range(1, 5)), content.getRawText(new Range(1, 5)));

-		assertEquals(content.getText().substring(0, 5), content.getRawText(new Range(1, 5)));

+		assertEquals(content.getText(new ContentRange(1, 5)), content.getRawText(new ContentRange(1, 5)));

+		assertEquals(content.getText().substring(0, 5), content.getRawText(new ContentRange(1, 5)));

 	}

 

 	@Test

diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/CopyVisitorTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/CopyVisitorTest.java
index 7237f9d..0d1b6e3 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/CopyVisitorTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/CopyVisitorTest.java
@@ -64,7 +64,7 @@
 

 	@Test

 	public void shouldIgnoreText() throws Exception {

-		final Text text = new Text(null, new GapContent(1), new Range(0, 0));

+		final Text text = new Text(null, new GapContent(1), new ContentRange(0, 0));

 

 		final CopyVisitor copyVisitor = new CopyVisitor();

 

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 768c536..25b0d7c 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
@@ -42,7 +42,7 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 		final Element element = new Element("element");

-		element.associate(content, new Range(0, 1));

+		element.associate(content, new ContentRange(0, 1));

 		content.insertText(1, "Hello World");

 

 		final DeepCopy deepCopy = new DeepCopy(element);

@@ -60,7 +60,7 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 		final Element element = new Element("element");

-		element.associate(content, new Range(0, 1));

+		element.associate(content, new ContentRange(0, 1));

 		content.insertText(2, "World");

 		content.insertText(1, " New ");

 		content.insertText(0, "Hello");

@@ -78,7 +78,7 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 		final Element element = new Element("element");

-		element.associate(content, new Range(0, 1));

+		element.associate(content, new ContentRange(0, 1));

 		content.insertText(2, "World");

 		content.insertText(1, " New ");

 		content.insertText(0, "Hello");

@@ -121,10 +121,10 @@
 		final Element parent = new Element("parent");

 		parent.associate(content, content.getRange());

 		final Element child1 = new Element("child");

-		child1.associate(content, new Range(1, 2));

+		child1.associate(content, new ContentRange(1, 2));

 		parent.addChild(child1);

 		final Element child2 = new Element("child");

-		child2.associate(content, new Range(3, 4));

+		child2.associate(content, new ContentRange(3, 4));

 		parent.addChild(child2);

 		content.insertText(child1.getEndOffset(), "Hello");

 		content.insertText(child2.getStartOffset(), " New ");

@@ -158,10 +158,10 @@
 		final Element parent = new Element("parent");

 		parent.associate(content, content.getRange());

 		final Element child1 = new Element("child");

-		child1.associate(content, new Range(1, 2));

+		child1.associate(content, new ContentRange(1, 2));

 		parent.addChild(child1);

 		final Element child2 = new Element("child");

-		child2.associate(content, new Range(3, 4));

+		child2.associate(content, new ContentRange(3, 4));

 		parent.addChild(child2);

 		content.insertText(parent.getStartOffset(), "Prefix Content");

 		content.insertText(child1.getEndOffset(), "Hello");

@@ -186,10 +186,10 @@
 		final Element parent = new Element("parent");

 		parent.associate(content, content.getRange());

 		final Element child1 = new Element("child");

-		child1.associate(content, new Range(1, 2));

+		child1.associate(content, new ContentRange(1, 2));

 		parent.addChild(child1);

 		final Element child2 = new Element("child");

-		child2.associate(content, new Range(3, 4));

+		child2.associate(content, new ContentRange(3, 4));

 		parent.addChild(child2);

 		content.insertText(child1.getStartOffset(), "Prefix Content");

 		content.insertText(child1.getEndOffset(), "Hello");

@@ -197,7 +197,7 @@
 		content.insertText(child2.getEndOffset(), "World");

 		content.insertText(parent.getEndOffset(), "Suffix Content");

 

-		final DeepCopy deepCopy = new DeepCopy(parent, new Range(8, 39));

+		final DeepCopy deepCopy = new DeepCopy(parent, new ContentRange(8, 39));

 

 		assertEquals(32, deepCopy.getContent().length());

 		assertEquals("Content\0Hello\0 New \0World\0Suffix", deepCopy.getContent().getRawText());

@@ -216,10 +216,10 @@
 		final Element parent = new Element("parent");

 		parent.associate(content, content.getRange());

 		final Comment child1 = new Comment();

-		child1.associate(content, new Range(1, 2));

+		child1.associate(content, new ContentRange(1, 2));

 		parent.addChild(child1);

 		final Comment child2 = new Comment();

-		child2.associate(content, new Range(3, 4));

+		child2.associate(content, new ContentRange(3, 4));

 		parent.addChild(child2);

 		content.insertText(child1.getEndOffset(), "Hello");

 		content.insertText(child2.getEndOffset(), "World");

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 71d90a5..abc16f2 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
@@ -61,9 +61,9 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 		final Element child1 = new Element("child");

-		child1.associate(content, new Range(0, 1));

+		child1.associate(content, new ContentRange(0, 1));

 		final Element child2 = new Element("child");

-		child2.associate(content, new Range(2, 3));

+		child2.associate(content, new ContentRange(2, 3));

 

 		final DocumentFragment fragment = new DocumentFragment(content, Arrays.<Node> asList(child1, child2));

 		assertSame(child1, fragment.getChildNodes().get(0));

@@ -78,9 +78,9 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 		final Element child1 = new Element("child");

-		child1.associate(content, new Range(0, 1));

+		child1.associate(content, new ContentRange(0, 1));

 		final Element child2 = new Element("child");

-		child2.associate(content, new Range(2, 3));

+		child2.associate(content, new ContentRange(2, 3));

 

 		final DocumentFragment fragment = new DocumentFragment(content, Arrays.<Node> asList(child1, child2));

 		assertEquals(fragment.getStartOffset(), child1.getStartOffset());

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 691d826..01c0172 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
@@ -39,7 +39,7 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 		final Element rootElement = new Element("root");

-		rootElement.associate(content, new Range(0, 1));

+		rootElement.associate(content, new ContentRange(0, 1));

 		final Document document = new Document(content, rootElement);

 		assertDocumentConnectedToRootElement(rootElement, document);

 	}

@@ -59,7 +59,7 @@
 		document.insertText(childElement.getStartOffset(), "Hello ");

 		document.insertText(childElement.getEndOffset(), "Child");

 		document.insertText(childElement.getEndOffset() + 1, " World");

-		final Range range = childElement.getRange().moveBounds(-2, 2);

+		final ContentRange range = childElement.getRange().moveBounds(-2, 2);

 		final DocumentFragment fragment = document.getFragment(range);

 		assertEquals(11, fragment.getLength());

 		assertNodesEqual(document.getNodes(range), fragment.getNodes());

@@ -70,7 +70,7 @@
 		final Document document = new Document(new Element("root"));

 		final Element childElement = document.insertElement(1, new QualifiedName(null, "child"));

 		document.insertText(childElement.getEndOffset(), "Child");

-		final Range range = childElement.getRange();

+		final ContentRange range = childElement.getRange();

 		final DocumentFragment fragment = document.getFragment(range);

 		assertEquals(7, fragment.getLength());

 		assertNodesEqual(document.getNodes(range), fragment.getNodes());

diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/GapContentTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/GapContentTest.java
index c24013c..6aa005c 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/GapContentTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/GapContentTest.java
@@ -77,25 +77,25 @@
 		final Position pe = content.createPosition(4);
 
 		try {
-			content.getText(new Range(-1, 0));
+			content.getText(new ContentRange(-1, 0));
 			fail("expected exception");
 		} catch (final AssertionFailedException ex) {
 		}
 
 		try {
-			content.getText(new Range(4, 4));
+			content.getText(new ContentRange(4, 4));
 			fail("expected exception");
 		} catch (final AssertionFailedException ex) {
 		}
 
 		try {
-			content.getText(new Range(0, -1));
+			content.getText(new ContentRange(0, -1));
 			fail("expected exception");
 		} catch (final AssertionFailedException ex) {
 		}
 
 		try {
-			content.getText(new Range(0, 4));
+			content.getText(new ContentRange(0, 4));
 			fail("expected exception");
 		} catch (final AssertionFailedException ex) {
 		}
@@ -112,19 +112,19 @@
 		} catch (final IllegalArgumentException ex) {
 		}
 
-		assertEquals("a", content.getText(new Range(0, 0)));
-		assertEquals("b", content.getText(new Range(1, 1)));
-		assertEquals("c", content.getText(new Range(2, 2)));
-		assertEquals("d", content.getText(new Range(3, 3)));
+		assertEquals("a", content.getText(new ContentRange(0, 0)));
+		assertEquals("b", content.getText(new ContentRange(1, 1)));
+		assertEquals("c", content.getText(new ContentRange(2, 2)));
+		assertEquals("d", content.getText(new ContentRange(3, 3)));
 
-		assertEquals("ab", content.getText(new Range(0, 1)));
-		assertEquals("bc", content.getText(new Range(1, 2)));
-		assertEquals("cd", content.getText(new Range(2, 3)));
+		assertEquals("ab", content.getText(new ContentRange(0, 1)));
+		assertEquals("bc", content.getText(new ContentRange(1, 2)));
+		assertEquals("cd", content.getText(new ContentRange(2, 3)));
 
-		assertEquals("abc", content.getText(new Range(0, 2)));
-		assertEquals("bcd", content.getText(new Range(1, 3)));
+		assertEquals("abc", content.getText(new ContentRange(0, 2)));
+		assertEquals("bcd", content.getText(new ContentRange(1, 3)));
 
-		assertEquals("abcd", content.getText(new Range(0, 3)));
+		assertEquals("abcd", content.getText(new ContentRange(0, 3)));
 
 		//
 		// a b x (gap) y c d
@@ -145,9 +145,9 @@
 		final Position px = content.createPosition(2);
 		final Position py = content.createPosition(3);
 
-		assertEquals("xy", content.getText(new Range(2, 3)));
+		assertEquals("xy", content.getText(new ContentRange(2, 3)));
 
-		content.remove(new Range(2, 3));
+		content.remove(new ContentRange(2, 3));
 
 		assertEquals(4, content.length());
 
@@ -159,19 +159,19 @@
 		assertEquals(3, pd.getOffset());
 		assertEquals(4, pe.getOffset());
 
-		assertEquals("a", content.getText(new Range(0, 0)));
-		assertEquals("b", content.getText(new Range(1, 1)));
-		assertEquals("c", content.getText(new Range(2, 2)));
-		assertEquals("d", content.getText(new Range(3, 3)));
+		assertEquals("a", content.getText(new ContentRange(0, 0)));
+		assertEquals("b", content.getText(new ContentRange(1, 1)));
+		assertEquals("c", content.getText(new ContentRange(2, 2)));
+		assertEquals("d", content.getText(new ContentRange(3, 3)));
 
-		assertEquals("ab", content.getText(new Range(0, 1)));
-		assertEquals("bc", content.getText(new Range(1, 2)));
-		assertEquals("cd", content.getText(new Range(2, 3)));
+		assertEquals("ab", content.getText(new ContentRange(0, 1)));
+		assertEquals("bc", content.getText(new ContentRange(1, 2)));
+		assertEquals("cd", content.getText(new ContentRange(2, 3)));
 
-		assertEquals("abc", content.getText(new Range(0, 2)));
-		assertEquals("bcd", content.getText(new Range(1, 3)));
+		assertEquals("abc", content.getText(new ContentRange(0, 2)));
+		assertEquals("bcd", content.getText(new ContentRange(1, 3)));
 
-		assertEquals("abcd", content.getText(new Range(0, 3)));
+		assertEquals("abcd", content.getText(new ContentRange(0, 3)));
 
 	}
 
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1ElementHandlingTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1ElementHandlingTest.java
index 382e12a..2ab625e 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1ElementHandlingTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1ElementHandlingTest.java
@@ -66,7 +66,7 @@
 		assertSame(rootElement, newElement.getParent());

 		assertEquals(contentLengthBefore + 2, content.length());

 		assertSame(content, newElement.getContent());

-		assertEquals(new Range(1, 2), newElement.getRange());

+		assertEquals(new ContentRange(1, 2), newElement.getRange());

 	}

 

 	@Test(expected = DocumentValidationException.class)

diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1FragmentHandlingTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1FragmentHandlingTest.java
index ad5826c..3a5f831 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1FragmentHandlingTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/L1FragmentHandlingTest.java
@@ -88,7 +88,7 @@
 			content.insertElementMarker(insertOffset);

 			content.insertElementMarker(insertOffset);

 			final Element element = new Element(elementName);

-			element.associate(content, new Range(insertOffset, insertOffset + 1));

+			element.associate(content, new ContentRange(insertOffset, insertOffset + 1));

 			nodes.add(element);

 		}

 		return new DocumentFragment(content, nodes);

diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTest.java
index f02d1cf..6b2250d 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTest.java
@@ -47,7 +47,7 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 

-		node.associate(content, new Range(0, 1));

+		node.associate(content, new ContentRange(0, 1));

 		assertEquals(0, node.getStartOffset());

 		assertEquals(1, node.getEndOffset());

 

@@ -63,7 +63,7 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 

-		node.associate(content, new Range(0, 1));

+		node.associate(content, new ContentRange(0, 1));

 		node.dissociate();

 

 		content.insertText(1, "Hello");

@@ -76,7 +76,7 @@
 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

 

-		node.associate(content, new Range(0, 1));

+		node.associate(content, new ContentRange(0, 1));

 		assertEquals("", node.getText());

 

 		content.insertText(1, "Hello");

@@ -149,7 +149,7 @@
 		node.associate(content, content.getRange());

 		content.insertText(0, "prefix");

 

-		assertEquals("Hello World", node.getText(new Range(node.getStartOffset() - 2, node.getEndOffset())));

+		assertEquals("Hello World", node.getText(new ContentRange(node.getStartOffset() - 2, node.getEndOffset())));

 	}

 

 	@Test

@@ -161,7 +161,7 @@
 		node.associate(content, content.getRange());

 		content.insertText(content.length(), "suffix");

 

-		assertEquals("Hello World", node.getText(new Range(node.getStartOffset(), node.getEndOffset() + 2)));

+		assertEquals("Hello World", node.getText(new ContentRange(node.getStartOffset(), node.getEndOffset() + 2)));

 	}

 

 	@Test

@@ -171,7 +171,7 @@
 		content.insertElementMarker(0);

 		content.insertText(1, "Hello World");

 		node.associate(content, content.getRange());

-		final Range range = node.getRange();

+		final ContentRange range = node.getRange();

 		assertEquals(0, range.getStartOffset());

 		assertEquals(content.length() - 1, range.getEndOffset());

 	}

diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTraversalTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTraversalTest.java
index 36fbed7..06ce95f 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTraversalTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/NodeTraversalTest.java
@@ -26,7 +26,7 @@
 

 	@Test

 	public void givenOneNode_shouldVisitNode() throws Exception {

-		final Text node = new Text(null, new GapContent(1), new Range(0, 0));

+		final Text node = new Text(null, new GapContent(1), new ContentRange(0, 0));

 		final boolean[] nodeWasVisited = new boolean[1];

 		final INodeVisitor nodeVisitor = new BaseNodeVisitor() {

 			@Override

@@ -73,7 +73,7 @@
 		final Element element = new Element(new QualifiedName(null, localName));

 		content.insertElementMarker(insertionOffset);

 		content.insertElementMarker(insertionOffset);

-		element.associate(content, new Range(insertionOffset, insertionOffset + 1));

+		element.associate(content, new ContentRange(insertionOffset, insertionOffset + 1));

 		return element;

 	}

 }

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 24a8255..dcd9632 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
@@ -27,7 +27,7 @@
 		content = new GapContent(10);

 		content.insertElementMarker(0);

 		content.insertElementMarker(0);

-		parent.associate(content, new Range(0, 1));

+		parent.associate(content, new ContentRange(0, 1));

 	}

 

 	@Test

@@ -157,7 +157,7 @@
 		final TestChild child3 = addTestChild();

 		addTestChild();

 

-		final List<Node> childNodes = parent.getChildNodes(new Range(child2.getStartOffset(), child3.getEndOffset()));

+		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));

@@ -214,7 +214,7 @@
 			children.add(addTestChild());

 		}

 

-		final List<Node> childNodes = parent.getChildNodes(new Range(children.get(1).getStartOffset(), children.get(3).getEndOffset()));

+		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));

@@ -228,7 +228,7 @@
 			children.add(addTestChild());

 		}

 

-		final List<Node> childNodes = parent.getChildNodes(new Range(children.get(1).getStartOffset(), children.get(3).getStartOffset()));

+		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));

@@ -241,7 +241,7 @@
 			children.add(addTestChild());

 		}

 

-		final List<Node> childNodes = parent.getChildNodes(new Range(children.get(1).getEndOffset(), children.get(3).getStartOffset()));

+		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));

 	}

@@ -253,7 +253,7 @@
 			children.add(addTestChild());

 		}

 

-		final List<Node> childNodes = parent.getChildNodes(new Range(children.get(1).getEndOffset(), children.get(3).getEndOffset()));

+		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));

@@ -399,7 +399,7 @@
 		content.insertElementMarker(offset);

 		final Element child = new Element("child");

 		parent.addChild(child);

-		child.associate(content, new Range(offset, offset + 1));

+		child.associate(content, new ContentRange(offset, offset + 1));

 		content.insertText(child.getEndOffset(), "Hello World");

 		final Node text = child.getChildNodes().get(0);

 		assertTextNodeEquals("Hello World", text.getStartOffset(), text.getEndOffset(), parent.getChildNodeAt(text.getStartOffset()));

@@ -502,7 +502,7 @@
 		content.insertElementMarker(offset);

 		final TestChild result = new TestChild();

 		parent.addChild(result);

-		result.associate(content, new Range(offset, offset + 1));

+		result.associate(content, new ContentRange(offset, offset + 1));

 		return result;

 	}

 

diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/RangeTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/RangeTest.java
index 083ba37..2fd1571 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/RangeTest.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/RangeTest.java
@@ -24,47 +24,47 @@
 

 	@Test

 	public void hasStartAndEndOffset() throws Exception {

-		final Range range = new Range(1, 5);

+		final ContentRange range = new ContentRange(1, 5);

 		assertEquals(1, range.getStartOffset());

 		assertEquals(5, range.getEndOffset());

 	}

 

 	@Test(expected = AssertionFailedException.class)

 	public void shouldNotAcceptEndSmallerThanStart() throws Exception {

-		new Range(5, 1);

+		new ContentRange(5, 1);

 	}

 

 	@Test

 	public void shouldHaveLengthIncludingStartAndEnd() throws Exception {

-		assertEquals(5, new Range(1, 5).length());

+		assertEquals(5, new ContentRange(1, 5).length());

 	}

 

 	@Test

 	public void shouldContainSmallerRange() throws Exception {

-		assertTrue(new Range(1, 5).contains(new Range(2, 4)));

-		assertFalse(new Range(2, 4).contains(new Range(1, 5)));

+		assertTrue(new ContentRange(1, 5).contains(new ContentRange(2, 4)));

+		assertFalse(new ContentRange(2, 4).contains(new ContentRange(1, 5)));

 	}

 

 	@Test

 	public void shouldContainItself() throws Exception {

-		final Range range = new Range(1, 5);

+		final ContentRange range = new ContentRange(1, 5);

 		assertTrue(range.contains(range));

 	}

 

 	@Test

 	public void canBeTrimmed() throws Exception {

-		assertEquals(new Range(2, 5), new Range(1, 5).trimTo(new Range(2, 6)));

-		assertEquals(new Range(1, 4), new Range(1, 5).trimTo(new Range(0, 4)));

+		assertEquals(new ContentRange(2, 5), new ContentRange(1, 5).trimTo(new ContentRange(2, 6)));

+		assertEquals(new ContentRange(1, 4), new ContentRange(1, 5).trimTo(new ContentRange(0, 4)));

 	}

 

 	@Test

 	public void canMoveBounds() throws Exception {

-		assertEquals(new Range(1, 8), new Range(3, 5).moveBounds(-2, 3));

+		assertEquals(new ContentRange(1, 8), new ContentRange(3, 5).moveBounds(-2, 3));

 	}

 

 	@Test

 	public void containsSingleOffset() throws Exception {

-		final Range range = new Range(1, 5);

+		final ContentRange range = new ContentRange(1, 5);

 		assertFalse(range.contains(0));

 		assertTrue(range.contains(1));

 		assertTrue(range.contains(2));

@@ -75,9 +75,9 @@
 

 	@Test

 	public void isValueObject() throws Exception {

-		final Range range1a = new Range(1, 5);

-		final Range range1b = new Range(1, 5);

-		final Range range2 = new Range(2, 4);

+		final ContentRange range1a = new ContentRange(1, 5);

+		final ContentRange range1b = new ContentRange(1, 5);

+		final ContentRange range2 = new ContentRange(2, 4);

 

 		assertTrue("equals if values equals", range1a.equals(range1b));

 		assertTrue("equals is symmetric", range1b.equals(range1a));

diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/TestDocumentTextBox.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/TestDocumentTextBox.java
index faa7dcd..b9dea90 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/TestDocumentTextBox.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/TestDocumentTextBox.java
@@ -19,7 +19,7 @@
 import org.eclipse.vex.core.internal.css.Styles;
 import org.eclipse.vex.core.internal.dom.Document;
 import org.eclipse.vex.core.internal.dom.Element;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 
 /**
  * Tests the DocumentTestBox class. We focus here on proper offsets, since text splitting is tested thoroughly in
@@ -85,7 +85,7 @@
 		assertSplit(box, 0, true, "b", "aggy orange trousers");
 		assertSplit(box, -1, true, "b", "aggy orange trousers");
 
-		doc.delete(new Range(1, 21));
+		doc.delete(new ContentRange(1, 21));
 	}
 
 	private void assertSplit(final DocumentTextBox box, final int splitPos, final boolean force, final String left, final String right) {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Content.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Content.java
index beec629..152d013 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Content.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Content.java
@@ -57,7 +57,7 @@
 	 *            element markers are removed.
 	 * @return the plain text of the given region without element markers
 	 */
-	public String getText(final Range range);
+	public String getText(final ContentRange range);
 
 	/**
 	 * Get the whole plain text of this content. The plain text does not contain any information about the element
@@ -77,7 +77,7 @@
 	 *            Offset at which the substring ends.
 	 * @return the text of the given region including element markers
 	 */
-	public String getRawText(final Range range);
+	public String getRawText(final ContentRange range);
 
 	/**
 	 * Get the whole raw text of this content. The raw text does also contain the element markers in this content.
@@ -105,7 +105,7 @@
 	 *            Offset at which the region to copy ends.
 	 * @return the copy of the given region
 	 */
-	public Content getContent(final Range range);
+	public Content getContent(final ContentRange range);
 
 	/**
 	 * Get a full copy of this content.
@@ -141,7 +141,7 @@
 	 *            Number of characters to delete.
 	 * @model
 	 */
-	public void remove(Range range);
+	public void remove(ContentRange range);
 
 	/**
 	 * Return the length of the content.
@@ -150,5 +150,5 @@
 	 */
 	public int length();
 
-	public Range getRange();
+	public ContentRange getRange();
 }
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Range.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/ContentRange.java
similarity index 77%
rename from org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Range.java
rename to org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/ContentRange.java
index bc95cca..ffbd405 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Range.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/ContentRange.java
@@ -17,12 +17,12 @@
 /**

  * @author Florian Thienel

  */

-public class Range {

+public class ContentRange {

 

 	private final int startOffset;

 	private final int endOffset;

 

-	public Range(final int startOffset, final int endOffset) {

+	public ContentRange(final int startOffset, final int endOffset) {

 		Assert.isTrue(startOffset <= endOffset, MessageFormat.format("startOffset {0} must not be greater than endOffset {1}", startOffset, endOffset));

 		this.startOffset = startOffset;

 		this.endOffset = endOffset;

@@ -40,7 +40,7 @@
 		return endOffset - startOffset + 1;

 	}

 

-	public boolean contains(final Range other) {

+	public boolean contains(final ContentRange other) {

 		return startOffset <= other.startOffset && endOffset >= other.endOffset;

 	}

 

@@ -48,16 +48,16 @@
 		return startOffset <= offset && offset <= endOffset;

 	}

 

-	public Range trimTo(final Range limit) {

-		return new Range(Math.max(limit.getStartOffset(), startOffset), Math.min(endOffset, limit.getEndOffset()));

+	public ContentRange trimTo(final ContentRange limit) {

+		return new ContentRange(Math.max(limit.getStartOffset(), startOffset), Math.min(endOffset, limit.getEndOffset()));

 	}

 

-	public Range moveBounds(final int delta) {

+	public ContentRange moveBounds(final int delta) {

 		return moveBounds(delta, delta);

 	}

 

-	public Range moveBounds(final int deltaStart, final int deltaEnd) {

-		return new Range(startOffset + deltaStart, endOffset + deltaEnd);

+	public ContentRange moveBounds(final int deltaStart, final int deltaEnd) {

+		return new ContentRange(startOffset + deltaStart, endOffset + deltaEnd);

 	}

 

 	@Override

@@ -85,7 +85,7 @@
 		if (getClass() != obj.getClass()) {

 			return false;

 		}

-		final Range other = (Range) obj;

+		final ContentRange other = (ContentRange) obj;

 		if (endOffset != other.endOffset) {

 			return false;

 		}

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 3299f84..93beb4c 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
@@ -36,7 +36,7 @@
 	public DeepCopy(final Node node) {

 		final int delta;

 		if (node.isAssociated()) {

-			final Range range = node.getRange();

+			final ContentRange range = node.getRange();

 			delta = -range.getStartOffset();

 			content = node.getContent().getContent(range);

 		} else {

@@ -56,7 +56,7 @@
 	 * @param range

 	 *            the range to copy

 	 */

-	public DeepCopy(final Parent parent, final Range range) {

+	public DeepCopy(final Parent parent, final ContentRange range) {

 		final int delta;

 		if (parent.isAssociated()) {

 			delta = -range.getStartOffset();

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 c11d7c7..27aa880 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
@@ -75,7 +75,7 @@
 

 	private void associate(final Node source, final Node copy) {

 		if (source.isAssociated()) {

-			final Range range = source.getRange();

+			final ContentRange range = source.getRange();

 			copy.associate(content, range.moveBounds(delta));

 		}

 	}

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 345b4bf..489810d 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
@@ -262,7 +262,7 @@
 		final Comment comment = new Comment();
 		getContent().insertElementMarker(offset);
 		getContent().insertElementMarker(offset);
-		comment.associate(getContent(), new Range(offset, offset + 1));
+		comment.associate(getContent(), new ContentRange(offset, offset + 1));
 
 		parent.insertChild(parent.getInsertionIndex(offset), comment);
 
@@ -288,7 +288,7 @@
 		final Element element = new Element(elementName);
 		getContent().insertElementMarker(offset);
 		getContent().insertElementMarker(offset);
-		element.associate(getContent(), new Range(offset, offset + 1));
+		element.associate(getContent(), new ContentRange(offset, offset + 1));
 
 		parent.insertChild(parent.getInsertionIndex(offset), element);
 
@@ -327,7 +327,7 @@
 		fireContentInserted(new DocumentEvent(this, parent, offset, fragment.getContent().length(), null));
 	}
 
-	public void delete(final Range range) throws DocumentValidationException {
+	public void delete(final ContentRange range) throws DocumentValidationException {
 		final Parent surroundingParent = getParentAt(range.getStartOffset());
 		final Parent parentAtEndOffset = getParentAt(range.getEndOffset());
 		if (surroundingParent != parentAtEndOffset) {
@@ -378,7 +378,7 @@
 	 */
 
 	public char getCharacterAt(final int offset) {
-		final String text = getContent().getText(new Range(offset, offset));
+		final String text = getContent().getText(new ContentRange(offset, offset));
 		if (text.length() == 0) {
 			/*
 			 * XXX This is used in VexWidgetImpl.deleteNextChar/deletePreviousChar to find out if there is an element
@@ -452,13 +452,13 @@
 		return getContent().isElementMarker(offset);
 	}
 
-	public DocumentFragment getFragment(final Range range) {
+	public DocumentFragment getFragment(final ContentRange range) {
 		final Parent parent = getParentOfRange(range);
 		final DeepCopy deepCopy = new DeepCopy(parent, range);
 		return new DocumentFragment(deepCopy.getContent(), deepCopy.getNodes());
 	}
 
-	private Parent getParentOfRange(final Range range) {
+	private Parent getParentOfRange(final ContentRange range) {
 		Assert.isTrue(getRange().contains(range));
 
 		final Node startNode = getChildNodeAt(range.getStartOffset());
@@ -470,7 +470,7 @@
 		return parent;
 	}
 
-	public List<Node> getNodes(final Range range) {
+	public List<Node> getNodes(final ContentRange range) {
 		return getParentOfRange(range).getChildNodes(range);
 	}
 
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentBuilder.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentBuilder.java
index 838a20e..dec191b 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentBuilder.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentBuilder.java
@@ -115,7 +115,7 @@
 		// we must insert the trailing sentinel first, else the insertion
 		// pushes the end position of the element to after the sentinel
 		content.insertElementMarker(content.length());
-		entry.element.associate(content, new Range(entry.offset, content.length() - 1));
+		entry.element.associate(content, new ContentRange(entry.offset, content.length() - 1));
 
 		if (isBlock(entry.element)) {
 			trimLeading = true;
@@ -237,7 +237,7 @@
 		appendChars(true);
 
 		content.insertElementMarker(content.length());
-		comment.associate(content, new Range(startOffset, content.length() - 1));
+		comment.associate(content, new ContentRange(startOffset, content.length() - 1));
 		if (isBlock(comment)) {
 			trimLeading = true;
 		}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/GapContent.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/GapContent.java
index f2e2b5f..dc3cd2b 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/GapContent.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/GapContent.java
@@ -159,7 +159,7 @@
 	 * @param length
 	 *            Number of characters to delete.
 	 */
-	public void remove(final Range range) {
+	public void remove(final ContentRange range) {
 		assertOffset(range.getStartOffset(), 0, length() - range.length());
 		assertPositive(range.length());
 
@@ -179,7 +179,7 @@
 		return getText(getRange());
 	}
 
-	public String getText(final Range range) {
+	public String getText(final ContentRange range) {
 		Assert.isTrue(getRange().contains(range));
 
 		final int delta = gapEnd - gapStart;
@@ -189,13 +189,13 @@
 		} else if (range.getStartOffset() >= gapStart) {
 			appendPlainText(result, range.moveBounds(delta, delta));
 		} else {
-			appendPlainText(result, new Range(range.getStartOffset(), gapStart - 1));
-			appendPlainText(result, new Range(gapEnd, range.getEndOffset() + delta));
+			appendPlainText(result, new ContentRange(range.getStartOffset(), gapStart - 1));
+			appendPlainText(result, new ContentRange(gapEnd, range.getEndOffset() + delta));
 		}
 		return result.toString();
 	}
 
-	private void appendPlainText(final StringBuilder stringBuilder, final Range range) {
+	private void appendPlainText(final StringBuilder stringBuilder, final ContentRange range) {
 		for (int i = range.getStartOffset(); range.contains(i); i++) {
 			final char c = content[i];
 			if (!isElementMarker(c)) {
@@ -208,7 +208,7 @@
 		return getRawText(getRange());
 	}
 
-	public String getRawText(final Range range) {
+	public String getRawText(final ContentRange range) {
 		Assert.isTrue(getRange().contains(range));
 
 		final int delta = gapEnd - gapStart;
@@ -218,13 +218,13 @@
 		} else if (range.getStartOffset() >= gapStart) {
 			appendRawText(result, range.moveBounds(delta, delta));
 		} else {
-			appendRawText(result, new Range(range.getStartOffset(), gapStart - 1));
-			appendRawText(result, new Range(gapEnd, range.getEndOffset() + delta));
+			appendRawText(result, new ContentRange(range.getStartOffset(), gapStart - 1));
+			appendRawText(result, new ContentRange(gapEnd, range.getEndOffset() + delta));
 		}
 		return result.toString();
 	}
 
-	private void appendRawText(final StringBuilder stringBuilder, final Range range) {
+	private void appendRawText(final StringBuilder stringBuilder, final ContentRange range) {
 		stringBuilder.append(content, range.getStartOffset(), range.length());
 	}
 
@@ -238,7 +238,7 @@
 		return getContent(getRange());
 	}
 
-	public Content getContent(final Range range) {
+	public Content getContent(final ContentRange range) {
 		Assert.isTrue(getRange().contains(range));
 
 		final GapContent result = new GapContent(range.length());
@@ -246,7 +246,7 @@
 		return result;
 	}
 
-	private static void copyContent(final Content source, final Content destination, final Range sourceRange, final int destinationStartOffset) {
+	private static void copyContent(final Content source, final Content destination, final ContentRange sourceRange, final int destinationStartOffset) {
 		for (int i = 0; i < sourceRange.length(); i++) {
 			final int sourceOffset = sourceRange.getStartOffset() + i;
 			final int destinationOffset = destinationStartOffset + i;
@@ -266,8 +266,8 @@
 		return content.length - (gapEnd - gapStart);
 	}
 
-	public Range getRange() {
-		return new Range(0, length() - 1);
+	public ContentRange getRange() {
+		return new ContentRange(0, length() - 1);
 	}
 
 	/**
@@ -296,7 +296,7 @@
 	 * @return the text of the given region including element markers
 	 */
 	public CharSequence subSequence(final int startOffset, final int endOffset) {
-		return getRawText(new Range(startOffset, endOffset));
+		return getRawText(new ContentRange(startOffset, endOffset));
 	}
 
 	// ====================================================== PRIVATE
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 4e04e56..053b86a 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
@@ -55,7 +55,7 @@
 	 * @param endOffset
 	 *            offset at which the node's content ends
 	 */
-	public void associate(final Content content, final Range range) {
+	public void associate(final Content content, final ContentRange range) {
 		if (isAssociated()) {
 			dissociate();
 		}
@@ -112,8 +112,8 @@
 		return endPosition.getOffset();
 	}
 
-	public Range getRange() {
-		return new Range(getStartOffset(), getEndOffset());
+	public ContentRange getRange() {
+		return new ContentRange(getStartOffset(), getEndOffset());
 	}
 
 	/**
@@ -141,7 +141,7 @@
 	 *            the range's end offst
 	 * @return true if this node is fully within the given range
 	 */
-	public boolean isInRange(final Range range) {
+	public boolean isInRange(final ContentRange range) {
 		if (!isAssociated()) {
 			return false;
 		}
@@ -166,7 +166,7 @@
 	 *            the end offset
 	 * @return the textual content in the given range
 	 */
-	public String getText(final Range range) {
+	public String getText(final ContentRange range) {
 		Assert.isTrue(isAssociated(), "Node must be associated to a Content region to have textual content.");
 		return content.getText(range.trimTo(getRange()));
 	}
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 3eedc39..e37462a 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
@@ -103,10 +103,10 @@
 	 *            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 Range range) {

+	public List<Node> getChildNodes(final ContentRange range) {

 		final List<Node> result = new ArrayList<Node>();

 

-		final Range trimmedRange = range.trimTo(getRange());

+		final ContentRange trimmedRange = range.trimTo(getRange());

 		int textStart = trimmedRange.getStartOffset();

 		for (final Node child : children) {

 			if (!child.isAssociated()) {

@@ -126,9 +126,9 @@
 		final int textStart = findNextTextStart(startOffset, endOffset);

 		final int textEnd = findNextTextEnd(endOffset, textStart);

 		if (textStart < textEnd) {

-			result.add(new Text(this, getContent(), new Range(textStart, textEnd)));

+			result.add(new Text(this, getContent(), new ContentRange(textStart, textEnd)));

 		} else if (textStart == textEnd && !getContent().isElementMarker(textStart)) {

-			result.add(new Text(this, getContent(), new Range(textStart, textEnd)));

+			result.add(new Text(this, getContent(), new ContentRange(textStart, textEnd)));

 		}

 	}

 

@@ -150,14 +150,14 @@
 		if (offset <= getStartOffset()) {

 			return Collections.emptyList();

 		}

-		return getChildNodes(new Range(getStartOffset() + 1, offset));

+		return getChildNodes(new ContentRange(getStartOffset() + 1, offset));

 	}

 

 	public List<Node> getChildNodesAfter(final int offset) {

 		if (offset >= getEndOffset()) {

 			return Collections.emptyList();

 		}

-		return getChildNodes(new Range(offset, getEndOffset() - 1));

+		return getChildNodes(new ContentRange(offset, getEndOffset() - 1));

 	}

 

 	/**

diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Text.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Text.java
index e79dfd0..131a7e8 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Text.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Text.java
@@ -28,7 +28,7 @@
 	 * @param endOffset
 	 *            character offset of the end of the run
 	 */
-	public Text(final Parent parent, final Content content, final Range range) {
+	public Text(final Parent parent, final Content content, final ContentRange range) {
 		setParent(parent);
 		associate(content, range);
 	}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/DocumentTextBox.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/DocumentTextBox.java
index 1ac5c73..6b4fcce 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/DocumentTextBox.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/DocumentTextBox.java
@@ -15,7 +15,7 @@
 import org.eclipse.vex.core.internal.core.Graphics;
 import org.eclipse.vex.core.internal.css.Styles;
 import org.eclipse.vex.core.internal.dom.Node;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 
 /**
  * A TextBox that gets its text from the document. Represents text which is editable within the VexWidget.
@@ -82,7 +82,7 @@
 	 */
 	@Override
 	public String getText() {
-		return getNode().getText(new Range(getStartOffset(), getEndOffset()));
+		return getNode().getText(new ContentRange(getStartOffset(), getEndOffset()));
 	}
 
 	/**
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 6fc49d2..a4d910e 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
@@ -25,7 +25,7 @@
 import org.eclipse.vex.core.internal.dom.Comment;
 import org.eclipse.vex.core.internal.dom.Element;
 import org.eclipse.vex.core.internal.dom.Node;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 import org.eclipse.vex.core.internal.dom.Text;
 
 /**
@@ -283,7 +283,7 @@
 		node.accept(new BaseNodeVisitor() {
 			@Override
 			public void visit(final Element element) {
-				for (final Node childNode : element.getChildNodes(new Range(startOffset, endOffset))) {
+				for (final Node childNode : element.getChildNodes(new ContentRange(startOffset, endOffset))) {
 					childNode.accept(new BaseNodeVisitor() {
 						@Override
 						public void visit(final Element element) {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/DeleteEdit.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/DeleteEdit.java
index fe32a6a..d82dc6c 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/DeleteEdit.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/DeleteEdit.java
@@ -3,15 +3,15 @@
 import org.eclipse.vex.core.internal.dom.Document;

 import org.eclipse.vex.core.internal.dom.DocumentFragment;

 import org.eclipse.vex.core.internal.dom.DocumentValidationException;

-import org.eclipse.vex.core.internal.dom.Range;

+import org.eclipse.vex.core.internal.dom.ContentRange;

 

 public class DeleteEdit implements IUndoableEdit {

 

 	private final Document document;

-	private final Range range;

+	private final ContentRange range;

 	private DocumentFragment fragment = null;

 

-	public DeleteEdit(final Document document, final Range range) {

+	public DeleteEdit(final Document document, final ContentRange range) {

 		this.document = document;

 		this.range = range;

 	}

diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/InsertTextEdit.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/InsertTextEdit.java
index 33a912e..196bca5 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/InsertTextEdit.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/undo/InsertTextEdit.java
@@ -2,7 +2,7 @@
 

 import org.eclipse.vex.core.internal.dom.Document;

 import org.eclipse.vex.core.internal.dom.DocumentValidationException;

-import org.eclipse.vex.core.internal.dom.Range;

+import org.eclipse.vex.core.internal.dom.ContentRange;

 

 public class InsertTextEdit implements IUndoableEdit {

 

@@ -29,7 +29,7 @@
 

 	public void undo() throws CannotUndoException {

 		try {

-			document.delete(new Range(offset, offset + text.length()));

+			document.delete(new ContentRange(offset, offset + text.length()));

 		} catch (final DocumentValidationException ex) {

 			throw new CannotUndoException();

 		}

diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/IVexWidget.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/IVexWidget.java
index a9c53a5..93d689c 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/IVexWidget.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/IVexWidget.java
@@ -20,7 +20,7 @@
 import org.eclipse.vex.core.internal.dom.DocumentFragment;
 import org.eclipse.vex.core.internal.dom.DocumentValidationException;
 import org.eclipse.vex.core.internal.dom.Element;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 import org.eclipse.vex.core.internal.layout.Box;
 import org.eclipse.vex.core.internal.layout.BoxFactory;
 import org.eclipse.vex.core.internal.undo.CannotRedoException;
@@ -185,7 +185,7 @@
 	/**
 	 * Returns the offset range in the content which is selected.
 	 */
-	public Range getSelectedRange();
+	public ContentRange getSelectedRange();
 
 	/**
 	 * Returns the currently selected document fragment, or null if there is no current selection.
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 5775ffb..483f162 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
@@ -43,7 +43,7 @@
 import org.eclipse.vex.core.internal.dom.Element;
 import org.eclipse.vex.core.internal.dom.Node;
 import org.eclipse.vex.core.internal.dom.Position;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 import org.eclipse.vex.core.internal.dom.Validator;
 import org.eclipse.vex.core.internal.layout.BlockBox;
 import org.eclipse.vex.core.internal.layout.Box;
@@ -379,7 +379,7 @@
 	private void deleteNextToCaret() {
 		try {
 			final int nextToCaret = getCaretOffset();
-			applyEdit(new DeleteEdit(document, new Range(nextToCaret, nextToCaret)), nextToCaret);
+			applyEdit(new DeleteEdit(document, new ContentRange(nextToCaret, nextToCaret)), nextToCaret);
 			this.moveTo(nextToCaret);
 		} catch (final DocumentValidationException e) {
 			e.printStackTrace(); // This should never happen, because we constrain the selection
@@ -389,7 +389,7 @@
 	private void deleteBeforeCaret() {
 		try {
 			final int beforeCaret = getCaretOffset() - 1;
-			applyEdit(new DeleteEdit(document, new Range(beforeCaret, beforeCaret)), beforeCaret + 1);
+			applyEdit(new DeleteEdit(document, new ContentRange(beforeCaret, beforeCaret)), beforeCaret + 1);
 			this.moveTo(beforeCaret);
 		} catch (final DocumentValidationException e) {
 			e.printStackTrace(); // This should never happen, because we constrain the selection
@@ -555,7 +555,7 @@
 		final Element parent = doc.getElementForInsertionAt(startOffset);
 		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 Range(startOffset, endOffset)));
+		final List<QualifiedName> selectedNodes = Node.getNodeNames(parent.getChildNodes(new ContentRange(startOffset, endOffset)));
 		final List<QualifiedName> candidates = createCandidatesList(validator, parent, Validator.PCDATA);
 
 		filterInvalidSequences(validator, parent, nodesBefore, nodesAfter, candidates);
@@ -666,11 +666,11 @@
 		return selectionStart;
 	}
 
-	public Range getSelectedRange() {
+	public ContentRange getSelectedRange() {
 		if (!hasSelection()) {
-			return new Range(getCaretOffset(), getCaretOffset());
+			return new ContentRange(getCaretOffset(), getCaretOffset());
 		}
-		return new Range(getSelectionStart(), getSelectionEnd() - 1);
+		return new ContentRange(getSelectionStart(), getSelectionEnd() - 1);
 	}
 
 	public DocumentFragment getSelectedFragment() {
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/MoveSelectionUpHandler.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/MoveSelectionUpHandler.java
index af0b32a..e091577 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/MoveSelectionUpHandler.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/MoveSelectionUpHandler.java
@@ -12,7 +12,7 @@
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.vex.core.internal.dom.Node;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 import org.eclipse.vex.core.internal.layout.BlockBox;
 import org.eclipse.vex.core.internal.layout.Box;
 import org.eclipse.vex.core.internal.widget.IBoxFilter;
@@ -33,7 +33,7 @@
 		// Find the lowest block box that completely contains the selection
 		final Box box = widget.findInnermostBox(new IBoxFilter() {
 			public boolean matches(final Box box) {
-				final Range selectedRange = widget.getSelectedRange();
+				final ContentRange selectedRange = widget.getSelectedRange();
 				return box instanceof BlockBox && box.getNode() != null && box.getStartOffset() <= selectedRange.getStartOffset() && box.getEndOffset() >= selectedRange.getEndOffset();
 			}
 		});
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 2df3d15..a694294 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
@@ -27,7 +27,7 @@
 import org.eclipse.vex.core.internal.dom.Element;
 import org.eclipse.vex.core.internal.dom.Node;
 import org.eclipse.vex.core.internal.dom.Parent;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 import org.eclipse.vex.core.internal.layout.BlockBox;
 import org.eclipse.vex.core.internal.layout.Box;
 import org.eclipse.vex.core.internal.layout.ElementOrRangeCallback;
@@ -171,7 +171,7 @@
 	 */
 	public static boolean elementOrRangeIsPartiallySelected(final IVexWidget vexWidget, final Object elementOrRange) {
 		final IntRange range = getInnerRange(elementOrRange);
-		final Range selectedRange = vexWidget.getSelectedRange();
+		final ContentRange selectedRange = vexWidget.getSelectedRange();
 		return range.getEnd() >= selectedRange.getStartOffset() && range.getStart() <= selectedRange.getEndOffset();
 	}
 
@@ -282,7 +282,7 @@
 		final Box parent = vexWidget.findInnermostBox(new IBoxFilter() {
 			public boolean matches(final Box box) {
 				System.out.println("Matching " + box);
-				final Range selectedRange = vexWidget.getSelectedRange();
+				final ContentRange selectedRange = vexWidget.getSelectedRange();
 				return box instanceof BlockBox && box.getStartOffset() <= selectedRange.getStartOffset() && box.getEndOffset() >= selectedRange.getEndOffset();
 			}
 		});
@@ -293,7 +293,7 @@
 
 		final Box[] children = parent.getChildren();
 		System.out.println("Parent has " + children.length + " children");
-		final Range selectedRange = vexWidget.getSelectedRange();
+		final ContentRange selectedRange = vexWidget.getSelectedRange();
 		for (final Box child : children) {
 			if (child instanceof BlockBox && child.getStartOffset() >= selectedRange.getStartOffset() && child.getEndOffset() <= selectedRange.getEndOffset()) {
 				System.out.println("  adding " + child);
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/DocumentFragmentTransfer.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/DocumentFragmentTransfer.java
index 2e09f8f..8b63956 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/DocumentFragmentTransfer.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/DocumentFragmentTransfer.java
@@ -30,7 +30,7 @@
 import org.eclipse.vex.core.internal.dom.Element;
 import org.eclipse.vex.core.internal.dom.GapContent;
 import org.eclipse.vex.core.internal.dom.Node;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 
 /**
  * Transfer object that handles Vex DocumentFragments.
@@ -140,7 +140,7 @@
 			if (content.isElementMarker(i)) {
 				out.writeUTF("\0"); // This internal representation of element markers has nothing to do with the internal representation in GapContent.
 			} else {
-				out.writeUTF(content.getText(new Range(i, i)));
+				out.writeUTF(content.getText(new ContentRange(i, i)));
 			}
 		}
 	}
@@ -191,7 +191,7 @@
 		final int startOffset = in.readInt();
 		final int endOffset = in.readInt();
 		final Element element = new Element(elementName);
-		element.associate(content, new Range(startOffset, endOffset));
+		element.associate(content, new ContentRange(startOffset, endOffset));
 
 		final int attrCount = in.readInt();
 		for (int i = 0; i < attrCount; i++) {
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/VexWidget.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/VexWidget.java
index f40dcfe..42276e5 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/VexWidget.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/swt/VexWidget.java
@@ -64,7 +64,7 @@
 import org.eclipse.vex.core.internal.dom.DocumentValidationException;
 import org.eclipse.vex.core.internal.dom.Element;
 import org.eclipse.vex.core.internal.dom.Node;
-import org.eclipse.vex.core.internal.dom.Range;
+import org.eclipse.vex.core.internal.dom.ContentRange;
 import org.eclipse.vex.core.internal.layout.Box;
 import org.eclipse.vex.core.internal.layout.BoxFactory;
 import org.eclipse.vex.core.internal.widget.HostComponent;
@@ -231,7 +231,7 @@
 		return impl.getLayoutWidth();
 	}
 
-	public Range getSelectedRange() {
+	public ContentRange getSelectedRange() {
 		return impl.getSelectedRange();
 	}