JAL-1807
[jalview.git] / site / j2s / java / io / DataInputStream.js
diff --git a/site/j2s/java/io/DataInputStream.js b/site/j2s/java/io/DataInputStream.js
new file mode 100644 (file)
index 0000000..f8b9456
--- /dev/null
@@ -0,0 +1,205 @@
+Clazz.load (["java.io.DataInput", "$.FilterInputStream"], "java.io.DataInputStream", ["java.io.EOFException", "$.PushbackInputStream", "$.UTFDataFormatException", "java.lang.Double", "$.Float", "$.IndexOutOfBoundsException"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.bytearr = null;
+this.chararr = null;
+this.readBuffer = null;
+this.lineBuffer = null;
+Clazz.instantialize (this, arguments);
+}, java.io, "DataInputStream", java.io.FilterInputStream, java.io.DataInput);
+Clazz.prepareFields (c$, function () {
+this.bytearr =  Clazz.newByteArray (80, 0);
+this.chararr =  Clazz.newCharArray (80, '\0');
+this.readBuffer =  Clazz.newByteArray (8, 0);
+});
+Clazz.overrideMethod (c$, "read", 
+function (b, off, len) {
+    if (arguments.length == 1) { off = 0; len = b.length; }
+return this.$in.read (b, off, len);
+}, "~A,~N,~N");
+Clazz.defineMethod (c$, "readFully", 
+function (b, off, len) {
+if (len < 0) throw  new IndexOutOfBoundsException ();
+var n = 0;
+while (n < len) {
+var count = this.$in.read (b, off + n, len - n);
+if (count < 0) throw  new java.io.EOFException ();
+n += count;
+}
+}, "~A,~N,~N");
+Clazz.overrideMethod (c$, "skipBytes", 
+function (n) {
+var total = 0;
+var cur = 0;
+while ((total < n) && ((cur = this.$in.skip (n - total)) > 0)) {
+total += cur;
+}
+return total;
+}, "~N");
+Clazz.overrideMethod (c$, "readBoolean", 
+function () {
+var ch = this.$in.readByteAsInt ();
+if (ch < 0) throw  new java.io.EOFException ();
+return (ch != 0);
+});
+Clazz.overrideMethod (c$, "readByte", 
+function () {
+var ch = this.$in.readByteAsInt ();
+if (ch < 0) throw  new java.io.EOFException ();
+return (ch);
+});
+Clazz.overrideMethod (c$, "readUnsignedByte", 
+function () {
+var ch = this.$in.readByteAsInt ();
+if (ch < 0) throw  new java.io.EOFException ();
+return ch;
+});
+Clazz.overrideMethod (c$, "readShort", 
+function () {
+var ch1 = this.$in.readByteAsInt ();
+var ch2 = this.$in.readByteAsInt ();
+if ((ch1 | ch2) < 0) throw  new java.io.EOFException ();
+var n = ((ch1 << 8) + (ch2 << 0));
+{
+return (n > 0x7FFF ? n - 0x10000 : n);
+}});
+Clazz.defineMethod (c$, "readUnsignedShort", 
+function () {
+var ch1 = this.$in.readByteAsInt ();
+var ch2 = this.$in.readByteAsInt ();
+if ((ch1 | ch2) < 0) throw  new java.io.EOFException ();
+return (ch1 << 8) + (ch2 << 0);
+});
+Clazz.overrideMethod (c$, "readChar", 
+function () {
+var ch1 = this.$in.readByteAsInt ();
+var ch2 = this.$in.readByteAsInt ();
+if ((ch1 | ch2) < 0) throw  new java.io.EOFException ();
+return String.fromCharCode ((ch1 << 8) + (ch2 << 0));
+});
+Clazz.overrideMethod (c$, "readInt", 
+function () {
+var ch1 = this.$in.readByteAsInt ();
+var ch2 = this.$in.readByteAsInt ();
+var ch3 = this.$in.readByteAsInt ();
+var ch4 = this.$in.readByteAsInt ();
+if ((ch1 | ch2 | ch3 | ch4) < 0) throw  new java.io.EOFException ();
+var n = ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));
+{
+return (n > 0x7FFFFFFF ? n - 0x100000000 : n);
+}});
+Clazz.overrideMethod (c$, "readLong", 
+function () {
+this.readFully (this.readBuffer, 0, 8);
+return ((this.readBuffer[0] << 56) + ((this.readBuffer[1] & 255) << 48) + ((this.readBuffer[2] & 255) << 40) + ((this.readBuffer[3] & 255) << 32) + ((this.readBuffer[4] & 255) << 24) + ((this.readBuffer[5] & 255) << 16) + ((this.readBuffer[6] & 255) << 8) + ((this.readBuffer[7] & 255) << 0));
+});
+Clazz.overrideMethod (c$, "readFloat", 
+function () {
+return Float.intBitsToFloat (this.readInt ());
+});
+Clazz.overrideMethod (c$, "readDouble", 
+function () {
+return Double.longBitsToDouble (this.readLong ());
+});
+Clazz.overrideMethod (c$, "readLine", 
+function () {
+var buf = this.lineBuffer;
+if (buf == null) {
+buf = this.lineBuffer =  Clazz.newCharArray (128, '\0');
+}var room = buf.length;
+var offset = 0;
+var c;
+loop : while (true) {
+switch (c = this.$in.readByteAsInt ()) {
+case -1:
+case '\n':
+break loop;
+case '\r':
+var c2 = this.$in.readByteAsInt ();
+if ((c2 != 10) && (c2 != -1)) {
+if (!(Clazz.instanceOf (this.$in, java.io.PushbackInputStream))) {
+this.$in =  new java.io.PushbackInputStream (this.$in, 1);
+}(this.$in).unreadByte (c2);
+}break loop;
+default:
+if (--room < 0) {
+buf =  Clazz.newCharArray (offset + 128, '\0');
+room = buf.length - offset - 1;
+System.arraycopy (this.lineBuffer, 0, buf, 0, offset);
+this.lineBuffer = buf;
+}buf[offset++] = String.fromCharCode (c);
+break;
+}
+}
+if ((c == -1) && (offset == 0)) {
+return null;
+}return String.copyValueOf (buf, 0, offset);
+});
+Clazz.overrideMethod (c$, "readUTF", 
+function () {
+return java.io.DataInputStream.readUTFBytes (this, -1);
+});
+c$.readUTFBytes = Clazz.defineMethod (c$, "readUTFBytes", 
+function ($in, utflen) {
+var isByteArray = (utflen >= 0);
+if (!isByteArray) utflen = $in.readUnsignedShort ();
+var bytearr = null;
+var chararr = null;
+if (Clazz.instanceOf ($in, java.io.DataInputStream)) {
+var dis = $in;
+if (dis.bytearr.length < utflen) {
+dis.bytearr =  Clazz.newByteArray (isByteArray ? utflen : utflen * 2, 0);
+dis.chararr =  Clazz.newCharArray (dis.bytearr.length, '\0');
+}chararr = dis.chararr;
+bytearr = dis.bytearr;
+} else {
+bytearr =  Clazz.newByteArray (utflen, 0);
+chararr =  Clazz.newCharArray (utflen, '\0');
+}var c;
+var char2;
+var char3;
+var count = 0;
+var chararr_count = 0;
+$in.readFully (bytearr, 0, utflen);
+while (count < utflen) {
+c = bytearr[count] & 0xff;
+if (c > 127) break;
+count++;
+chararr[chararr_count++] = String.fromCharCode (c);
+}
+while (count < utflen) {
+c = bytearr[count] & 0xff;
+switch (c >> 4) {
+case 0:
+case 1:
+case 2:
+case 3:
+case 4:
+case 5:
+case 6:
+case 7:
+count++;
+chararr[chararr_count++] = String.fromCharCode (c);
+break;
+case 12:
+case 13:
+count += 2;
+if (count > utflen) throw  new java.io.UTFDataFormatException ("malformed input: partial character at end");
+char2 = bytearr[count - 1];
+if ((char2 & 0xC0) != 0x80) throw  new java.io.UTFDataFormatException ("malformed input around byte " + count);
+chararr[chararr_count++] = String.fromCharCode (((c & 0x1F) << 6) | (char2 & 0x3F));
+break;
+case 14:
+count += 3;
+if (count > utflen) throw  new java.io.UTFDataFormatException ("malformed input: partial character at end");
+char2 = bytearr[count - 2];
+char3 = bytearr[count - 1];
+if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80)) throw  new java.io.UTFDataFormatException ("malformed input around byte " + (count - 1));
+chararr[chararr_count++] = String.fromCharCode (((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0));
+break;
+default:
+throw  new java.io.UTFDataFormatException ("malformed input around byte " + count);
+}
+}
+return  String.instantialize (chararr, 0, chararr_count);
+}, "java.io.DataInput,~N");
+});