Document (@NotNull VirtualFile file) { Document document = file.getUserData(MOCK_DOC_KEY); if (document == null) { if (file.isDirectory() || isBinaryWithoutDecompiler(file)) return null; CharSequence text = LoadTextUtil.loadText(file); document = myFactory.fun(text); document.putUserData(MOCK_VIRTUAL_FILE_KEY, file); document = file.putUserDataIfAbsent(MOCK_DOC_KEY, document); } return document; }