diff options
author | Dani Megert | 2006-07-19 15:55:53 +0000 |
---|---|---|
committer | Dani Megert | 2006-07-19 15:55:53 +0000 |
commit | 61b33c7f12aed240a7dfcda7d9b52f57123927d8 (patch) | |
tree | 15729c9360483abb26f73744909fc1ee2077900a /org.eclipse.text/src/org/eclipse/text/edits | |
parent | 0edf4d147744c013fd80557f10144e4d2582f01b (diff) | |
download | eclipse.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')
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 ------------------------------------------------------------- /** |