Modifier () { Modifier modifier = null; if ((myEvaluatedVariable != null || myEvaluatedDecompiledVariable != null) && myContext != 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 { StackFrameProxyImpl frameProxy = myContext.getFrameProxy(); try { assert frameProxy != null; if (myEvaluatedVariable != null) { frameProxy.setValue(myEvaluatedVariable, value); } else { // no debug info LocalVariablesUtil.setValue(frameProxy.getStackFrame(), myEvaluatedDecompiledVariable, value); } } catch (EvaluateException e) { LOG.error(e); } } @Override public Type getExpectedType() throws ClassNotLoadedException { try { return myEvaluatedVariable.getType(); } catch (EvaluateException e) { LOG.error(e); return null; } } @Override public NodeDescriptorImpl getInspectItem(Project project) { return new LocalVariableDescriptorImpl(project, myEvaluatedVariable); } }; } return modifier; }