docs: public static void main(String[] arg) {
  
          System.getProperties().put("sun.java2d.noddraw", "true");
  
          // (ulrivo): read all arguments from the command line
          String  lowerArg;
          String  urlid        = null;
          String  rcFile       = null;
          boolean autoConnect  = false;
          boolean urlidConnect = false;
  
          bMustExit = true;
  
          for (int i = 0; i < arg.length; i++) {
              lowerArg = arg[i].toLowerCase();
  
              if (lowerArg.startsWith("--")) {
                  lowerArg = lowerArg.substring(1);
              }
  
              i++;
  
              if (i == arg.length) {
                  showUsage();
  
                  return;
              }
  
              if (lowerArg.equals("-driver")) {
                  defDriver   = arg[i];
                  autoConnect = true;
              } else if (lowerArg.equals("-url")) {
                  defURL      = arg[i];
                  autoConnect = true;
              } else if (lowerArg.equals("-user")) {
                  defUser     = arg[i];
                  autoConnect = true;
              } else if (lowerArg.equals("-password")) {
                  defPassword = arg[i];
                  autoConnect = true;
              } else if (lowerArg.equals("-urlid")) {
                  urlid        = arg[i];
                  urlidConnect = true;
              } else if (lowerArg.equals("-rcfile")) {
                  rcFile       = arg[i];
                  urlidConnect = true;
              } else if (lowerArg.equals("-dir")) {
                  defDirectory = arg[i];
              } else if (lowerArg.equals("-script")) {
                  defScript = arg[i];
              } else if (lowerArg.equals("-noexit")) {
                  bMustExit = false;
  
                  i--;
              } else if (lowerArg.equals("-help")) {
                  showUsage();
  
                  return;
              } else {
                  /* Syntax ERRORS should either throw or exit with non-0 status.
                   * In our case, it may be unsafe to exit, so we throw.
                   * (I.e. should provide easy way for caller to programmatically
                   * determine that there was an invocation problem).
                   */
                  throw new IllegalArgumentException(
                      "Try:  java... " + DatabaseManagerSwing.class.getName()
                      + " --help");
  
                  // No reason to localize, since the main syntax message is
                  // not localized.
              }
          }
  
          DatabaseManager m = new DatabaseManager();
  
          m.main();
  
          Connection c = null;
  
          try {
              if (autoConnect && urlidConnect) {
                  throw new IllegalArgumentException(
                      "You may not specify both (urlid) AND (url/user/password).");
              }
  
              if (autoConnect) {
                  c = ConnectionDialog.createConnection(defDriver, defURL,
                                                        defUser, defPassword);
              } else if (urlidConnect) {
                  if (urlid == null) {
                      throw new IllegalArgumentException(
                          "You must specify an 'urlid' to use an RC file");
                  }
  
                  autoConnect = true;
  
                  if (rcFile == null) {
                      rcFile = DEFAULT_RCFILE;
                  }
  
                  c = new RCData(new File(rcFile), urlid).getConnection(null,
                                 System.getProperty("sqlfile.charset"),
                                 System.getProperty("javax.net.ssl.trustStore"));
              } else {
                  c = ConnectionDialog.createConnection(m.fMain, "Connect");
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
  
          if (c == null) {
              return;
          }
  
          m.connect(c);
      }