예제 #1
0
  private static final EmailClient createFromString(final String... args) throws IOException {
    // switch doesn't support null
    if (args.length == 0) return getPreferred();
    else if ("mailto".equals(args[0])) return MailTo;

    final EmailClientType t = EmailClientType.valueOf(args[0]);
    switch (t) {
      case Outlook:
        return Outlook;
      case AppleMail:
        return AppleMail;
      case Thunderbird:
        if (args.length == 2) return Thunderbird.createFromExe(new File(args[1]));
        else if (args.length == 3) return Thunderbird.createFromCommandLine(args[1], args[2]);
        else throw new IllegalArgumentException(t + " needs 1 or 2 arguments");
      default:
        throw new IllegalStateException("Unknown type " + t);
    }
  }