code: public static void main(final String[] args) {
          Switch help = new Switch("h", "help", "display help message");
          FileArgument aInputFile = new FileArgument("a", "a-input-file", "A input BED file, default stdin", false);
          FileArgument bInputFile = new FileArgument("b", "b-input-file", "B input BED file", true);
          FileArgument outputFile = new FileArgument("o", "output-file", "output BED file, default stdout", false);
          StringArgument strategy = new StringArgument("s", "strategy", "strategy { range-list, range-set, centered-range-tree, r-tree, r-star-tree }, default range-set", false);
  
          ArgumentList arguments = new ArgumentList(help, aInputFile, bInputFile, outputFile, strategy);
          CommandLine commandLine = new CommandLine(args);
  
          IntersectBed intersectBed = null;
          try
          {
              CommandLineParser.parse(commandLine, arguments);
              if (help.wasFound()) {
                  Usage.usage(USAGE, null, commandLine, arguments, System.out);
                  System.exit(0);
              }
              intersectBed = new IntersectBed(aInputFile.getValue(), bInputFile.getValue(), outputFile.getValue(), strategies.get(strategy.getValue(DEFAULT_STRATEGY)));
          }
          catch (CommandLineParseException | NullPointerException e) {
              if (help.wasFound()) {
                  Usage.usage(USAGE, null, commandLine, arguments, System.out);
                  System.exit(0);
              }
              Usage.usage(USAGE, e, commandLine, arguments, System.err);
              System.exit(-1);
          }
          try {
              System.exit(intersectBed.call());
          }
          catch (Exception e) {
              e.printStackTrace();
              System.exit(1);
          }
      }
docs: Main.
  
  @param args command line args