home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / io / CharArrayWriter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.8 KB  |  108 lines

  1. package java.io;
  2.  
  3. public class CharArrayWriter extends Writer {
  4.    protected char[] buf;
  5.    protected int count;
  6.  
  7.    public CharArrayWriter() {
  8.       this(32);
  9.    }
  10.  
  11.    public CharArrayWriter(int var1) {
  12.       if (var1 < 0) {
  13.          throw new IllegalArgumentException("Negative initial size: " + var1);
  14.       } else {
  15.          this.buf = new char[var1];
  16.       }
  17.    }
  18.  
  19.    public void write(int var1) {
  20.       Object var2 = super.lock;
  21.       synchronized(var2) {
  22.          int var3 = this.count + 1;
  23.          if (var3 > this.buf.length) {
  24.             char[] var4 = new char[Math.max(this.buf.length << 1, var3)];
  25.             System.arraycopy(this.buf, 0, var4, 0, this.count);
  26.             this.buf = var4;
  27.          }
  28.  
  29.          this.buf[this.count] = (char)var1;
  30.          this.count = var3;
  31.       }
  32.    }
  33.  
  34.    public void write(char[] var1, int var2, int var3) {
  35.       if (var2 >= 0 && var2 <= var1.length && var3 >= 0 && var2 + var3 <= var1.length && var2 + var3 >= 0) {
  36.          if (var3 != 0) {
  37.             Object var4 = super.lock;
  38.             synchronized(var4) {
  39.                int var5 = this.count + var3;
  40.                if (var5 > this.buf.length) {
  41.                   char[] var6 = new char[Math.max(this.buf.length << 1, var5)];
  42.                   System.arraycopy(this.buf, 0, var6, 0, this.count);
  43.                   this.buf = var6;
  44.                }
  45.  
  46.                System.arraycopy(var1, var2, this.buf, this.count, var3);
  47.                this.count = var5;
  48.             }
  49.          }
  50.       } else {
  51.          throw new IndexOutOfBoundsException();
  52.       }
  53.    }
  54.  
  55.    public void write(String var1, int var2, int var3) {
  56.       Object var4 = super.lock;
  57.       synchronized(var4) {
  58.          int var5 = this.count + var3;
  59.          if (var5 > this.buf.length) {
  60.             char[] var6 = new char[Math.max(this.buf.length << 1, var5)];
  61.             System.arraycopy(this.buf, 0, var6, 0, this.count);
  62.             this.buf = var6;
  63.          }
  64.  
  65.          var1.getChars(var2, var2 + var3, this.buf, this.count);
  66.          this.count = var5;
  67.       }
  68.    }
  69.  
  70.    public void writeTo(Writer var1) throws IOException {
  71.       Object var2 = super.lock;
  72.       synchronized(var2) {
  73.          var1.write(this.buf, 0, this.count);
  74.       }
  75.    }
  76.  
  77.    public void reset() {
  78.       this.count = 0;
  79.    }
  80.  
  81.    public char[] toCharArray() {
  82.       Object var1 = super.lock;
  83.       synchronized(var1) {
  84.          char[] var2 = new char[this.count];
  85.          System.arraycopy(this.buf, 0, var2, 0, this.count);
  86.          return var2;
  87.       }
  88.    }
  89.  
  90.    public int size() {
  91.       return this.count;
  92.    }
  93.  
  94.    public String toString() {
  95.       Object var1 = super.lock;
  96.       synchronized(var1) {
  97.          String var2 = new String(this.buf, 0, this.count);
  98.          return var2;
  99.       }
  100.    }
  101.  
  102.    public void flush() {
  103.    }
  104.  
  105.    public void close() {
  106.    }
  107. }
  108.