JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / io / StringReader.js
1 Clazz.load (["java.io.Reader"], "java.io.StringReader", ["java.io.IOException", "java.lang.IllegalArgumentException", "$.IndexOutOfBoundsException"], function () {\r
2 c$ = Clazz.decorateAsClass (function () {\r
3 this.str = null;\r
4 this.length = 0;\r
5 this.next = 0;\r
6 this.$mark = 0;\r
7 Clazz.instantialize (this, arguments);\r
8 }, java.io, "StringReader", java.io.Reader);\r
9 Clazz.makeConstructor (c$, \r
10 function (s) {\r
11 Clazz.superConstructor (this, java.io.StringReader, [s]);\r
12 this.str = s;\r
13 this.length = s.length;\r
14 }, "~S");\r
15 Clazz.defineMethod (c$, "ensureOpen", \r
16  function () {\r
17 if (this.str == null) throw  new java.io.IOException ("Stream closed");\r
18 });\r
19 Clazz.overrideMethod (c$, "read", \r
20 function (cbuf, off, len) {\r
21 {\r
22 this.ensureOpen ();\r
23 if ((off < 0) || (off > cbuf.length) || (len < 0) || ((off + len) > cbuf.length) || ((off + len) < 0)) {\r
24 throw  new IndexOutOfBoundsException ();\r
25 } else if (len == 0) {\r
26 return 0;\r
27 }if (this.next >= this.length) return -1;\r
28 var n = Math.min (this.length - this.next, len);\r
29 this.str.getChars (this.next, this.next + n, cbuf, off);\r
30 this.next += n;\r
31 return n;\r
32 }}, "~A,~N,~N");\r
33 Clazz.overrideMethod (c$, "skip", \r
34 function (ns) {\r
35 {\r
36 this.ensureOpen ();\r
37 if (this.next >= this.length) return 0;\r
38 var n = Math.min (this.length - this.next, ns);\r
39 n = Math.max (-this.next, n);\r
40 this.next += n;\r
41 return n;\r
42 }}, "~N");\r
43 Clazz.overrideMethod (c$, "ready", \r
44 function () {\r
45 {\r
46 this.ensureOpen ();\r
47 return true;\r
48 }});\r
49 Clazz.overrideMethod (c$, "markSupported", \r
50 function () {\r
51 return true;\r
52 });\r
53 Clazz.overrideMethod (c$, "mark", \r
54 function (readAheadLimit) {\r
55 if (readAheadLimit < 0) {\r
56 throw  new IllegalArgumentException ("Read-ahead limit < 0");\r
57 }{\r
58 this.ensureOpen ();\r
59 this.$mark = this.next;\r
60 }}, "~N");\r
61 Clazz.overrideMethod (c$, "reset", \r
62 function () {\r
63 {\r
64 this.ensureOpen ();\r
65 this.next = this.$mark;\r
66 }});\r
67 Clazz.overrideMethod (c$, "close", \r
68 function () {\r
69 this.str = null;\r
70 });\r
71 });\r