Modifier () { Modifier modifier = null; if (myEvaluatedField != null && (myEvaluatedQualifier instanceof ClassType || myEvaluatedQualifier instanceof ObjectReference)) { modifier = new Modifier() { @Override public boolean canInspect() { return myEvaluatedQualifier instanceof ObjectReference; } @Override public boolean canSetValue() { return true; } @Override public void setValue(Value value) throws ClassNotLoadedException, InvalidTypeException { if (myEvaluatedQualifier instanceof ReferenceType) { ClassType classType = (ClassType)myEvaluatedQualifier; classType.setValue(myEvaluatedField, value); } else { ObjectReference objRef = (ObjectReference)myEvaluatedQualifier; objRef.setValue(myEvaluatedField, value); } } @Override public Type getExpectedType() throws ClassNotLoadedException { return myEvaluatedField.type(); } @Override public NodeDescriptorImpl getInspectItem(Project project) { if (myEvaluatedQualifier instanceof ObjectReference) { return new FieldDescriptorImpl(project, (ObjectReference)myEvaluatedQualifier, myEvaluatedField); } else { return null; } } }; } return modifier; }