private void addJavacPattern(@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
          }
        });
    }
  }
private void addJavacPattern(@NonNls final String line)