Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDani Megert2006-07-19 15:55:53 +0000
committerDani Megert2006-07-19 15:55:53 +0000
commit61b33c7f12aed240a7dfcda7d9b52f57123927d8 (patch)
tree15729c9360483abb26f73744909fc1ee2077900a /org.eclipse.text/src/org/eclipse/text/edits
parent0edf4d147744c013fd80557f10144e4d2582f01b (diff)
downloadeclipse.platform.text-61b33c7f12aed240a7dfcda7d9b52f57123927d8.tar.gz
eclipse.platform.text-61b33c7f12aed240a7dfcda7d9b52f57123927d8.tar.xz
eclipse.platform.text-61b33c7f12aed240a7dfcda7d9b52f57123927d8.zip
Fixed bug 151084: TextEdit#toString() should render hierarchy
Diffstat (limited to 'org.eclipse.text/src/org/eclipse/text/edits')
-rw-r--r--org.eclipse.text/src/org/eclipse/text/edits/InsertEdit.java8
-rw-r--r--org.eclipse.text/src/org/eclipse/text/edits/MultiTextEdit.java14
-rw-r--r--org.eclipse.text/src/org/eclipse/text/edits/ReplaceEdit.java8
-rw-r--r--org.eclipse.text/src/org/eclipse/text/edits/TextEdit.java47
4 files changed, 58 insertions, 19 deletions
diff --git a/org.eclipse.text/src/org/eclipse/text/edits/InsertEdit.java b/org.eclipse.text/src/org/eclipse/text/edits/InsertEdit.java
index 72482d19b73..d22a9a5e9ab 100644
--- a/org.eclipse.text/src/org/eclipse/text/edits/InsertEdit.java
+++ b/org.eclipse.text/src/org/eclipse/text/edits/InsertEdit.java
@@ -88,9 +88,11 @@ public final class InsertEdit extends TextEdit {
}
/*
- * @see java.lang.Object#toString()
+ * @see org.eclipse.text.edits.TextEdit#internalToString(java.lang.StringBuffer, int)
+ * @since 3.3
*/
- public String toString() {
- return super.toString() + " <<" + fText; //$NON-NLS-1$
+ void internalToString(StringBuffer buffer, int indent) {
+ super.internalToString(buffer, indent);
+ buffer.append(" <<").append(fText); //$NON-NLS-1$
}
}
diff --git a/org.eclipse.text/src/org/eclipse/text/edits/MultiTextEdit.java b/org.eclipse.text/src/org/eclipse/text/edits/MultiTextEdit.java
index 63c9e604051..f2d537a526a 100644
--- a/org.eclipse.text/src/org/eclipse/text/edits/MultiTextEdit.java
+++ b/org.eclipse.text/src/org/eclipse/text/edits/MultiTextEdit.java
@@ -217,13 +217,13 @@ public class MultiTextEdit extends TextEdit {
fDefined= true;
}
- /**
- * {@inheritDoc}
+ /*
+ * @see org.eclipse.text.edits.TextEdit#internalToString(java.lang.StringBuffer, int)
+ * @since 3.3
*/
- public String toString() {
- String result= super.toString();
- if (fDefined)
- return result;
- return result + " [undefined]"; //$NON-NLS-1$
+ void internalToString(StringBuffer buffer, int indent) {
+ super.internalToString(buffer, indent);
+ if (! fDefined)
+ buffer.append(" [undefined]"); //$NON-NLS-1$
}
}
diff --git a/org.eclipse.text/src/org/eclipse/text/edits/ReplaceEdit.java b/org.eclipse.text/src/org/eclipse/text/edits/ReplaceEdit.java
index 4777c09b650..8b44c6c58b5 100644
--- a/org.eclipse.text/src/org/eclipse/text/edits/ReplaceEdit.java
+++ b/org.eclipse.text/src/org/eclipse/text/edits/ReplaceEdit.java
@@ -91,9 +91,11 @@ public final class ReplaceEdit extends TextEdit {
}
/*
- * @see java.lang.Object#toString()
+ * @see org.eclipse.text.edits.TextEdit#internalToString(java.lang.StringBuffer, int)
+ * @since 3.3
*/
- public String toString() {
- return super.toString() + " <<" + fText; //$NON-NLS-1$
+ void internalToString(StringBuffer buffer, int indent) {
+ super.internalToString(buffer, indent);
+ buffer.append(" <<").append(fText); //$NON-NLS-1$
}
}
diff --git a/org.eclipse.text/src/org/eclipse/text/edits/TextEdit.java b/org.eclipse.text/src/org/eclipse/text/edits/TextEdit.java
index e42e5a45102..4ba31c996fc 100644
--- a/org.eclipse.text/src/org/eclipse/text/edits/TextEdit.java
+++ b/org.eclipse.text/src/org/eclipse/text/edits/TextEdit.java
@@ -48,9 +48,9 @@ import org.eclipse.jface.text.Region;
* they have been added to a parent. The following code example:
* <pre>
* IDocument document= new Document("org");
- * MultiEdit edit= new MultiEdit();
- * edit.add(new InsertEdit(0, "www.");
- * edit.add(new InsertEdit(0, "eclipse.");
+ * MultiTextEdit edit= new MultiTextEdit();
+ * edit.addChild(new InsertEdit(0, "www."));
+ * edit.addChild(new InsertEdit(0, "eclipse."));
* edit.apply(document);
* </pre>
* therefore results in string: "www.eclipse.org".
@@ -513,11 +513,28 @@ public abstract class TextEdit {
* @see java.lang.Object#toString()
*/
public String toString() {
- StringBuffer buffer= new StringBuffer("{"); //$NON-NLS-1$
+ StringBuffer buffer= new StringBuffer();
+ toStringWithChildren(buffer, 0);
+ return buffer.toString();
+ }
+
+ /**
+ * Adds the string representation of this text edit without
+ * children information to the given string buffer.
+ *
+ * @param buffer the string buffer
+ * @param indent the indent level in number of spaces
+ * @since 3.3
+ */
+ void internalToString(StringBuffer buffer, int indent) {
+ for (int i= indent; i > 0; i--) {
+ buffer.append(" "); //$NON-NLS-1$
+ }
+ buffer.append("{"); //$NON-NLS-1$
String name= getClass().getName();
int index= name.lastIndexOf('.');
if (index != -1) {
- buffer.append(name.substring(index + 1));
+ buffer.append(name.substring(index + 1));
} else {
buffer.append(name);
}
@@ -531,9 +548,27 @@ public abstract class TextEdit {
buffer.append(getLength());
buffer.append("]"); //$NON-NLS-1$
}
- return buffer.toString();
}
+ /**
+ * Adds the string representation for this text edit
+ * and its children to the given string buffer.
+ *
+ * @param buffer the string buffer
+ * @param indent the indent level in number of spaces
+ * @since 3.3
+ */
+ private void toStringWithChildren(StringBuffer buffer, int indent) {
+ internalToString(buffer, indent);
+ if (fChildren != null) {
+ for (Iterator iterator= fChildren.iterator(); iterator.hasNext();) {
+ TextEdit child= (TextEdit) iterator.next();
+ buffer.append('\n');
+ child.toStringWithChildren(buffer, indent + 1);
+ }
+ }
+ }
+
//---- Copying -------------------------------------------------------------
/**

Back to the top