151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/* 22c87ad3a45cecf9e344487cad1abfdebe79f2c7cNarayan Kamath * Copyright (C) 2014 The Android Open Source Project 3694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. 451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is free software; you can redistribute it and/or modify it 751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * under the terms of the GNU General Public License version 2 only, as 851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * published by the Free Software Foundation. Oracle designates this 951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * particular file as subject to the "Classpath" exception as provided 1051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * by Oracle in the LICENSE file that accompanied this code. 1151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 1251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is distributed in the hope that it will be useful, but WITHOUT 1351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * version 2 for more details (a copy is included in the LICENSE file that 1651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * accompanied this code). 1751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 1851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * You should have received a copy of the GNU General Public License version 1951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 2 along with this work; if not, write to the Free Software Foundation, 2051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 2251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * or visit www.oracle.com if you need additional information or have any 2451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * questions. 2551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 2651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 2751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipackage java.lang; 2851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 2951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 3051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/** 3151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * A mutable sequence of characters. This class provides an API compatible 32694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * with {@code StringBuffer}, but with no guarantee of synchronization. 3351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This class is designed for use as a drop-in replacement for 34694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code StringBuffer} in places where the string buffer was being 3551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * used by a single thread (as is generally the case). Where possible, 3651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * it is recommended that this class be used in preference to 37694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code StringBuffer} as it will be faster under most implementations. 3851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 39694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * <p>The principal operations on a {@code StringBuilder} are the 40694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code append} and {@code insert} methods, which are 4151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * overloaded so as to accept data of any type. Each effectively 4251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * converts a given datum to a string and then appends or inserts the 4351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * characters of that string to the string builder. The 44694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code append} method always adds these characters at the end 45694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * of the builder; the {@code insert} method adds the characters at 4651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * a specified point. 4751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> 48694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * For example, if {@code z} refers to a string builder object 49694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * whose current contents are "{@code start}", then 50694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * the method call {@code z.append("le")} would cause the string 51694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * builder to contain "{@code startle}", whereas 52694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code z.insert(4, "le")} would alter the string builder to 53694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * contain "{@code starlet}". 54694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * <p> 55694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * In general, if sb refers to an instance of a {@code StringBuilder}, 56694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * then {@code sb.append(x)} has the same effect as 57694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code sb.insert(sb.length(), x)}. 5851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> 5951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Every string builder has a capacity. As long as the length of the 6051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * character sequence contained in the string builder does not exceed 6151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * the capacity, it is not necessary to allocate a new internal 6251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * buffer. If the internal buffer overflows, it is automatically made larger. 6351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 64694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * <p>Instances of {@code StringBuilder} are not safe for 6551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * use by multiple threads. If such synchronization is required then it is 6651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * recommended that {@link java.lang.StringBuffer} be used. 6751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 68694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * <p>Unless otherwise noted, passing a {@code null} argument to a constructor 69694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * or method in this class will cause a {@link NullPointerException} to be 70694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * thrown. 71694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * 7251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @author Michael McCloskey 7351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @see java.lang.StringBuffer 7451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @see java.lang.String 7551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @since 1.5 7651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 7751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipublic final class StringBuilder 7851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski extends AbstractStringBuilder 79694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak implements java.io.Serializable, CharSequence 8051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski{ 8151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 8251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** use serialVersionUID for interoperability */ 8351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski static final long serialVersionUID = 4383685877147921099L; 8451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 8551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 8651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Constructs a string builder with no characters in it and an 8751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * initial capacity of 16 characters. 8851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 8951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder() { 9051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super(16); 9151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 9251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 9351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 9451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Constructs a string builder with no characters in it and an 95694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * initial capacity specified by the {@code capacity} argument. 9651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 9751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param capacity the initial capacity. 98694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * @throws NegativeArraySizeException if the {@code capacity} 99694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * argument is less than {@code 0}. 10051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 10151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder(int capacity) { 10251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super(capacity); 10351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 10451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 10551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 10651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Constructs a string builder initialized to the contents of the 10751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * specified string. The initial capacity of the string builder is 108694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code 16} plus the length of the string argument. 10951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 11051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param str the initial contents of the buffer. 11151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 11251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder(String str) { 11351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super(str.length() + 16); 11451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski append(str); 11551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 11651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 11751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 11851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Constructs a string builder that contains the same characters 119694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * as the specified {@code CharSequence}. The initial capacity of 120694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * the string builder is {@code 16} plus the length of the 121694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code CharSequence} argument. 12251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 12351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param seq the sequence to copy. 12451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 12551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder(CharSequence seq) { 12651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski this(seq.length() + 16); 12751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski append(seq); 12851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 12951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 130694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 13151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(Object obj) { 13251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return append(String.valueOf(obj)); 13351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 13451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 135694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 13651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(String str) { 13751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(str); 13851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 13951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 14051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 14151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 142694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * Appends the specified {@code StringBuffer} to this sequence. 14351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> 144694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * The characters of the {@code StringBuffer} argument are appended, 14551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * in order, to this sequence, increasing the 14651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * length of this sequence by the length of the argument. 147694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * If {@code sb} is {@code null}, then the four characters 148694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code "null"} are appended to this sequence. 14951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> 15051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Let <i>n</i> be the length of this character sequence just prior to 151694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * execution of the {@code append} method. Then the character at index 15251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <i>k</i> in the new character sequence is equal to the character at 15351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * index <i>k</i> in the old character sequence, if <i>k</i> is less than 15451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <i>n</i>; otherwise, it is equal to the character at index <i>k-n</i> 155694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * in the argument {@code sb}. 15651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 157694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * @param sb the {@code StringBuffer} to append. 15851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return a reference to this object. 15951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 16051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(StringBuffer sb) { 16151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(sb); 16251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 16351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 16451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 165694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 16651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(CharSequence s) { 167694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak super.append(s); 168694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return this; 16951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 17051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 17151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 17251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws IndexOutOfBoundsException {@inheritDoc} 17351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 174694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 17551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(CharSequence s, int start, int end) { 17651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(s, start, end); 17751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 17851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 17951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 180694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 18151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(char[] str) { 18251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(str); 18351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 18451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 18551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 18651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 18751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws IndexOutOfBoundsException {@inheritDoc} 18851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 189694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 19051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(char[] str, int offset, int len) { 19151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(str, offset, len); 19251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 19351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 19451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 195694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 19651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(boolean b) { 19751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(b); 19851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 19951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 20051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 201694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 20251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(char c) { 20351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(c); 20451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 20551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 20651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 207694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 20851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(int i) { 20951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(i); 21051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 21151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 21251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 213694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 21451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(long lng) { 21551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(lng); 21651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 21751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 21851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 219694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 22051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(float f) { 22151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(f); 22251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 22351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 22451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 225694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 22651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder append(double d) { 22751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.append(d); 22851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 22951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 23051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 23151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 23251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @since 1.5 23351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 234694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 23551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder appendCodePoint(int codePoint) { 23651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.appendCodePoint(codePoint); 23751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 23851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 23951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 24051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 24151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 24251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 243694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 24451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder delete(int start, int end) { 24551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.delete(start, end); 24651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 24751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 24851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 24951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 25051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 25151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 252694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 25351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder deleteCharAt(int index) { 25451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.deleteCharAt(index); 25551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 25651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 25751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 25851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 25951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 26051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 261694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 26251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder replace(int start, int end, String str) { 26351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.replace(start, end, str); 26451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 26551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 26651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 26751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 26851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 26951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 270694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 27151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int index, char[] str, int offset, 27251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int len) 27351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski { 27451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.insert(index, str, offset, len); 27551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 27651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 27751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 27851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 27951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 28051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 281694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 28251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, Object obj) { 283694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak super.insert(offset, obj); 284694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return this; 28551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 28651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 28751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 28851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 28951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 290694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 29151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, String str) { 29251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.insert(offset, str); 29351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 29451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 29551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 29651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 29751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 29851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 299694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 30051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, char[] str) { 30151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.insert(offset, str); 30251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 30351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 30451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 30551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 30651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws IndexOutOfBoundsException {@inheritDoc} 30751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 308694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 30951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int dstOffset, CharSequence s) { 310694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak super.insert(dstOffset, s); 311694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return this; 31251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 31351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 31451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 31551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws IndexOutOfBoundsException {@inheritDoc} 31651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 317694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 31851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int dstOffset, CharSequence s, 31951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int start, int end) 32051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski { 32151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.insert(dstOffset, s, start, end); 32251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 32351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 32451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 32551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 32651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 32751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 328694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 32951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, boolean b) { 33051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.insert(offset, b); 33151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 33251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 33351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 33451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 33551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws IndexOutOfBoundsException {@inheritDoc} 33651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 337694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 33851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, char c) { 33951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.insert(offset, c); 34051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 34151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 34251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 34351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 34451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 34551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 346694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 34751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, int i) { 348694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak super.insert(offset, i); 349694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return this; 35051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 35151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 35251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 35351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 35451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 355694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 35651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, long l) { 357694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak super.insert(offset, l); 358694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return this; 35951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 36051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 36151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 36251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 36351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 364694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 36551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, float f) { 366694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak super.insert(offset, f); 367694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return this; 36851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 36951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 37051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 37151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws StringIndexOutOfBoundsException {@inheritDoc} 37251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 373694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 37451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder insert(int offset, double d) { 375694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak super.insert(offset, d); 376694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return this; 37751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 37851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 379694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 38051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public int indexOf(String str) { 381694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return super.indexOf(str); 38251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 38351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 384694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 38551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public int indexOf(String str, int fromIndex) { 386694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return super.indexOf(str, fromIndex); 38751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 38851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 389694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 39051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public int lastIndexOf(String str) { 391694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return super.lastIndexOf(str); 39251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 39351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 394694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 39551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public int lastIndexOf(String str, int fromIndex) { 396694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak return super.lastIndexOf(str, fromIndex); 39751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 39851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 399694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 40051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuilder reverse() { 40151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski super.reverse(); 40251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 40351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 40451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 405694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak @Override 40651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public String toString() { 407b90c36f25b990336a456daad69ea9db9256b86cePrzemyslaw Szczepaniak if (count == 0) { 408b90c36f25b990336a456daad69ea9db9256b86cePrzemyslaw Szczepaniak return ""; 409b90c36f25b990336a456daad69ea9db9256b86cePrzemyslaw Szczepaniak } 410b90c36f25b990336a456daad69ea9db9256b86cePrzemyslaw Szczepaniak return StringFactory.newStringFromChars(0, count, value); 41151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 41251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 41351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 414694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * Save the state of the {@code StringBuilder} instance to a stream 41551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * (that is, serialize it). 41651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 41751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @serialData the number of characters currently stored in the string 418694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * builder ({@code int}), followed by the characters in the 419694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * string builder ({@code char[]}). The length of the 420694e617f54a7bfbdad24913ce96f5d56f1a1960aPrzemyslaw Szczepaniak * {@code char} array may be greater than the number of 42151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * characters currently stored in the string builder, in which 42251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * case extra characters are ignored. 42351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 42451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski private void writeObject(java.io.ObjectOutputStream s) 42551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski throws java.io.IOException { 42651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski s.defaultWriteObject(); 42751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski s.writeInt(count); 42851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski s.writeObject(value); 42951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 43051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 43151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 43251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * readObject is called to restore the state of the StringBuffer from 43351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * a stream. 43451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 43551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski private void readObject(java.io.ObjectInputStream s) 43651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski throws java.io.IOException, ClassNotFoundException { 43751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski s.defaultReadObject(); 43851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski count = s.readInt(); 43951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski value = (char[]) s.readObject(); 44051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 44151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 44251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski} 443