package java.lang {
import java.io.Serializable;
import java.lang.Arguments;
import java.lang.JavaArray;
dynamic public class Character$CharSequenceAdapter implements CharSequence {
  public var charArray: JavaArray;
  public var start: int;
  public var end: int;
  public function Character$CharSequenceAdapter___3C(charArray: JavaArray): Object {
    return this;
  }
  public function Character$CharSequenceAdapter___3CII(charArray: JavaArray, start: int, end: int): Object {
    this.charArray = charArray;
    this.start = start;
    this.end = end;
    return this;
  }
  public function charAt__I(index: int): uint {
    return charArray[index + start];
  }
  public function length__(): int {
    return end - start;
  }
  public function subSequence__II(start_1: int, end_1: int): CharSequence {
    return new Character$CharSequenceAdapter(new Arguments(java.lang.Character$CharSequenceAdapter.Character$CharSequenceAdapter___3CII, [charArray, this.start + start_1, this.start + end_1]));
  }
  public function Character$CharSequenceAdapter(... 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 == 1 && vargs[0] is JavaArray) {
        args = vargs;
        id = 0;
      } else if (vargs.length == 3 && vargs[0] is JavaArray && vargs[1] is int && vargs[2] is int) {
        args = vargs;
        id = 1;
      }
    }
    switch (id) {
      case 0:
        var args0: Array = [args[0]];
        args1 = [args0[0], 0, args0[0].length];
        break;
      case 1:
        var args1: Array = [args[0], args[1], args[2]];
        break;
    }
    super();
    switch (id) {
      case 0:
        Character$CharSequenceAdapter___3CII(args1[0], args1[1], args1[2]);
        Character$CharSequenceAdapter___3C(args0[0]);
        break;
      case 1:
        Character$CharSequenceAdapter___3CII(args1[0], args1[1], args1[2]);
        break;
    }
  }
  public static const Character$CharSequenceAdapter___3C : int = 0;
  public static const Character$CharSequenceAdapter___3CII : int = 1;
}
}
