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