public String getUsage() {
    final StringBuilder builder = new StringBuilder();
    List<String> descriptionLines;
    final String blank20 = "                    ";

    builder.append("\nUSAGE: ");
    if (programName == null) {
      builder.append("<program>");
    } else {
      builder.append(programName);
    }
    if (args.isEmpty()) {
      builder.append("\nNo arguments supported.\n");
    } else {
      builder.append(" <args>\nWHERE <args>:\n\n");
      for (Argument arg : args) {
        for (String form : arg.getForms()) {
          builder.append("    ");
          builder.append(form);

          for (int i = 0; i < arg.getParameterCount(); i++) {
            builder.append(" <");
            builder.append(arg.getParameterName(i));
            builder.append(">");
          }
          builder.append("\n");
        }

        descriptionLines = breakupString(arg.getDescription(), LINE_LENGTH);
        if (descriptionLines.isEmpty()) {
          builder.append(blank20);
          builder.append("No argument description provided.");
          builder.append("\n\n");
        } else {
          for (String line : descriptionLines) {
            builder.append(blank20);
            builder.append(line.trim());
            builder.append("\n");
          }
          builder.append("\n");
        }
      }
    }
    builder.append("\n");

    return builder.toString();
  }
Generates command line usage text for display to user.

@return usage to dusplay to user
extensions/geode-modules-session/src/main/java/org/apache/geode/modules/session/installer/args/ArgumentProcessor.java