Clazz.load (["java.io.Reader"], "java.io.StringReader", ["java.io.IOException", "java.lang.IllegalArgumentException", "$.IndexOutOfBoundsException"], function () { c$ = Clazz.decorateAsClass (function () { this.str = null; this.length = 0; this.next = 0; this.$mark = 0; Clazz.instantialize (this, arguments); }, java.io, "StringReader", java.io.Reader); Clazz.makeConstructor (c$, function (s) { Clazz.superConstructor (this, java.io.StringReader, [s]); this.str = s; this.length = s.length; }, "~S"); Clazz.defineMethod (c$, "ensureOpen", function () { if (this.str == null) throw new java.io.IOException ("Stream closed"); }); Clazz.overrideMethod (c$, "read", function (cbuf, off, len) { { this.ensureOpen (); if ((off < 0) || (off > cbuf.length) || (len < 0) || ((off + len) > cbuf.length) || ((off + len) < 0)) { throw new IndexOutOfBoundsException (); } else if (len == 0) { return 0; }if (this.next >= this.length) return -1; var n = Math.min (this.length - this.next, len); this.str.getChars (this.next, this.next + n, cbuf, off); this.next += n; return n; }}, "~A,~N,~N"); Clazz.overrideMethod (c$, "skip", function (ns) { { this.ensureOpen (); if (this.next >= this.length) return 0; var n = Math.min (this.length - this.next, ns); n = Math.max (-this.next, n); this.next += n; return n; }}, "~N"); Clazz.overrideMethod (c$, "ready", function () { { this.ensureOpen (); return true; }}); Clazz.overrideMethod (c$, "markSupported", function () { return true; }); Clazz.overrideMethod (c$, "mark", function (readAheadLimit) { if (readAheadLimit < 0) { throw new IllegalArgumentException ("Read-ahead limit < 0"); }{ this.ensureOpen (); this.$mark = this.next; }}, "~N"); Clazz.overrideMethod (c$, "reset", function () { { this.ensureOpen (); this.next = this.$mark; }}); Clazz.overrideMethod (c$, "close", function () { this.str = null; }); });