/* * Copyright 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.core.client.impl; /** * <p> * The interface to defer bound implementations of {@link StringBuilder} and * {@link StringBuffer}. * </p> * * <p> * All of the implementations have been carefully tweaked to get the most * inlining possible, so be sure to check with * {@link com.google.gwt.emultest.java.lang.StringBuilderBenchmark StringBuilderBenchmark} * whenever these classes are modified. * </p> */ public abstract class StringBufferImpl { /** * Append for primitive; the value can be stored and only later converted to a * string. */ public abstract void append(Object data, boolean x); /** * Append for primitive; the value can be stored and only later converted to a * string. */ public abstract void append(Object data, double x); /** * Append for primitive; the value can be stored and only later converted to a * string. */ public abstract void append(Object data, float x); /** * Append for primitive; the value can be stored and only later converted to a * string. */ public abstract void append(Object data, int x); /** * Append for object. It is important to immediately convert the object to a * string, because the conversion can give different results if it is * deferred. */ public abstract void append(Object data, Object x); /** * Append for a possibly null string object. */ public abstract void append(Object data, String x); /** * Append for a string that is definitely not null. */ public abstract void appendNonNull(Object data, String x); /** * Returns a data holder object for use with subsequent calls. */ public abstract Object createData(); /** * Returns the current length of the string buffer. */ public abstract int length(Object data); /** * Replaces a segment of the string buffer. */ public abstract void replace(Object data, int start, int end, String toInsert); /** * Returns the string buffer as a String. */ public abstract String toString(Object data); }