package java.lang {
import java.lang.Arguments;
dynamic public class UnsupportedOperationException extends RuntimeException {
  public function UnsupportedOperationException__(): Object {
    return this;
  }
  public function UnsupportedOperationException__Ljava_lang_String_2(message: String): Object {
    return this;
  }
  public function UnsupportedOperationException__Ljava_lang_String_2Ljava_lang_Throwable_2(message: String, cause: Throwable): Object {
    return this;
  }
  public function UnsupportedOperationException__Ljava_lang_Throwable_2(cause: Throwable): Object {
    return this;
  }
  public function UnsupportedOperationException(... vargs) {
    var args: Array;
    var id: int;
    if (vargs.length == 1 && vargs[0] is Arguments) {
      args = Arguments(vargs[0]).args;
      id = Arguments(vargs[0]).id;
    } else {
      if (vargs.length == 0) {
        id = 0;
      } else if (vargs.length == 1 && vargs[0] is String) {
        args = vargs;
        id = 1;
      } else if (vargs.length == 2 && vargs[0] is String && vargs[1] is Throwable) {
        args = vargs;
        id = 2;
      } else if (vargs.length == 1 && vargs[0] is Throwable) {
        args = vargs;
        id = 3;
      }
    }
    switch (id) {
      case 0:
        var superArgs: Arguments;
        superArgs = new Arguments(java.lang.RuntimeException.RuntimeException__, []);
        break;
      case 1:
        var args1: Array = [args[0]];
        superArgs = new Arguments(java.lang.RuntimeException.RuntimeException__Ljava_lang_String_2, [args1[0]]);
        break;
      case 2:
        var args2: Array = [args[0], args[1]];
        superArgs = new Arguments(java.lang.RuntimeException.RuntimeException__Ljava_lang_String_2Ljava_lang_Throwable_2, [args2[0], args2[1]]);
        break;
      case 3:
        var args3: Array = [args[0]];
        superArgs = new Arguments(java.lang.RuntimeException.RuntimeException__Ljava_lang_Throwable_2, [args3[0]]);
        break;
    }
    super(superArgs);
    switch (id) {
      case 0:
        UnsupportedOperationException__();
        break;
      case 1:
        UnsupportedOperationException__Ljava_lang_String_2(args1[0]);
        break;
      case 2:
        UnsupportedOperationException__Ljava_lang_String_2Ljava_lang_Throwable_2(args2[0], args2[1]);
        break;
      case 3:
        UnsupportedOperationException__Ljava_lang_Throwable_2(args3[0]);
        break;
    }
  }
  public static const UnsupportedOperationException__ : int = 0;
  public static const UnsupportedOperationException__Ljava_lang_String_2 : int = 1;
  public static const UnsupportedOperationException__Ljava_lang_String_2Ljava_lang_Throwable_2 : int = 2;
  public static const UnsupportedOperationException__Ljava_lang_Throwable_2 : int = 3;
}
}
