Clazz.load (["java.io.FilterInputStream"], "java.io.BufferedInputStream", ["java.io.IOException", "java.lang.IndexOutOfBoundsException"], function () { c$ = Clazz.decorateAsClass (function () { this.buf = null; this.count = 0; this.pos = 0; this.markpos = -1; this.marklimit = 0; Clazz.instantialize (this, arguments); }, java.io, "BufferedInputStream", java.io.FilterInputStream); Clazz.defineMethod (c$, "getInIfOpen", function () { var input = this.$in; if (input == null) throw new java.io.IOException ("Stream closed"); return input; }); Clazz.defineMethod (c$, "getBufIfOpen", function () { var buffer = this.buf; if (buffer == null) throw new java.io.IOException ("Stream closed"); return buffer; }); Clazz.overrideMethod (c$, "resetStream", function () { }); Clazz.makeConstructor (c$, function ($in) { Clazz.superConstructor (this, java.io.BufferedInputStream, [$in]); this.buf = Clazz.newByteArray (8192, 0); }, "java.io.InputStream"); Clazz.defineMethod (c$, "fill", function () { var buffer = this.getBufIfOpen (); if (this.markpos < 0) this.pos = 0; else if (this.pos >= buffer.length) if (this.markpos > 0) { var sz = this.pos - this.markpos; System.arraycopy (buffer, this.markpos, buffer, 0, sz); this.pos = sz; this.markpos = 0; } else if (buffer.length >= this.marklimit) { this.markpos = -1; this.pos = 0; } else { var nsz = this.pos * 2; if (nsz > this.marklimit) nsz = this.marklimit; var nbuf = Clazz.newByteArray (nsz, 0); System.arraycopy (buffer, 0, nbuf, 0, this.pos); buffer = this.buf = nbuf; }this.count = this.pos; var n = this.getInIfOpen ().read (buffer, this.pos, buffer.length - this.pos); if (n > 0) this.count = n + this.pos; }); Clazz.overrideMethod (c$, "readByteAsInt", function () { if (this.pos >= this.count) { this.fill (); if (this.pos >= this.count) return -1; }return this.getBufIfOpen ()[this.pos++] & 0xff; }); Clazz.defineMethod (c$, "read1", function (b, off, len) { var avail = this.count - this.pos; if (avail <= 0) { if (len >= this.getBufIfOpen ().length && this.markpos < 0) { return this.getInIfOpen ().read (b, off, len); }this.fill (); avail = this.count - this.pos; if (avail <= 0) return -1; }var cnt = (avail < len) ? avail : len; System.arraycopy (this.getBufIfOpen (), this.pos, b, off, cnt); this.pos += cnt; return cnt; }, "~A,~N,~N"); Clazz.defineMethod (c$, "read", function (b, off, len) { this.getBufIfOpen (); if ((off | len | (off + len) | (b.length - (off + len))) < 0) { throw new IndexOutOfBoundsException (); } else if (len == 0) { return 0; }var n = 0; for (; ; ) { var nread = this.read1 (b, off + n, len - n); if (nread <= 0) return (n == 0) ? nread : n; n += nread; if (n >= len) return n; var input = this.$in; if (input != null && input.available () <= 0) return n; } }, "~A,~N,~N"); Clazz.overrideMethod (c$, "skip", function (n) { this.getBufIfOpen (); if (n <= 0) { return 0; }var avail = this.count - this.pos; if (avail <= 0) { if (this.markpos < 0) return this.getInIfOpen ().skip (n); this.fill (); avail = this.count - this.pos; if (avail <= 0) return 0; }var skipped = (avail < n) ? avail : n; this.pos += skipped; return skipped; }, "~N"); Clazz.overrideMethod (c$, "available", function () { var n = this.count - this.pos; var avail = this.getInIfOpen ().available (); return n > (2147483647 - avail) ? 2147483647 : n + avail; }); Clazz.overrideMethod (c$, "mark", function (readlimit) { this.marklimit = readlimit; this.markpos = this.pos; }, "~N"); Clazz.overrideMethod (c$, "reset", function () { this.getBufIfOpen (); if (this.markpos < 0) throw new java.io.IOException ("Resetting to invalid mark"); this.pos = this.markpos; }); Clazz.overrideMethod (c$, "markSupported", function () { return true; }); Clazz.overrideMethod (c$, "close", function () { var input = this.$in; this.$in = null; if (input != null) input.close (); return; }); Clazz.defineStatics (c$, "DEFAULT_BUFFER_SIZE", 8192); });