diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/TextWithImportsImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/TextWithImportsImpl.java index 87ee0491bfbe..f60ab7f2eaaa 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/TextWithImportsImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/TextWithImportsImpl.java @@ -23,13 +23,12 @@ import com.intellij.psi.PsiExpressionCodeFragment; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; -public class TextWithImportsImpl implements TextWithImports{ +public final class TextWithImportsImpl implements TextWithImports{ private final CodeFragmentKind myKind; private String myText; private final String myImports; - public TextWithImportsImpl (PsiExpression expression) { myKind = CodeFragmentKind.EXPRESSION; final String text = expression.getText(); @@ -92,9 +91,13 @@ public class TextWithImportsImpl implements TextWithImports{ } public String toString() { + return getText(); + } + + public String toExternalForm() { return "".equals(myImports) ? myText : myText + DebuggerEditorImpl.SEPARATOR + myImports; } - + public int hashCode() { return myText.hashCode(); } diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsImpl.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsImpl.java index a03cd3b99eac..269799d07624 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsImpl.java @@ -66,7 +66,7 @@ public class DebuggerUtilsImpl extends DebuggerUtilsEx{ public Element writeTextWithImports(TextWithImports text) { Element element = new Element("TextWithImports"); - element.setAttribute("text", text.toString()); + element.setAttribute("text", text.toExternalForm()); element.setAttribute("type", text.getKind() == CodeFragmentKind.EXPRESSION ? "expression" : "code fragment"); return element; } @@ -85,7 +85,7 @@ public class DebuggerUtilsImpl extends DebuggerUtilsEx{ public void writeTextWithImports(Element root, String name, TextWithImports value) { LOG.assertTrue(value.getKind() == CodeFragmentKind.EXPRESSION); - JDOMExternalizerUtil.writeField(root, name, value.toString()); + JDOMExternalizerUtil.writeField(root, name, value.toExternalForm()); } public TextWithImports readTextWithImports(Element root, String name) { diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/CompoundRendererConfigurable.java b/java/debugger/impl/src/com/intellij/debugger/settings/CompoundRendererConfigurable.java index d28dbb4a02ec..df2b69812114 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/CompoundRendererConfigurable.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/CompoundRendererConfigurable.java @@ -210,7 +210,7 @@ public class CompoundRendererConfigurable implements UnnamedConfigurable{ exprColumn.setCellRenderer(new DefaultTableCellRenderer() { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { final TextWithImports textWithImports = (TextWithImports)value; - String text = (textWithImports != null)? textWithImports.toString() : ""; + final String text = (textWithImports != null)? textWithImports.getText() : ""; return super.getTableCellRendererComponent(table, text, isSelected, hasFocus, row, column); } }); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java index 0dafd39824e5..0943b4f3e658 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java @@ -260,7 +260,7 @@ public abstract class Breakpoint extends FilteredRequestor implements ClassPrepa public void writeExternal(Element parentNode) throws WriteExternalException { super.writeExternal(parentNode); - JDOMExternalizerUtil.writeField(parentNode, LOG_MESSAGE_OPTION_NAME, getLogMessage().toString()); + JDOMExternalizerUtil.writeField(parentNode, LOG_MESSAGE_OPTION_NAME, getLogMessage().toExternalForm()); } public TextWithImports getLogMessage() { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/FilteredRequestor.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/FilteredRequestor.java index f402dd47ac58..ce09ba5a67a8 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/FilteredRequestor.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/FilteredRequestor.java @@ -143,7 +143,7 @@ public abstract class FilteredRequestor implements LocatableEventRequestor, JDOM public void writeExternal(Element parentNode) throws WriteExternalException { DefaultJDOMExternalizer.writeExternal(this, parentNode); - JDOMExternalizerUtil.writeField(parentNode, CONDITION_OPTION_NAME, getCondition().toString()); + JDOMExternalizerUtil.writeField(parentNode, CONDITION_OPTION_NAME, getCondition().toExternalForm()); DebuggerUtilsEx.writeFilters(parentNode, FILTER_OPTION_NAME, myClassFilters); DebuggerUtilsEx.writeFilters(parentNode, EXCLUSION_FILTER_OPTION_NAME, myClassExclusionFilters); DebuggerUtilsEx.writeFilters(parentNode, INSTANCE_ID_OPTION_NAME, InstanceFilter.createClassFilters(myInstanceFilters)); diff --git a/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/TextWithImports.java b/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/TextWithImports.java index 1f4b6883b92e..95cf9946c064 100644 --- a/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/TextWithImports.java +++ b/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/TextWithImports.java @@ -19,8 +19,15 @@ import org.jetbrains.annotations.NotNull; public interface TextWithImports { String getText(); + void setText(String newText); - @NotNull String getImports(); + + @NotNull + String getImports(); + CodeFragmentKind getKind(); + boolean isEmpty(); + + String toExternalForm(); }