class Assert {
  private Assert() {
  }

  public static void isTrue(boolean expression, String errorMessageFormat, Object... args) {
    if (!expression)
      throw new IllegalArgumentException(String.format(errorMessageFormat, args));
  }

  public static <T> T notNull(T reference, String parameterName) {<FILL_FUNCTION_BODY>}

  public static void state(boolean expression, String errorMessageFormat, Object... args) {
    if (!expression)
      throw new IllegalStateException(String.format(errorMessageFormat, args));
  }
}

    if (reference == null)
      throw new NullPointerException(parameterName + " cannot be null");
    return reference;
  
<no_super_class>