public static void checkState(boolean expression,
                                String errorMessageTemplate,
                                Object... errorMessageArgs) {
    if (!expression) {
      throw new IllegalStateException(
          format(errorMessageTemplate, errorMessageArgs));
    }
  }
Ensures the truth of an expression involving the state of the calling
instance, but not involving any 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 IllegalStateException 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)
selendroid-server/src/main/java/io/selendroid/server/util/Preconditions.java