1
22
23 package com.liferay.portal.freemarker;
24
25 import com.liferay.portal.kernel.io.unsync.UnsyncStringWriter;
26 import com.liferay.portal.kernel.util.StringPool;
27
28 import freemarker.cache.ClassTemplateLoader;
29
30 import freemarker.template.Configuration;
31 import freemarker.template.DefaultObjectWrapper;
32 import freemarker.template.Template;
33
34 import java.io.Writer;
35
36
42 public class FreeMarkerUtil {
43
44 public static String process(String name, Object context)
45 throws Exception {
46
47 UnsyncStringWriter unsyncStringWriter = new UnsyncStringWriter(true);
48
49 process(name, context, unsyncStringWriter);
50
51 return unsyncStringWriter.toString();
52 }
53
54 public static void process(String name, Object context, Writer writer)
55 throws Exception {
56
57 Template template = _getConfiguration().getTemplate(name);
58
59 template.process(context, writer);
60 }
61
62 private static Configuration _getConfiguration() {
63 if (_configuration != null) {
64 return _configuration;
65 }
66
67 _configuration = new Configuration();
68
69 _configuration.setObjectWrapper(new DefaultObjectWrapper());
70 _configuration.setTemplateLoader(
71 new ClassTemplateLoader(FreeMarkerUtil.class, StringPool.SLASH));
72
73 return _configuration;
74 }
75
76 private static Configuration _configuration;
77
78 }