void (@NonNls final String line) { final int dividerIndex = line.indexOf(JavacResourcesReader.CATEGORY_VALUE_DIVIDER); if (dividerIndex < 0) { // by reports it may happen for some IBM JDKs (empty string?) return; } final String category = line.substring(0, dividerIndex); final String resourceBundleValue = line.substring(dividerIndex + 1); switch (category) { case JavacResourcesReader.MSG_PARSING_COMPLETED, JavacResourcesReader.MSG_PARSING_STARTED, JavacResourcesReader.MSG_WROTE -> myParserActions.add(new FilePathActionJavac(createMatcher(resourceBundleValue))); case JavacResourcesReader.MSG_CHECKING -> myParserActions.add(new JavacParserAction(createMatcher(resourceBundleValue)) { @Override protected void doExecute(final String line, String parsedData, final Callback callback) { callback.setProgressText(JavaCompilerBundle.message("progress.compiling.class", parsedData)); } }); case JavacResourcesReader.MSG_LOADING -> myParserActions.add(new JavacParserAction(createMatcher(resourceBundleValue)) { @Override protected void doExecute(final String line, @Nullable String parsedData, final Callback callback) { callback.setProgressText(JavaCompilerBundle.message("progress.loading.classes")); } }); case JavacResourcesReader.MSG_NOTE -> myParserActions.add(new JavacParserAction(createMatcher(resourceBundleValue)) { @Override protected void doExecute(final String line, @Nullable final String filePath, final Callback callback) { final boolean fileExists = filePath != null && ReadAction .compute(() -> LocalFileSystem.getInstance().findFileByPath(filePath) != null); if (fileExists) { addMessage(callback, CompilerMessageCategory.WARNING, line, VirtualFileManager.constructUrl(LocalFileSystem.PROTOCOL, filePath), -1, -1); } else { addMessage(callback, CompilerMessageCategory.INFORMATION, line); } } }); case JavacResourcesReader.MSG_WARNING -> WARNING_PREFIX = resourceBundleValue; case JavacResourcesReader.MSG_STATISTICS, JavacResourcesReader.MSG_IGNORED -> myParserActions.add(new JavacParserAction(createMatcher(resourceBundleValue)) { @Override protected void doExecute(final String line, @Nullable String parsedData, final Callback callback) { // empty } }); } }