Package freemarker.template.utility
Class NormalizeNewlines
- java.lang.Object
-
- freemarker.template.utility.NormalizeNewlines
-
- All Implemented Interfaces:
TemplateModel,TemplateTransformModel
public class NormalizeNewlines extends java.lang.Object implements TemplateTransformModel
Transformer that supports FreeMarker legacy behavior: all newlines appearing within the transformed area will be transformed into the platform's default newline. Unlike the old behavior, however, newlines generated by the data model are also converted. Legacy behavior was to leave newlines in the data model unaltered.
Usage:
From java:SimpleHash root = new SimpleHash(); root.put( "normalizeNewlines", new freemarker.template.utility.NormalizeNewlines() ); ...
From your FreeMarker template:
<transform normalizeNewlines> <html> <head> ... <p>This template has all newlines normalized to the current platform's default.</p> ... </body> </html> </transform>
-
-
Field Summary
-
Fields inherited from interface freemarker.template.TemplateModel
NOTHING
-
-
Constructor Summary
Constructors Constructor Description NormalizeNewlines()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.io.WritergetWriter(java.io.Writer out, java.util.Map args)Returns a writer that will be used by the engine to feed the transformation input to the transform.voidtransform(java.io.Reader in, java.io.Writer out)Performs newline normalization on FreeMarker output.
-
-
-
Method Detail
-
getWriter
public java.io.Writer getWriter(java.io.Writer out, java.util.Map args)Description copied from interface:TemplateTransformModelReturns a writer that will be used by the engine to feed the transformation input to the transform. Each call to this method must return a new instance of the writer so that the transformation is thread-safe.This method should not throw
RuntimeException, norIOExceptionthat wasn't caused by writing to the output. Such exceptions should be catched inside the method and wrapped inside aTemplateModelException. (Note that settingConfiguration.setWrapUncheckedExceptions(boolean)totruecan mitigate the negative effects of implementations that throwRuntimeException-s.)- Specified by:
getWriterin interfaceTemplateTransformModel- Parameters:
out- the character stream to which to write the transformed outputargs- the arguments (if any) passed to the transformation as a map of key/value pairs where the keys are strings and the arguments areTemplateModelinstances. This is nevernull. (If you need to convert the template models to POJOs, you can use the utility methods in theDeepUnwrapclass. Though it's recommended to work withTemplateModel-s directly.)- Returns:
- The
Writerto which the engine will write the content to transform, ornullif the transform does not support nested content (body). The returnedWritermay implements theTransformControlinterface if it needs advanced control over the evaluation of the nested content. FreeMarker will callWriter.close()after the transform end-tag.Writer.close()must not close theWriterreceived as theoutparameter (so if you are using aFilterWriter, you must overrideFilterWriter.close(), as by default that closes the wrappedWriter). Since 2.3.27 its also allowed to return theoutwriter as is, in which case it won't be closed.
-
transform
public void transform(java.io.Reader in, java.io.Writer out) throws java.io.IOExceptionPerforms newline normalization on FreeMarker output.- Parameters:
in- the input to be transformedout- the destination of the transformation- Throws:
java.io.IOException
-
-