You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by er...@locus.apache.org on 2000/09/26 20:39:33 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/framework XMLStringBuffer.java

ericye      00/09/26 11:39:32

  Modified:    java/src/org/apache/xerces/framework Tag: xerces_j_2
                        XMLStringBuffer.java
  Log:
  flesh out the methods.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.6   +38 -2     xml-xerces/java/src/org/apache/xerces/framework/Attic/XMLStringBuffer.java
  
  Index: XMLStringBuffer.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/framework/Attic/XMLStringBuffer.java,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- XMLStringBuffer.java	2000/09/11 21:56:14	1.1.2.5
  +++ XMLStringBuffer.java	2000/09/26 18:39:31	1.1.2.6
  @@ -59,7 +59,7 @@
   
   /**
    * @author Stubs generated by DesignDoc on Mon Sep 11 11:10:57 PDT 2000
  - * @version $Id: XMLStringBuffer.java,v 1.1.2.5 2000/09/11 21:56:14 andyc Exp $
  + * @version $Id: XMLStringBuffer.java,v 1.1.2.6 2000/09/26 18:39:31 ericye Exp $
    */
   public class XMLStringBuffer
       extends XMLString {
  @@ -69,7 +69,8 @@
       //
   
       /** SIZE */
  -    public static final int SIZE = -1;
  +    /** initial buffer size when constructed from the default constructor */
  +    public static final int SIZE = 16;
   
       //
       // Constructors
  @@ -79,6 +80,9 @@
        * 
        */
       public XMLStringBuffer() {
  +        ch = new char[SIZE];
  +        offset = 0;
  +        length = 0;
       }
   
       /**
  @@ -87,6 +91,9 @@
        * @param size 
        */
       public XMLStringBuffer(int size) {
  +        ch = new char[size];
  +        offset = 0;
  +        length = 0;
       }
   
       //
  @@ -99,6 +106,13 @@
        * @param c 
        */
       public void append(char c) {
  +        if ( (length+1) > ch.length ) {
  +            char[] newArray = new char[ch.length+SIZE];
  +            System.arraycopy(ch, 0, newArray, 0, length);
  +            ch = newArray;
  +        }
  +
  +        ch[length++] = c;
       } // append
   
       /**
  @@ -107,6 +121,17 @@
        * @param s 
        */
       public void append(String s) {
  +        int len = s.length();
  +        if ( (length+len) > ch.length) {
  +            char[] newArray = new char[ch.length+len+SIZE];
  +            System.arraycopy(ch, 0, newArray, 0, length);
  +            ch = newArray;
  +        }
  +
  +        for (int i=0; i<len; i++) {
  +            ch[length+i] = s.charAt(i);
  +        }
  +        length += len;
       } // append
   
       /**
  @@ -117,6 +142,16 @@
        * @param length 
        */
       public void append(char[] ch, int offset, int length) {
  +        if ( (this.length+length) > ch.length) {
  +            char[] newArray = new char[ch.length+length+SIZE];
  +            System.arraycopy(this.ch, 0, newArray, 0, this.length);
  +            this.ch = newArray;
  +        }
  +
  +        for (int i=0; i<length; i++) {
  +            this.ch[this.length+i] = ch[offset+i];
  +        }
  +        this.length += length;
       } // append
   
       /**
  @@ -125,6 +160,7 @@
        * @param s 
        */
       public void append(XMLString s) {
  +        append(s.ch, s.offset, s.length);
       } // append
   
   } // class XMLStringBuffer