docs: public static void configureTrainingDatabases(IFindBugsEngine findBugs) throws IOException {
          if (findBugs.emitTrainingOutput()) {
              String trainingOutputDir = findBugs.getTrainingOutputDir();
  
              if (!new File(trainingOutputDir).isDirectory()) {
                  throw new IOException("Training output directory " + trainingOutputDir + " does not exist");
              }
              AnalysisContext.currentAnalysisContext().setDatabaseOutputDir(trainingOutputDir);
              // XXX: hack
              System.setProperty("findbugs.checkreturn.savetraining", new File(trainingOutputDir, "checkReturn.db").getPath());
          }
          if (findBugs.useTrainingInput()) {
              String trainingInputDir = findBugs.getTrainingInputDir();
  
              if (!new File(trainingInputDir).isDirectory()) {
                  throw new IOException("Training input directory " + trainingInputDir + " does not exist");
              }
              AnalysisContext.currentAnalysisContext().setDatabaseInputDir(trainingInputDir);
              AnalysisContext.currentAnalysisContext().loadInterproceduralDatabases();
              // XXX: hack
              System.setProperty("findbugs.checkreturn.loadtraining", new File(trainingInputDir, "checkReturn.db").getPath());
          } else {
              AnalysisContext.currentAnalysisContext().loadDefaultInterproceduralDatabases();
          }
      }