NormalizeNewlines (FreeMarker 2.3.35 API)
Description: declaration: package: freemarker.template.utility, class: NormalizeNewlines

Package freemarker.template.utility

# Class NormalizeNewlines

java.lang.Object
freemarker.template.utility.NormalizeNewlines

All Implemented Interfaces:
  `TemplateModel`, `TemplateTransformModel`

public class NormalizeNewlines extends 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

  Modifier and Type
  Method
  Description
  `Writer`
  `getWriter​(Writer out, Map args)`
  Returns a writer that will be used by the engine to feed the transformation input to the transform.
  `void`
  `transform​(Reader in, Writer out)`
  Performs newline normalization on FreeMarker output.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### NormalizeNewlines

    public NormalizeNewlines()

- ## Method Details

  - ### getWriter

    public Writer getWriter​(Writer out, Map args)
    Description copied from interface: `TemplateTransformModel`
    Returns 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`, nor `IOException` that wasn't caused by writing to the output. Such exceptions should be catched inside the method and wrapped inside a `TemplateModelException`. (Note that setting `Configuration.setWrapUncheckedExceptions(boolean)` to `true` can mitigate the negative effects of implementations that throw `RuntimeException`-s.)

    Specified by:
      `getWriter` in interface `TemplateTransformModel`
    Parameters:
      `out` - the character stream to which to write the transformed output
      `args` - the arguments (if any) passed to the transformation as a map of key/value pairs where the keys are strings and the arguments are `TemplateModel` instances. This is never `null`. (If you need to convert the template models to POJOs, you can use the utility methods in the `DeepUnwrap` class. Though it's recommended to work with `TemplateModel`-s directly.)
    Returns:
      The `Writer` to which the engine will write the content to transform, or `null` if the transform does not support nested content (body). The returned `Writer` may implements the `TransformControl` interface if it needs advanced control over the evaluation of the nested content. FreeMarker will call `Writer.close()` after the transform end-tag. `Writer.close()` must not close the `Writer` received as the `out` parameter (so if you are using a `FilterWriter`, you must override `FilterWriter.close()`, as by default that closes the wrapped `Writer`). Since 2.3.27 its also allowed to return the `out` writer as is, in which case it won't be closed.

  - ### transform

    public void transform​(Reader in, Writer out) throws IOException
    Performs newline normalization on FreeMarker output.
    Parameters:
      `in` - the input to be transformed
      `out` - the destination of the transformation
    Throws:
      `IOException`