(no message)

This commit is contained in:
Eugene Zhuravlev
2005-02-09 16:25:23 +03:00
parent 820046373c
commit 8d79fbdab8
9 changed files with 42 additions and 34 deletions
@@ -12,8 +12,6 @@ import com.sun.jdi.Value;
import com.sun.tools.corba.se.idl.constExpr.EvaluationException;
public interface ChildrenRenderer extends Renderer {
ChildrenRenderer clone();
void buildChildren(Value value, ChildrenBuilder builder, EvaluationContext evaluationContext);
/**
@@ -61,8 +61,8 @@ public class CompoundNodeRenderer implements NodeRenderer{
public NodeRenderer clone() {
try {
CompoundNodeRenderer renderer = (CompoundNodeRenderer)super.clone();
renderer.myLabelRenderer = myLabelRenderer != null ? myLabelRenderer.clone() : null;
renderer.myChildrenRenderer = myChildrenRenderer != null ? myChildrenRenderer.clone() : null;
renderer.myLabelRenderer = myLabelRenderer != null ? (ValueLabelRenderer)myLabelRenderer.clone() : null;
renderer.myChildrenRenderer = myChildrenRenderer != null ? (ChildrenRenderer)myChildrenRenderer.clone() : null;
return renderer;
}
catch (CloneNotSupportedException e) {
@@ -9,6 +9,4 @@ public interface NodeRenderer extends ChildrenRenderer, ValueLabelRenderer {
String getName();
void setName(String text);
NodeRenderer clone();
}
@@ -9,11 +9,6 @@ import com.sun.jdi.ReferenceType;
import com.sun.jdi.Type;
import org.jdom.Element;
/**
* User: lex
* Date: Oct 10, 2003
* Time: 9:31:06 PM
*/
public abstract class ReferenceRenderer implements Renderer {
private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.tree.render.ReferenceRenderer");
private String myClassName;
@@ -36,9 +31,11 @@ public abstract class ReferenceRenderer implements Renderer {
}
public boolean isApplicable(Type type) {
if(type == null || !(type instanceof ReferenceType)) return false;
if(type == null || !(type instanceof ReferenceType)) {
return false;
}
return DebuggerUtils.instanceOf(((ReferenceType)type), getClassName());
return DebuggerUtils.instanceOf(type, getClassName());
}
public Renderer clone() {
@@ -46,7 +43,7 @@ public abstract class ReferenceRenderer implements Renderer {
return (Renderer)super.clone();
}
catch (CloneNotSupportedException e) {
LOG.assertTrue(false);
LOG.error(e);
return null;
}
}
@@ -13,7 +13,7 @@ public interface Renderer extends Cloneable, JDOMExternalizable {
* Checks whether this renderer is apllicable to this value
* @param type
*/
public boolean isApplicable(Type type);
boolean isApplicable(Type type);
public Object clone() throws CloneNotSupportedException;
Renderer clone();
}
@@ -10,8 +10,6 @@ import com.intellij.debugger.ui.tree.ValueDescriptor;
* Time: 10:12:39 PM
*/
public interface ValueLabelRenderer extends Renderer {
ValueLabelRenderer clone();
String calcLabel (ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener)
throws EvaluateException;
}
@@ -54,6 +54,7 @@ public abstract class Breakpoint extends FilteredRequestor implements ClassPrepa
public boolean LOG_ENABLED = false;
public boolean LOG_EXPRESSION_ENABLED = false;
private TextWithImportsImpl myLogMessage = TextWithImportsImpl.EMPTY; // an expression to be evaluated and printed
private static final String LOG_MESSAGE_OPTION_NAME = "LOG_MESSAGE";
protected Breakpoint(Project project) {
myProject = project;
@@ -244,7 +245,7 @@ public abstract class Breakpoint extends FilteredRequestor implements ClassPrepa
public void readExternal(Element parentNode) throws InvalidDataException {
super.readExternal(parentNode);
String logMessage = JDOMExternalizerUtil.readField(parentNode, "myLogMessage");
String logMessage = JDOMExternalizerUtil.readField(parentNode, LOG_MESSAGE_OPTION_NAME);
if (logMessage != null) {
setLogMessage(TextWithImportsImpl.createExpressionText(logMessage));
}
@@ -252,7 +253,7 @@ public abstract class Breakpoint extends FilteredRequestor implements ClassPrepa
public void writeExternal(Element parentNode) throws WriteExternalException {
super.writeExternal(parentNode);
JDOMExternalizerUtil.writeField(parentNode, "myLogMessage", getLogMessage().saveToString());
JDOMExternalizerUtil.writeField(parentNode, LOG_MESSAGE_OPTION_NAME, getLogMessage().saveToString());
}
public TextWithImportsImpl getLogMessage() {
@@ -41,6 +41,11 @@ public abstract class FilteredRequestor implements LocatableEventRequestor, JDOM
public boolean INSTANCE_FILTERS_ENABLED = false;
protected InstanceFilter[] myInstanceFilters = InstanceFilter.EMPTY_ARRAY;
private static final String FILTER_OPTION_NAME = "filter";
private static final String EXCLUSION_FILTER_OPTION_NAME = "exclusion_filter";
private static final String INSTANCE_ID_OPTION_NAME = "instance_id";
private static final String CONDITION_OPTION_NAME = "CONDITION";
public FilteredRequestor() {
}
@@ -90,15 +95,15 @@ public abstract class FilteredRequestor implements LocatableEventRequestor, JDOM
public void readExternal(Element parentNode) throws InvalidDataException {
DefaultJDOMExternalizer.readExternal(this, parentNode);
String condition = JDOMExternalizerUtil.readField(parentNode, "myCondition");
String condition = JDOMExternalizerUtil.readField(parentNode, CONDITION_OPTION_NAME);
if (condition != null) {
setCondition(TextWithImportsImpl.createExpressionText(condition));
}
myClassFilters = DebuggerUtilsEx.readFilters(parentNode.getChildren("filter"));
myClassExclusionFilters = DebuggerUtilsEx.readFilters(parentNode.getChildren("exclusion_filter"));
myClassFilters = DebuggerUtilsEx.readFilters(parentNode.getChildren(FILTER_OPTION_NAME));
myClassExclusionFilters = DebuggerUtilsEx.readFilters(parentNode.getChildren(EXCLUSION_FILTER_OPTION_NAME));
final ClassFilter [] instanceFilters = DebuggerUtilsEx.readFilters(parentNode.getChildren("instance_id"));
final ClassFilter [] instanceFilters = DebuggerUtilsEx.readFilters(parentNode.getChildren(INSTANCE_ID_OPTION_NAME));
final List<InstanceFilter> iFilters = new ArrayList<InstanceFilter>(instanceFilters.length);
for (int i = 0; i < instanceFilters.length; i++) {
@@ -113,10 +118,10 @@ public abstract class FilteredRequestor implements LocatableEventRequestor, JDOM
public void writeExternal(Element parentNode) throws WriteExternalException {
DefaultJDOMExternalizer.writeExternal(this, parentNode);
JDOMExternalizerUtil.writeField(parentNode, "myCondition", getCondition().saveToString());
DebuggerUtilsEx.writeFilters(parentNode, "filter", myClassFilters);
DebuggerUtilsEx.writeFilters(parentNode, "exclusion_filter", myClassExclusionFilters);
DebuggerUtilsEx.writeFilters(parentNode, "instance_id", InstanceFilter.createClassFilters(myInstanceFilters));
JDOMExternalizerUtil.writeField(parentNode, CONDITION_OPTION_NAME, getCondition().saveToString());
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));
}
public boolean evaluateCondition(EvaluationContextImpl context, LocatableEvent event) throws EvaluateException {
@@ -81,8 +81,13 @@ public class ArrayRenderer extends ReferenceRenderer implements NodeRenderer, Cl
if (array.length() > 0) {
int added = 0;
if(ENTRIES_LIMIT > END_INDEX - START_INDEX + 1) ENTRIES_LIMIT = END_INDEX - START_INDEX;
if(ENTRIES_LIMIT <= 0) ENTRIES_LIMIT = 1;
if(ENTRIES_LIMIT > END_INDEX - START_INDEX + 1) {
ENTRIES_LIMIT = END_INDEX - START_INDEX;
}
if(ENTRIES_LIMIT <= 0) {
ENTRIES_LIMIT = 1;
}
if(array.length() - 1 >= START_INDEX) {
int start = START_INDEX;
@@ -130,10 +135,12 @@ public class ArrayRenderer extends ReferenceRenderer implements NodeRenderer, Cl
}
if (added == 0) {
if(START_INDEX == 0 && array.length() - 1 <= END_INDEX)
if(START_INDEX == 0 && array.length() - 1 <= END_INDEX) {
children.add(nodeManager.createMessageNode(MessageDescriptor.ALL_ELEMENTS_IN_RANGE_ARE_NULL.getLabel()));
else
}
else {
children.add(nodeManager.createMessageNode(MessageDescriptor.ALL_ELEMENTS_IN_VISIBLE_RANGE_ARE_NULL.getLabel()));
}
}
else {
if(START_INDEX > 0) {
@@ -178,9 +185,13 @@ public class ArrayRenderer extends ReferenceRenderer implements NodeRenderer, Cl
}
public boolean isApplicable(Type type) {
if(type == null || !(type instanceof ArrayType)) return false;
if(type == null || !(type instanceof ArrayType)) {
return false;
}
if("[]".equals(getClassName())) return true;
if("[]".equals(getClassName())) {
return true;
}
return super.isApplicable(type);
}