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 addTaglibSupport(
084 Map<String, Object> contextObjects, HttpServletRequest request,
085 HttpServletResponse response) {
086 }
087
088 @Override
089 public void addTaglibTheme(
090 Map<String, Object> contextObjects, String themeName,
091 HttpServletRequest request, HttpServletResponse response) {
092 }
093
094 @Override
095 public String[] getRestrictedVariables() {
096 return new String[0];
097 }
098
099 public void setTemplateContextHelper(
100 TemplateContextHelper templateContextHelper) {
101
102 this.templateContextHelper = templateContextHelper;
103 }
104
105 public void setTemplateResourceLoader(
106 TemplateResourceLoader templateResourceLoader) {
107
108 this.templateResourceLoader = templateResourceLoader;
109 }
110
111 protected AccessControlContext getAccessControlContext() {
112 TemplateControlContext templateControlContext =
113 templateContextHelper.getTemplateControlContext();
114
115 return templateControlContext.getAccessControlContext();
116 }
117
118 protected Map<String, Object> getHelperUtilities(boolean restricted) {
119 return templateContextHelper.getHelperUtilities(
120 getTemplateControlContextClassLoader(), restricted);
121 }
122
123 protected ClassLoader getTemplateControlContextClassLoader() {
124 TemplateControlContext templateControlContext =
125 templateContextHelper.getTemplateControlContext();
126
127 return templateControlContext.getClassLoader();
128 }
129
130 protected TemplateContextHelper templateContextHelper;
131 protected TemplateResourceLoader templateResourceLoader;
132
133 protected abstract class DoGetAbstractTemplatePrivilegedAction
134 implements PrivilegedAction<Template> {
135
136 public DoGetAbstractTemplatePrivilegedAction(
137 TemplateResource errorTemplateResource, boolean restricted,
138 Map<String, Object> helperUtilities) {
139
140 this.errorTemplateResource = errorTemplateResource;
141 this.restricted = restricted;
142 this.helperUtilities = helperUtilities;
143 }
144
145 protected final TemplateResource errorTemplateResource;
146 protected final Map<String, Object> helperUtilities;
147 protected boolean restricted;
148
149 }
150
151 protected class DoGetHelperUtilitiesPrivilegedAction
152 implements PrivilegedAction<Map<String, Object>> {
153
154 public DoGetHelperUtilitiesPrivilegedAction(
155 TemplateContextHelper templateContextHelper,
156 ClassLoader classLoader, boolean restricted) {
157
158 _templateContextHelper = templateContextHelper;
159 _classLoader = classLoader;
160 _restricted = restricted;
161 }
162
163 @Override
164 public Map<String, Object> run() {
165 return _templateContextHelper.getHelperUtilities(
166 _classLoader, _restricted);
167 }
168
169 private final ClassLoader _classLoader;
170 private final boolean _restricted;
171 private final TemplateContextHelper _templateContextHelper;
172
173 }
174
175 }