Package freemarker.template.utility
Class JythonRuntime
- java.lang.Object
-
- org.python.util.PythonInterpreter
-
- freemarker.template.utility.JythonRuntime
-
- All Implemented Interfaces:
TemplateModel
,TemplateTransformModel
,java.io.Closeable
,java.lang.AutoCloseable
public class JythonRuntime extends org.python.util.PythonInterpreter implements TemplateTransformModel
A crude first pass at an embeddable Jython interpreter
-
-
Field Summary
-
Fields inherited from class org.python.util.PythonInterpreter
cflags, systemState, threadLocals, useThreadLocalState
-
Fields inherited from interface freemarker.template.TemplateModel
NOTHING
-
-
Constructor Summary
Constructors Constructor Description JythonRuntime()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.io.Writer
getWriter(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.-
Methods inherited from class org.python.util.PythonInterpreter
cleanup, close, compile, compile, compile, compile, eval, eval, exec, exec, execfile, execfile, execfile, get, get, getLocals, getSystemState, initialize, set, set, setErr, setErr, setErr, setIn, setIn, setIn, setLocals, setOut, setOut, setOut, setSystemState, threadLocalStateInterpreter
-
-
-
-
Method Detail
-
getWriter
public java.io.Writer getWriter(java.io.Writer out, java.util.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
, norIOException
that 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)
totrue
can mitigate the negative effects of implementations that throwRuntimeException
-s.)- Specified by:
getWriter
in 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 areTemplateModel
instances. This is nevernull
. (If you need to convert the template models to POJOs, you can use the utility methods in theDeepUnwrap
class. Though it's recommended to work withTemplateModel
-s directly.)- Returns:
- The
Writer
to which the engine will write the content to transform, ornull
if the transform does not support nested content (body). The returnedWriter
may implements theTransformControl
interface 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 theWriter
received as theout
parameter (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 theout
writer as is, in which case it won't be closed.
-
-