package com.opensymphony.module.sitemesh;
import com.opensymphony.module.sitemesh.util.CharArrayWriter;
import java.io.IOException;
import java.util.TreeMap;
/**
* A char array writer that caches other sitemesh buffers written to it, so that it doesn't have to continually copy
* them from buffer to buffer.
*/
public class SitemeshBufferWriter extends CharArrayWriter implements SitemeshWriter {
private final TreeMap<Integer, SitemeshBufferFragment> fragments = new TreeMap<Integer, SitemeshBufferFragment>();
public SitemeshBufferWriter() {
}
public SitemeshBufferWriter(int initialSize) {
super(initialSize);
}
public boolean writeSitemeshBufferFragment(SitemeshBufferFragment bufferFragment) throws IOException {
fragments.put(count, bufferFragment);
return false;
}
public SitemeshBuffer getSitemeshBuffer() {
return new DefaultSitemeshBuffer(buf, count, fragments);
}
}