Modifier () { Modifier modifier = null; if (myEvaluatedArrayReference != null) { modifier = new Modifier() { @Override public boolean canInspect() { return true; } @Override public boolean canSetValue() { return true; } @Override public void setValue(Value value) throws ClassNotLoadedException, InvalidTypeException { myEvaluatedArrayReference.setValue(myEvaluatedIndex, value); } @Override public Type getExpectedType() throws EvaluateException { try { ArrayType type = (ArrayType)myEvaluatedArrayReference.referenceType(); return type.componentType(); } catch (ClassNotLoadedException e) { throw EvaluateExceptionUtil.createEvaluateException(e); } } @Override public NodeDescriptorImpl getInspectItem(Project project) { return new ArrayElementDescriptorImpl(project, myEvaluatedArrayReference, myEvaluatedIndex); } }; } return modifier; }