home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / netscape / plugin / composer / io / FooStringBuffer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  3.7 KB  |  227 lines

  1. package netscape.plugin.composer.io;
  2.  
  3. class FooStringBuffer {
  4.    private char[] value;
  5.    private int count;
  6.  
  7.    public FooStringBuffer() {
  8.       this(16);
  9.    }
  10.  
  11.    public FooStringBuffer(int var1) {
  12.       this.value = new char[var1];
  13.    }
  14.  
  15.    public FooStringBuffer(char[] var1, int var2, int var3) {
  16.       this.value = new char[var3];
  17.       System.arraycopy(var1, var2, this.value, 0, var3);
  18.       this.count = var3;
  19.    }
  20.  
  21.    public FooStringBuffer(String var1) {
  22.       this(var1.length() + 16);
  23.       this.append(var1);
  24.    }
  25.  
  26.    public int length() {
  27.       return this.count;
  28.    }
  29.  
  30.    public int capacity() {
  31.       return this.value.length;
  32.    }
  33.  
  34.    public void ensureCapacity(int var1) {
  35.       int var2 = this.value.length;
  36.       if (var1 > var2) {
  37.          int var3 = (var2 + 1) * 2;
  38.          if (var1 > var3) {
  39.             var3 = var1;
  40.          }
  41.  
  42.          char[] var4 = new char[var3];
  43.          System.arraycopy(this.value, 0, var4, 0, this.count);
  44.          this.value = var4;
  45.       }
  46.  
  47.    }
  48.  
  49.    public void setLength(int var1) {
  50.       if (var1 < 0) {
  51.          throw new StringIndexOutOfBoundsException(var1);
  52.       } else {
  53.          this.ensureCapacity(var1);
  54.          if (this.count < var1) {
  55.             while(this.count < var1) {
  56.                this.value[this.count] = 0;
  57.                ++this.count;
  58.             }
  59.          }
  60.  
  61.          this.count = var1;
  62.       }
  63.    }
  64.  
  65.    public char charAt(int var1) {
  66.       if (var1 >= 0 && var1 < this.count) {
  67.          return this.value[var1];
  68.       } else {
  69.          throw new StringIndexOutOfBoundsException(var1);
  70.       }
  71.    }
  72.  
  73.    public void getChars(int var1, int var2, char[] var3, int var4) {
  74.       if (var1 >= 0 && var1 < this.count) {
  75.          if (var2 >= 0 && var2 <= this.count) {
  76.             if (var1 < var2) {
  77.                System.arraycopy(this.value, var1, var3, var4, var2 - var1);
  78.             }
  79.  
  80.          } else {
  81.             throw new StringIndexOutOfBoundsException(var2);
  82.          }
  83.       } else {
  84.          throw new StringIndexOutOfBoundsException(var1);
  85.       }
  86.    }
  87.  
  88.    public void setCharAt(int var1, char var2) {
  89.       if (var1 >= 0 && var1 < this.count) {
  90.          this.value[var1] = var2;
  91.       } else {
  92.          throw new StringIndexOutOfBoundsException(var1);
  93.       }
  94.    }
  95.  
  96.    public FooStringBuffer append(Object var1) {
  97.       return this.append(String.valueOf(var1));
  98.    }
  99.  
  100.    public FooStringBuffer append(String var1) {
  101.       if (var1 == null) {
  102.          var1 = String.valueOf(var1);
  103.       }
  104.  
  105.       int var2 = var1.length();
  106.       this.ensureCapacity(this.count + var2);
  107.       var1.getChars(0, var2, this.value, this.count);
  108.       this.count += var2;
  109.       return this;
  110.    }
  111.  
  112.    public FooStringBuffer append(char[] var1) {
  113.       int var2 = var1.length;
  114.       this.ensureCapacity(this.count + var2);
  115.       System.arraycopy(var1, 0, this.value, this.count, var2);
  116.       this.count += var2;
  117.       return this;
  118.    }
  119.  
  120.    public FooStringBuffer append(char[] var1, int var2, int var3) {
  121.       this.ensureCapacity(this.count + var3);
  122.       System.arraycopy(var1, var2, this.value, this.count, var3);
  123.       this.count += var3;
  124.       return this;
  125.    }
  126.  
  127.    public FooStringBuffer append(boolean var1) {
  128.       return this.append(String.valueOf(var1));
  129.    }
  130.  
  131.    public FooStringBuffer append(char var1) {
  132.       this.ensureCapacity(this.count + 1);
  133.       this.value[this.count++] = var1;
  134.       return this;
  135.    }
  136.  
  137.    public FooStringBuffer append(int var1) {
  138.       return this.append(String.valueOf(var1));
  139.    }
  140.  
  141.    public FooStringBuffer append(long var1) {
  142.       return this.append(String.valueOf(var1));
  143.    }
  144.  
  145.    public FooStringBuffer append(float var1) {
  146.       return this.append(String.valueOf(var1));
  147.    }
  148.  
  149.    public FooStringBuffer append(double var1) {
  150.       return this.append(String.valueOf(var1));
  151.    }
  152.  
  153.    public FooStringBuffer insert(int var1, Object var2) {
  154.       return this.insert(var1, String.valueOf(var2));
  155.    }
  156.  
  157.    public FooStringBuffer insert(int var1, String var2) {
  158.       if (var1 >= 0 && var1 <= this.count) {
  159.          int var3 = var2.length();
  160.          this.ensureCapacity(this.count + var3);
  161.          System.arraycopy(this.value, var1, this.value, var1 + var3, this.count - var1);
  162.          var2.getChars(0, var3, this.value, var1);
  163.          this.count += var3;
  164.          return this;
  165.       } else {
  166.          throw new StringIndexOutOfBoundsException();
  167.       }
  168.    }
  169.  
  170.    public FooStringBuffer insert(int var1, char[] var2) {
  171.       if (var1 >= 0 && var1 <= this.count) {
  172.          int var3 = var2.length;
  173.          this.ensureCapacity(this.count + var3);
  174.          System.arraycopy(this.value, var1, this.value, var1 + var3, this.count - var1);
  175.          System.arraycopy(var2, 0, this.value, var1, var3);
  176.          this.count += var3;
  177.          return this;
  178.       } else {
  179.          throw new StringIndexOutOfBoundsException();
  180.       }
  181.    }
  182.  
  183.    public FooStringBuffer insert(int var1, boolean var2) {
  184.       return this.insert(var1, String.valueOf(var2));
  185.    }
  186.  
  187.    public FooStringBuffer insert(int var1, char var2) {
  188.       this.ensureCapacity(this.count + 1);
  189.       System.arraycopy(this.value, var1, this.value, var1 + 1, this.count - var1);
  190.       this.value[var1] = var2;
  191.       ++this.count;
  192.       return this;
  193.    }
  194.  
  195.    public FooStringBuffer insert(int var1, int var2) {
  196.       return this.insert(var1, String.valueOf(var2));
  197.    }
  198.  
  199.    public FooStringBuffer insert(int var1, long var2) {
  200.       return this.insert(var1, String.valueOf(var2));
  201.    }
  202.  
  203.    public FooStringBuffer insert(int var1, float var2) {
  204.       return this.insert(var1, String.valueOf(var2));
  205.    }
  206.  
  207.    public FooStringBuffer insert(int var1, double var2) {
  208.       return this.insert(var1, String.valueOf(var2));
  209.    }
  210.  
  211.    public FooStringBuffer reverse() {
  212.       int var1 = this.count - 1;
  213.  
  214.       for(int var2 = var1 - 1 >> 1; var2 >= 0; --var2) {
  215.          char var3 = this.value[var2];
  216.          this.value[var2] = this.value[var1 - var2];
  217.          this.value[var1 - var2] = var3;
  218.       }
  219.  
  220.       return this;
  221.    }
  222.  
  223.    public String toString() {
  224.       return new String(this.value, 0, this.count);
  225.    }
  226. }
  227.