Clazz.load (["java.io.OutputStream"], "java.io.ByteArrayOutputStream", ["java.lang.IllegalArgumentException", "$.IndexOutOfBoundsException", "$.OutOfMemoryError"], function () { c$ = Clazz.decorateAsClass (function () { this.buf = null; this.count = 0; Clazz.instantialize (this, arguments); }, java.io, "ByteArrayOutputStream", java.io.OutputStream); Clazz.makeConstructor (c$, function () { this.construct (32); }); Clazz.makeConstructor (c$, function (size) { Clazz.superConstructor (this, java.io.ByteArrayOutputStream, []); if (size < 0) { throw new IllegalArgumentException ("Negative initial size: " + size); }this.buf = Clazz.newByteArray (size, 0); }, "~N"); Clazz.defineMethod (c$, "ensureCapacity", function (minCapacity) { if (minCapacity - this.buf.length > 0) this.grow (minCapacity); }, "~N"); Clazz.defineMethod (c$, "grow", function (minCapacity) { var oldCapacity = this.buf.length; var newCapacity = oldCapacity << 1; if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity < 0) { if (minCapacity < 0) throw new OutOfMemoryError (); newCapacity = minCapacity; }this.buf = java.io.ByteArrayOutputStream.arrayCopyByte (this.buf, newCapacity); }, "~N"); c$.arrayCopyByte = Clazz.defineMethod (c$, "arrayCopyByte", function (array, newLength) { var t = Clazz.newByteArray (newLength, 0); System.arraycopy (array, 0, t, 0, array.length < newLength ? array.length : newLength); return t; }, "~A,~N"); Clazz.overrideMethod (c$, "writeByteAsInt", function (b) { this.ensureCapacity (this.count + 1); this.buf[this.count] = b; this.count += 1; }, "~N"); Clazz.defineMethod (c$, "write", function (b, off, len) { if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) - b.length > 0)) { throw new IndexOutOfBoundsException (); }this.ensureCapacity (this.count + len); System.arraycopy (b, off, this.buf, this.count, len); this.count += len; }, "~A,~N,~N"); Clazz.defineMethod (c$, "writeTo", function (out) { out.write (this.buf, 0, this.count); }, "java.io.OutputStream"); Clazz.defineMethod (c$, "reset", function () { this.count = 0; }); Clazz.defineMethod (c$, "toByteArray", function () { return (this.count == this.buf.length ? this.buf : java.io.ByteArrayOutputStream.arrayCopyByte (this.buf, this.count)); }); Clazz.defineMethod (c$, "size", function () { return this.count; }); Clazz.overrideMethod (c$, "toString", function () { return String.instantialize (this.buf, 0, this.count); }); Clazz.overrideMethod (c$, "close", function () { }); });