Objects that implement this interface can be used in a <transform>
block to perform arbitrary transformations on a part of the template
processing output.
Note that, as of FreeMarker 2.1, TemplateTransform Model
has changed. This is a more powerful implementation.
There is a quick-and-dirty way to patch any legacy
TemplateTransformModel so that it implements the new API.
You simply add the following as your implementation
of the getWriter() call:
public Writer getWriter(final Writer out,
Map args)
{
final StringBuffer buf = new StringBuffer();
return new Writer() {
public void write(char cbuf[], int off, int len) {
buf.append(cbuf, off, len);
}
public void flush() throws IOException {
out.flush();
}
public void close() throws IOException {
StringReader sr = new StringReader(buf.toString());
StringWriter sw = new StringWriter();
transform(sr, sw);
out.write(sw.toString());
}
};
}
Implementions of TemplateTransformModel should be thread-safe.
version: $Id: TemplateTransformModel.java,v 1.36 2003/04/11 20:57:32 revusky Exp $ |