package jazz.lang;

///////////////////////////////////////////////////////////////////////////////
//
//                         Integer utility functions
//
///////////////////////////////////////////////////////////////////////////////

public abstract final class Integer {

  public native static toHexString(x: int): String =
    "java.lang.String java.lang.Integer.toHexString(int)";

  public native static toOctalString(x: int): String =
    "java.lang.String java.lang.Integer.toOctalString(int)";

  public native static toBinaryString(x: int): String =
    "java.lang.String java.lang.Integer.toBinaryString(int)";

  public native static parseInt(s: String): int =
    "int java.lang.Integer.parseInt(java.lang.String)";

  // Returns a random number in the range 0 to n (exclusive)
  public static random(n: int): int;
}

///////////////////////////////////////////////////////////////////////////////
//
//                               Implementation
//
///////////////////////////////////////////////////////////////////////////////

Integer.random(n) = Math.trunc(n * Math.random());