void (Value value, ChildrenBuilder builder, EvaluationContext evaluationContext) { DebuggerManagerThreadImpl.assertIsManagerThread(); NodeManagerImpl nodeManager = (NodeManagerImpl)builder.getNodeManager(); NodeDescriptorFactory descriptorFactory = builder.getDescriptorManager(); builder.setMessage(JavaDebuggerBundle.message("message.node.filtered") + " " + myExpression.getExpression(), AllIcons.General.Filter, SimpleTextAttributes.REGULAR_ATTRIBUTES, FILTER_HYPERLINK); if (ENTRIES_LIMIT <= 0) { ENTRIES_LIMIT = 1; } ArrayReference array = (ArrayReference)value; int arrayLength = array.length(); if (arrayLength > 0) { builder.initChildrenArrayRenderer(this, arrayLength); CachedEvaluator cachedEvaluator = new CachedEvaluator() { @Override protected String getClassName() { return ((ArrayType)array.type()).componentTypeName(); } @Override protected PsiElement overrideContext(PsiElement context) { return ContextUtil.getContextElement(evaluationContext); } }; cachedEvaluator.setReferenceExpression(TextWithImportsImpl.fromXExpression(myExpression)); try { int added = 0; if (arrayLength - 1 >= START_INDEX) { ErrorsValueGroup errorsGroup = null; ArrayValuesCache arrayValuesCache = new ArrayValuesCache(array); for (int idx = START_INDEX; idx < arrayLength; idx++) { ArrayElementDescriptorImpl descriptor = (ArrayElementDescriptorImpl)descriptorFactory.getArrayItemDescriptor(builder.getParentDescriptor(), array, idx); Value val = arrayValuesCache.getValue(idx); descriptor.setValue(val); try { if (DebuggerUtilsEx.evaluateBoolean(cachedEvaluator.getEvaluator(evaluationContext.getProject()), (EvaluationContextImpl)evaluationContext.createEvaluationContext(val))) { DebuggerTreeNode arrayItemNode = nodeManager.createNode(descriptor, evaluationContext); builder.addChildren(Collections.singletonList(arrayItemNode), false); added++; //if (added > ENTRIES_LIMIT) { // break; //} } } catch (EvaluateException e) { if (errorsGroup == null) { errorsGroup = new ErrorsValueGroup(); builder.addChildren(XValueChildrenList.bottomGroup(errorsGroup), false); } JavaValue childValue = JavaValue.create(null, descriptor, ((EvaluationContextImpl)evaluationContext), nodeManager, false); errorsGroup.addErrorValue(e.getMessage(), childValue); } } } builder.addChildren(Collections.emptyList(), true); } catch (ObjectCollectedException e) { builder.setErrorMessage(JavaDebuggerBundle.message("evaluation.error.array.collected")); } //if (added != 0 && END_INDEX < arrayLength - 1) { // builder.setRemaining(arrayLength - 1 - END_INDEX); //} } }