home *** CD-ROM | disk | FTP | other *** search
- package java.io;
-
- public class StringReader extends Reader {
- private String str;
- private int length;
- private int next = 0;
- private int mark = 0;
-
- public StringReader(String var1) {
- this.str = var1;
- this.length = var1.length();
- }
-
- private void ensureOpen() throws IOException {
- if (this.str == null) {
- throw new IOException("Stream closed");
- }
- }
-
- public int read() throws IOException {
- Object var1 = super.lock;
- synchronized(var1) {
- this.ensureOpen();
- if (this.next >= this.length) {
- byte var2 = -1;
- return var2;
- } else {
- char var3 = this.str.charAt(this.next++);
- return var3;
- }
- }
- }
-
- public int read(char[] var1, int var2, int var3) throws IOException {
- Object var4 = super.lock;
- synchronized(var4) {
- this.ensureOpen();
- if (var2 >= 0 && var2 <= var1.length && var3 >= 0 && var2 + var3 <= var1.length && var2 + var3 >= 0) {
- if (var3 == 0) {
- byte var10 = 0;
- return var10;
- } else if (this.next >= this.length) {
- byte var5 = -1;
- return var5;
- } else {
- int var6 = Math.min(this.length - this.next, var3);
- this.str.getChars(this.next, this.next + var6, var1, var2);
- this.next += var6;
- return var6;
- }
- } else {
- throw new IndexOutOfBoundsException();
- }
- }
- }
-
- public long skip(long var1) throws IOException {
- Object var3 = super.lock;
- synchronized(var3) {
- this.ensureOpen();
- if (this.next >= this.length) {
- long var4 = 0L;
- return var4;
- } else {
- long var6 = Math.min((long)(this.length - this.next), var1);
- this.next = (int)((long)this.next + var6);
- return var6;
- }
- }
- }
-
- public boolean ready() throws IOException {
- Object var1 = super.lock;
- synchronized(var1) {
- this.ensureOpen();
- boolean var2 = true;
- return var2;
- }
- }
-
- public boolean markSupported() {
- return true;
- }
-
- public void mark(int var1) throws IOException {
- if (var1 < 0) {
- throw new IllegalArgumentException("Read-ahead limit < 0");
- } else {
- Object var2 = super.lock;
- synchronized(var2) {
- this.ensureOpen();
- this.mark = this.next;
- }
- }
- }
-
- public void reset() throws IOException {
- Object var1 = super.lock;
- synchronized(var1) {
- this.ensureOpen();
- this.next = this.mark;
- }
- }
-
- public void close() {
- this.str = null;
- }
- }
-