This commit is contained in:
Vladimir Krivosheev
2014-03-10 15:03:35 +01:00
parent 52a92f2125
commit 4e1ef49c28
@@ -34,7 +34,10 @@ import com.intellij.execution.process.ProcessOutputTypes;
import com.intellij.openapi.util.Pair;
import com.sun.jdi.Value;
import java.util.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public abstract class DescriptorTestCase extends DebuggerTestCase {
private final List<Pair<NodeDescriptorImpl,List<String>>> myDescriptorLog = new ArrayList<Pair<NodeDescriptorImpl, List<String>>>();
@@ -51,10 +54,9 @@ public abstract class DescriptorTestCase extends DebuggerTestCase {
return getAlternateCollectionRenderer("Map");
}
private NodeRenderer getAlternateCollectionRenderer(final String name) {
private static NodeRenderer getAlternateCollectionRenderer(final String name) {
final NodeRenderer[] renderers = NodeRendererSettings.getInstance().getAlternateCollectionRenderers();
for (int idx = 0; idx < renderers.length; idx++) {
NodeRenderer renderer = renderers[idx];
for (NodeRenderer renderer : renderers) {
if (name.equals(renderer.getName())) {
return renderer;
}
@@ -105,9 +107,8 @@ public abstract class DescriptorTestCase extends DebuggerTestCase {
private Pair<NodeDescriptorImpl, List<String>> findDescriptorLog(final NodeDescriptorImpl descriptor) {
Pair<NodeDescriptorImpl, List<String>> descriptorText = null;
for (Iterator<Pair<NodeDescriptorImpl, List<String>>> iterator = myDescriptorLog.iterator(); iterator.hasNext();) {
Pair<NodeDescriptorImpl, List<String>> pair = iterator.next();
if(pair.getFirst() == descriptor) {
for (Pair<NodeDescriptorImpl, List<String>> pair : myDescriptorLog) {
if (pair.getFirst() == descriptor) {
descriptorText = pair;
break;
}
@@ -115,24 +116,15 @@ public abstract class DescriptorTestCase extends DebuggerTestCase {
return descriptorText;
}
protected void flushDescriptor(final NodeDescriptorImpl descriptor) {
Pair<NodeDescriptorImpl, List<String>> descriptorLog = findDescriptorLog(descriptor);
if(descriptorLog != null) {
printDescriptorLog(descriptorLog);
myDescriptorLog.remove(descriptorLog);
}
}
protected void flushDescriptors() {
for (Iterator<Pair<NodeDescriptorImpl, List<String>>> iterator = myDescriptorLog.iterator(); iterator.hasNext();) {
printDescriptorLog(iterator.next());
for (Pair<NodeDescriptorImpl, List<String>> aMyDescriptorLog : myDescriptorLog) {
printDescriptorLog(aMyDescriptorLog);
}
myDescriptorLog.clear();
}
private void printDescriptorLog(Pair<NodeDescriptorImpl, List<String>> pair) {
for (Iterator<String> it = pair.getSecond().iterator(); it.hasNext();) {
String text = it.next();
for (String text : pair.getSecond()) {
print(text, ProcessOutputTypes.SYSTEM);
}
}
@@ -150,6 +142,7 @@ public abstract class DescriptorTestCase extends DebuggerTestCase {
String name) {
try {
StackFrameProxy frameProxy = evaluationContext.getFrameProxy();
assert frameProxy != null;
LocalVariableDescriptorImpl local = frameTree.getNodeFactory().getLocalVariableDescriptor(null, frameProxy.visibleVariableByName(name));
local.setContext(evaluationContext);
return local;
@@ -169,7 +162,7 @@ public abstract class DescriptorTestCase extends DebuggerTestCase {
doExpandAll(tree, runnable, new HashSet<Value>(), null);
}
protected static interface NodeFilter {
protected interface NodeFilter {
boolean shouldExpand(DebuggerTreeNode node);
}
@@ -186,7 +179,7 @@ public abstract class DescriptorTestCase extends DebuggerTestCase {
final DebuggerTreeNode treeNode = (DebuggerTreeNode)tree.getPathForRow(i).getLastPathComponent();
if(tree.isCollapsed(i) && !treeNode.isLeaf()) {
final NodeDescriptor nodeDescriptor = treeNode.getDescriptor();
boolean shouldExpand = filter == null? true : filter.shouldExpand(treeNode);
boolean shouldExpand = filter == null || filter.shouldExpand(treeNode);
if (shouldExpand) {
// additional checks to prevent infinite expand
if (nodeDescriptor instanceof ValueDescriptor) {