001
014
015 package com.liferay.portal.kernel.template;
016
017 import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
018
019 import java.util.Collections;
020 import java.util.List;
021 import java.util.Map;
022 import java.util.Set;
023 import java.util.concurrent.ConcurrentHashMap;
024
025
029 public class TemplateManagerUtil {
030
031 public static void destroy() {
032 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
033
034 for (TemplateManager templateManager : templateManagers.values()) {
035 templateManager.destroy();
036 }
037
038 templateManagers.clear();
039 }
040
041 public static void destroy(ClassLoader classLoader) {
042 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
043
044 for (TemplateManager templateManager : templateManagers.values()) {
045 templateManager.destroy(classLoader);
046 }
047 }
048
049 public static Template getTemplate(
050 String templateManagerName, TemplateResource templateResource,
051 TemplateContextType templateContextType)
052 throws TemplateException {
053
054 TemplateManager templateManager = _getTemplateManager(
055 templateManagerName);
056
057 return templateManager.getTemplate(
058 templateResource, templateContextType);
059 }
060
061 public static Template getTemplate(
062 String templateManagerName, TemplateResource templateResource,
063 TemplateResource errorTemplateResource,
064 TemplateContextType templateContextType)
065 throws TemplateException {
066
067 TemplateManager templateManager = _getTemplateManager(
068 templateManagerName);
069
070 return templateManager.getTemplate(
071 templateResource, errorTemplateResource, templateContextType);
072 }
073
074 public static TemplateManager getTemplateManager(
075 String templateManagerName) {
076
077 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
078
079 return templateManagers.get(templateManagerName);
080 }
081
082 public static Set<String> getTemplateManagerNames(
083 String templateManagerName) {
084
085 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
086
087 return templateManagers.keySet();
088 }
089
090 public static Map<String, TemplateManager> getTemplateManagers() {
091 return Collections.unmodifiableMap(_getTemplateManagers());
092 }
093
094 public static boolean hasTemplateManager(String templateManagerName) {
095 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
096
097 return templateManagers.containsKey(templateManagerName);
098 }
099
100 public static void init() throws TemplateException {
101 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
102
103 for (TemplateManager templateManager : templateManagers.values()) {
104 templateManager.init();
105 }
106 }
107
108 public static void registerTemplateManager(TemplateManager templateManager)
109 throws TemplateException {
110
111 templateManager.init();
112
113 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
114
115 templateManagers.put(templateManager.getName(), templateManager);
116 }
117
118 public static void unregisterTemplateManager(String templateManagerName) {
119 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
120
121 TemplateManager templateManager = templateManagers.remove(
122 templateManagerName);
123
124 if (templateManager != null) {
125 templateManager.destroy();
126 }
127 }
128
129 public void setTemplateManagers(List<TemplateManager> templateManagers) {
130 PortalRuntimePermission.checkSetBeanProperty(getClass());
131
132 Map<String, TemplateManager> templateManagersMap =
133 _getTemplateManagers();
134
135 for (TemplateManager templateManager : templateManagers) {
136 templateManagersMap.put(templateManager.getName(), templateManager);
137 }
138 }
139
140 private static TemplateManager _getTemplateManager(
141 String templateManagerName)
142 throws TemplateException {
143
144 Map<String, TemplateManager> templateManagers = _getTemplateManagers();
145
146 TemplateManager templateManager = templateManagers.get(
147 templateManagerName);
148
149 if (templateManager == null) {
150 throw new TemplateException(
151 "Unsupported template manager " + templateManagerName);
152 }
153
154 return templateManager;
155 }
156
157 private static Map<String, TemplateManager> _getTemplateManagers() {
158 PortalRuntimePermission.checkGetBeanProperty(TemplateManagerUtil.class);
159
160 return _templateManagers;
161 }
162
163 private static Map<String, TemplateManager> _templateManagers =
164 new ConcurrentHashMap<String, TemplateManager>();
165
166 }