// Setup the output buffer provider either with a threadlocal pool
// or creating a new instance each time it is asked for.
int bufferSize = options.getInitialBufferSize();
if (options.getUseOutputBufferPool()) {
// Use a ThreadLocal to reuse StringBuilder objects.
outputBufferProvider = new ThreadLocalOutputBufferProvider(bufferSize);
} else {
// Create a new StringBuilder each time.
outputBufferProvider = new InstanceOutputBufferProvider(bufferSize);
}