public static void checkArgument(
      boolean expression, @Nullable String errorMessageTemplate, Object... errorMessageArgs) {
    if (!expression) {
      throw new IllegalArgumentException(format(errorMessageTemplate, errorMessageArgs));
    }
  }
Ensures the truth of an expression involving one or more parameters to the calling method.

@param expression a boolean expression
@param errorMessageTemplate a template for the exception message should the check fail. The
    message is formed by replacing each {@code %s} placeholder in the template with an
    argument. These are matched by position - the first {@code %s} gets {@code
    errorMessageArgs[0]}, etc. Unmatched arguments will be appended to the formatted message in
    square braces. Unmatched placeholders will be left as-is.
@param errorMessageArgs the arguments to be substituted into the message template. Arguments
    are converted to strings using {@link String#valueOf(Object)}.
@throws IllegalArgumentException if {@code expression} is false
@throws NullPointerException if the check fails and either {@code errorMessageTemplate} or
    {@code errorMessageArgs} is null (don't let this happen)
fbcore/src/main/java/com/facebook/common/internal/Preconditions.java