/** Print the Event to the console. */
  public EventResult handleEvent(Tweet event) {

    System.out.println(
        String.format("[%s] => %s", event.getUser().getAccountName(), event.getMessage()));

    return EventResult.Handled;
  }
  public static void obfuscateUserNames(Tweet tweet) {

    String message = tweet.getMessage();

    for (User mention : tweet.getMentioned()) {

      mention.setUserId(mention.getAccountName().hashCode());

      message =
          message.replace(mention.getAccountName(), String.format("@%s", mention.getUserId()));

      mention.setAccountName("omitted");
    }

    tweet.setMessage(message);
  }
  public static User[] extractMentions(Tweet tweet) {
    ArrayList<User> users = new ArrayList<User>();

    String text = tweet.getMessage();

    int mentionStart = -1;

    int count = -1;

    StringBuilder sb = null;

    for (char c : text.toCharArray()) {

      count++;

      if (c == '@') {

        mentionStart = count;
        sb = new StringBuilder();
      }

      if (!Character.isLetterOrDigit(c) && c != '@') {

        mentionStart = -1;

        if (sb != null) {

          User user = new User();
          user.setAccountName(sb.toString());
          users.add(user);

          sb = null;
        }
      }

      if (mentionStart != -1) {

        sb.append(c);
      }
    }

    return users.toArray(new User[] {});
  }