001
014
015 package com.liferay.portal.template;
016
017 import com.liferay.portal.kernel.template.Template;
018 import com.liferay.portal.kernel.template.TemplateManager;
019 import com.liferay.portal.kernel.template.TemplateResource;
020 import com.liferay.portal.kernel.template.TemplateResourceLoader;
021
022 import java.security.AccessControlContext;
023 import java.security.PrivilegedAction;
024
025 import java.util.Map;
026
027 import javax.servlet.ServletContext;
028 import javax.servlet.http.HttpServletRequest;
029 import javax.servlet.http.HttpServletResponse;
030
031
034 public abstract class BaseTemplateManager implements TemplateManager {
035
036 @Override
037 public void addContextObjects(
038 Map<String, Object> contextObjects,
039 Map<String, Object> newContextObjects) {
040
041 for (String variableName : newContextObjects.keySet()) {
042 if (contextObjects.containsKey(variableName)) {
043 continue;
044 }
045
046 Object object = newContextObjects.get(variableName);
047
048 if (object instanceof Class) {
049 addStaticClassSupport(
050 contextObjects, variableName, (Class<?>)object);
051 }
052 else {
053 contextObjects.put(variableName, object);
054 }
055 }
056 }
057
058 @Override
059 public void addStaticClassSupport(
060 Map<String, Object> contextObjects, String variableName,
061 Class<?> variableClass) {
062 }
063
064 @Override
065 public void addTaglibApplication(
066 Map<String, Object> contextObjects, String applicationName,
067 ServletContext servletContext) {
068 }
069
070 @Override
071 public void addTaglibFactory(
072 Map<String, Object> contextObjects, String taglibLiferayHash,
073 ServletContext servletContext) {
074 }
075
076 @Override
077 public void addTaglibRequest(
078 Map<String, Object> contextObjects, String applicationName,
079 HttpServletRequest request, HttpServletResponse response) {
080 }
081
082 @Override
083 public void addTaglibTheme(
084 Map<String, Object> contextObjects, String themeName,
085 HttpServletRequest request, HttpServletResponse response) {
086 }
087
088 @Override
089 public String[] getRestrictedVariables() {
090 return new String[0];
091 }
092
093 public void setTemplateContextHelper(
094 TemplateContextHelper templateContextHelper) {
095
096 this.templateContextHelper = templateContextHelper;
097 }
098
099 public void setTemplateResourceLoader(
100 TemplateResourceLoader templateResourceLoader) {
101
102 this.templateResourceLoader = templateResourceLoader;
103 }
104
105 protected AccessControlContext getAccessControlContext() {
106 TemplateControlContext templateControlContext =
107 templateContextHelper.getTemplateControlContext();
108
109 return templateControlContext.getAccessControlContext();
110 }
111
112 protected Map<String, Object> getHelperUtilities(boolean restricted) {
113 return templateContextHelper.getHelperUtilities(
114 getTemplateControlContextClassLoader(), restricted);
115 }
116
117 protected ClassLoader getTemplateControlContextClassLoader() {
118 TemplateControlContext templateControlContext =
119 templateContextHelper.getTemplateControlContext();
120
121 return templateControlContext.getClassLoader();
122 }
123
124 protected TemplateContextHelper templateContextHelper;
125 protected TemplateResourceLoader templateResourceLoader;
126
127 protected abstract class DoGetAbstractTemplatePrivilegedAction
128 implements PrivilegedAction<Template> {
129
130 public DoGetAbstractTemplatePrivilegedAction(
131 TemplateResource errorTemplateResource, boolean restricted,
132 Map<String, Object> helperUtilities) {
133
134 this.errorTemplateResource = errorTemplateResource;
135 this.restricted = restricted;
136 this.helperUtilities = helperUtilities;
137 }
138
139 protected final TemplateResource errorTemplateResource;
140 protected final Map<String, Object> helperUtilities;
141 protected boolean restricted;
142
143 }
144
145 protected class DoGetHelperUtilitiesPrivilegedAction
146 implements PrivilegedAction<Map<String, Object>> {
147
148 public DoGetHelperUtilitiesPrivilegedAction(
149 TemplateContextHelper templateContextHelper,
150 ClassLoader classLoader, boolean restricted) {
151
152 _templateContextHelper = templateContextHelper;
153 _classLoader = classLoader;
154 _restricted = restricted;
155 }
156
157 @Override
158 public Map<String, Object> run() {
159 return _templateContextHelper.getHelperUtilities(
160 _classLoader, _restricted);
161 }
162
163 private final ClassLoader _classLoader;
164 private final boolean _restricted;
165 private final TemplateContextHelper _templateContextHelper;
166
167 }
168
169 }