1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  this work for additional information regarding copyright ownership.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  the License.  You may obtain a copy of the License at
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  See the License for the specific language governing permissions and
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  limitations under the License.
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage java.lang;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ObjectInputStream;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ObjectOutputStream;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ObjectStreamField;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.Serializable;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
27b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * A modifiable {@link CharSequence sequence of characters} for use in creating
28b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * strings, where all accesses are synchronized. This class has mostly been replaced
29b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * by {@link StringBuilder} because this synchronization is rarely useful. This
30b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * class is mainly used to interact with legacy APIs that expose it.
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
32b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * <p>For particularly complex string-building needs, consider {@link java.util.Formatter}.
33b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes *
34b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * <p>The majority of the modification methods on this class return {@code
35b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * this} so that method calls can be chained together. For example:
36b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * {@code new StringBuffer("a").append("b").append("c").toString()}.
37b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes *
38b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * @see CharSequence
39b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * @see Appendable
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see StringBuilder
41b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * @see String
42b53b743d2b03251635d98185d2e0680d166df033Elliott Hughes * @see String.format
433819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson * @since 1.0
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic final class StringBuffer extends AbstractStringBuilder implements
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Appendable, Serializable, CharSequence {
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private static final long serialVersionUID = 3388685877147921107L;
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private static final ObjectStreamField serialPersistentFields[] = {
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new ObjectStreamField("count", int.class), //$NON-NLS-1$
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new ObjectStreamField("shared", boolean.class), //$NON-NLS-1$
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new ObjectStreamField("value", char[].class), }; //$NON-NLS-1$
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Constructs a new StringBuffer using the default capacity which is 16.
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer() {
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super();
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Constructs a new StringBuffer using the specified capacity.
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param capacity
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the initial capacity.
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer(int capacity) {
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super(capacity);
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Constructs a new StringBuffer containing the characters in the specified
743819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * string. The capacity of the new buffer will be the length of the
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * {@code String} plus the default capacity.
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param string
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the string content with which to initialize the new instance.
793819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @throws NullPointerException
803819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *            if {@code string} is {@code null}.
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer(String string) {
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super(string);
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Constructs a StringBuffer and initializes it with the content from the
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * specified {@code CharSequence}. The capacity of the new buffer will be
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * the length of the {@code CharSequence} plus the default capacity.
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param cs
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the content to initialize the instance.
933819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @throws NullPointerException
943819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *            if {@code cs} is {@code null}.
953819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @since 1.5
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer(CharSequence cs) {
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super(cs.toString());
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the string representation of the specified boolean to the end of
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * this StringBuffer.
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the argument is {@code true} the string {@code "true"} is appended,
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * otherwise the string {@code "false"} is appended.
1073819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param b
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the boolean to append.
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see String#valueOf(boolean)
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer append(boolean b) {
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return append(b ? "true" : "false"); //$NON-NLS-1$//$NON-NLS-2$
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the specified character to the end of this buffer.
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param ch
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the character to append.
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see String#valueOf(char)
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(char ch) {
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        append0(ch);
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the string representation of the specified double to the end of this
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * StringBuffer.
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param d
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the double to append.
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see String#valueOf(double)
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer append(double d) {
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return append(Double.toString(d));
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the string representation of the specified float to the end of this
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * StringBuffer.
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param f
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the float to append.
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see String#valueOf(float)
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer append(float f) {
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return append(Float.toString(f));
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the string representation of the specified integer to the end of
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * this StringBuffer.
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param i
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the integer to append.
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see String#valueOf(int)
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer append(int i) {
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return append(Integer.toString(i));
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the string representation of the specified long to the end of this
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * StringBuffer.
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param l
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the long to append.
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see String#valueOf(long)
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer append(long l) {
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return append(Long.toString(l));
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the string representation of the specified object to the end of this
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * StringBuffer.
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified object is {@code null} the string {@code "null"} is
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * appended, otherwise the objects {@code toString} is used to get its
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * string representation.
1893819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param obj
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the object to append (may be null).
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see String#valueOf(Object)
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(Object obj) {
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (obj == null) {
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            appendNull();
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } else {
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            append0(obj.toString());
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the specified string to the end of this buffer.
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified string is {@code null} the string {@code "null"} is
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * appended, otherwise the contents of the specified string is appended.
2093819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param string
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the string to append (may be null).
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(String string) {
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        append0(string);
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the specified StringBuffer to the end of this buffer.
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified StringBuffer is {@code null} the string {@code "null"}
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * is appended, otherwise the contents of the specified StringBuffer is
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * appended.
2253819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param sb
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the StringBuffer to append (may be null).
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
2293819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
2303819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @since 1.4
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(StringBuffer sb) {
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (sb == null) {
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            appendNull();
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } else {
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            synchronized (sb) {
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                append0(sb.getValue(), 0, sb.length());
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the character array to the end of this buffer.
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param chars
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the character array to append.
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
2493819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @throws NullPointerException
2503819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *            if {@code chars} is {@code null}.
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(char chars[]) {
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        append0(chars);
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Adds the specified sequence of characters to the end of this buffer.
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param chars
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the character array to append.
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param start
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the starting offset.
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param length
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the number of characters.
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws ArrayIndexOutOfBoundsException
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code length < 0} , {@code start < 0} or {@code start +
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             length > chars.length}.
2703819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @throws NullPointerException
2713819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *            if {@code chars} is {@code null}.
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(char chars[], int start, int length) {
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        append0(chars, start, length);
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Appends the specified CharSequence to this buffer.
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified CharSequence is {@code null} the string {@code "null"}
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * is appended, otherwise the contents of the specified CharSequence is
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * appended.
2843819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param s
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the CharSequence to append.
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
2883819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @since 1.5
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(CharSequence s) {
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (s == null) {
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            appendNull();
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } else {
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            append0(s.toString());
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Appends the specified subsequence of the CharSequence to this buffer.
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified CharSequence is {@code null}, then the string {@code
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * "null"} is used to extract a subsequence.
3043819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param s
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the CharSequence to append.
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param start
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the inclusive start index.
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param end
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the exclusive end index.
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws IndexOutOfBoundsException
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code start} or {@code end} are negative, {@code start}
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             is greater than {@code end} or {@code end} is greater than
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             the length of {@code s}.
3163819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @since 1.5
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer append(CharSequence s, int start, int end) {
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        append0(s, start, end);
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Appends the string representation of the specified Unicode code point to
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * the end of this buffer.
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * The code point is converted to a {@code char[]} as defined by
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * {@link Character#toChars(int)}.
3293819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param codePoint
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the Unicode code point to encode and append.
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @see Character#toChars(int)
3343819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @since 1.5
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer appendCodePoint(int codePoint) {
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return append(Character.toChars(codePoint));
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized char charAt(int index) {
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.charAt(index);
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized int codePointAt(int index) {
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.codePointAt(index);
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized int codePointBefore(int index) {
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.codePointBefore(index);
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized int codePointCount(int beginIndex, int endIndex) {
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.codePointCount(beginIndex, endIndex);
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Deletes a range of characters.
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param start
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the offset of the first character.
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param end
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the offset one past the last character.
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code start < 0}, {@code start > end} or {@code end >
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             length()}.
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer delete(int start, int end) {
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        delete0(start, end);
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Deletes the character at the specified offset.
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param location
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the offset of the character to delete.
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this StringBuffer.
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code location < 0} or {@code location >= length()}
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer deleteCharAt(int location) {
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        deleteCharAt0(location);
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized void ensureCapacity(int min) {
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.ensureCapacity(min);
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
3953819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Copies the requested sequence of characters to the {@code char[]} passed
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * starting at {@code idx}.
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param start
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the starting offset of characters to copy.
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param end
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the ending offset of characters to copy.
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param buffer
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the destination character array.
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param idx
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the starting offset in the character array.
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws IndexOutOfBoundsException
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code start < 0}, {@code end > length()}, {@code start >
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             end}, {@code index < 0}, {@code end - start > buffer.length -
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             index}
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized void getChars(int start, int end, char[] buffer, int idx) {
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.getChars(start, end, buffer, idx);
416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized int indexOf(String subString, int start) {
420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.indexOf(subString, start);
421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the character into this buffer at the specified offset.
425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param ch
429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the character to insert.
430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws ArrayIndexOutOfBoundsException
432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer insert(int index, char ch) {
435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        insert0(index, ch);
436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the string representation of the specified boolean into this
441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * buffer at the specified offset.
442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param b
446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the boolean to insert.
447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer insert(int index, boolean b) {
452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return insert(index, b ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$
453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the string representation of the specified integer into this
457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * buffer at the specified offset.
458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param i
462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the integer to insert.
463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer insert(int index, int i) {
468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return insert(index, Integer.toString(i));
469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the string representation of the specified long into this buffer
473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * at the specified offset.
474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param l
478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the long to insert.
479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer insert(int index, long l) {
484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return insert(index, Long.toString(l));
485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the string representation of the specified into this buffer
489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * double at the specified offset.
490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param d
494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the double to insert.
495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer insert(int index, double d) {
500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return insert(index, Double.toString(d));
501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the string representation of the specified float into this buffer
505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * at the specified offset.
506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param f
510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the float to insert.
511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer insert(int index, float f) {
516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return insert(index, Float.toString(f));
517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the string representation of the specified object into this
521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * buffer at the specified offset.
522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified object is {@code null}, the string {@code "null"} is
524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * inserted, otherwise the objects {@code toString} method is used to get
525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * its string representation.
5263819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param obj
530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the object to insert (may be null).
531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public StringBuffer insert(int index, Object obj) {
536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return insert(index, obj == null ? "null" : obj.toString()); //$NON-NLS-1$
537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the string into this buffer at the specified offset.
541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified string is {@code null}, the string {@code "null"} is
543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * inserted, otherwise the contents of the string is inserted.
5443819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param string
548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the string to insert (may be null).
549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer insert(int index, String string) {
554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        insert0(index, string);
555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the character array into this buffer at the specified offset.
560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param chars
564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the character array to insert.
565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
5683819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @throws NullPointerException
5693819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *            if {@code chars} is {@code null}.
570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer insert(int index, char[] chars) {
572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        insert0(index, chars);
573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the specified subsequence of characters into this buffer at the
578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * specified index.
579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the index at which to insert.
582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param chars
583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the character array to insert.
584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param start
585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the starting offset.
586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param length
587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the number of characters.
588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
5893819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @throws NullPointerException
5903819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *             if {@code chars} is {@code null}.
591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code length < 0}, {@code start < 0}, {@code start +
593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             length > chars.length}, {@code index < 0} or {@code index >
594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             length()}
595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer insert(int index, char chars[], int start,
597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            int length) {
598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        insert0(index, chars, start, length);
599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the specified CharSequence into this buffer at the specified
604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * index.
605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified CharSequence is {@code null}, the string {@code "null"}
607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * is inserted, otherwise the contents of the CharSequence.
6083819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     *
609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            The index at which to insert.
611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param s
612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            The char sequence to insert.
613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws IndexOutOfBoundsException
615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index < 0} or {@code index > length()}.
6163819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @since 1.5
617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer insert(int index, CharSequence s) {
619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        insert0(index, s == null ? "null" : s.toString()); //$NON-NLS-1$
620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Inserts the specified subsequence into this buffer at the specified
625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * index.
626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * <p>
627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * If the specified CharSequence is {@code null}, the string {@code "null"}
628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * is inserted, otherwise the contents of the CharSequence.
629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param index
631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            The index at which to insert.
632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param s
633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            The char sequence to insert.
634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param start
635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            The inclusive start index in the char sequence.
636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param end
637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            The exclusive end index in the char sequence.
638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws IndexOutOfBoundsException
640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code index} is negative or greater than the current
641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             length, {@code start} or {@code end} are negative, {@code
642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             start} is greater than {@code end} or {@code end} is greater
643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             than the length of {@code s}.
6443819a76e7c1f49253f0e077bd497f149340c02b8Jesse Wilson     * @since 1.5
645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer insert(int index, CharSequence s,
647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            int start, int end) {
648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        insert0(index, s, start, end);
649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized int lastIndexOf(String subString, int start) {
654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.lastIndexOf(subString, start);
655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized int offsetByCodePoints(int index, int codePointOffset) {
659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.offsetByCodePoints(index, codePointOffset);
660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Replaces the characters in the specified range with the contents of the
664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * specified string.
665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param start
667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the inclusive begin index.
668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param end
669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the exclusive end index.
670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param string
671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the string that will replace the contents in the range.
672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws StringIndexOutOfBoundsException
674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             if {@code start} or {@code end} are negative, {@code start}
675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             is greater than {@code end} or {@code end} is greater than
676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             the length of {@code s}.
677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer replace(int start, int end, String string) {
679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        replace0(start, end, string);
680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Reverses the order of characters in this buffer.
685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return this buffer.
687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized StringBuffer reverse() {
689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        reverse0();
690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return this;
691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized void setCharAt(int index, char ch) {
695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.setCharAt(index, ch);
696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized void setLength(int length) {
700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.setLength(length);
701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized CharSequence subSequence(int start, int end) {
705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.substring(start, end);
706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized String substring(int start) {
710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.substring(start);
711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized String substring(int start, int end) {
715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.substring(start, end);
716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized String toString() {
720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.toString();
721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public synchronized void trimToSize() {
725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.trimToSize();
726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private synchronized void writeObject(ObjectOutputStream out)
729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            throws IOException {
730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ObjectOutputStream.PutField fields = out.putFields();
731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fields.put("count", length()); //$NON-NLS-1$
732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fields.put("shared", false); //$NON-NLS-1$
733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fields.put("value", getValue()); //$NON-NLS-1$
734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        out.writeFields();
735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private void readObject(ObjectInputStream in) throws IOException,
738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            ClassNotFoundException {
739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ObjectInputStream.GetField fields = in.readFields();
740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int count = fields.get("count", 0); //$NON-NLS-1$
741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] value = (char[]) fields.get("value", null); //$NON-NLS-1$
742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        set(value, count);
743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
745