001
014
015 package com.liferay.portal.kernel.template;
016
017 import java.util.Collections;
018 import java.util.List;
019 import java.util.Map;
020 import java.util.Set;
021 import java.util.concurrent.ConcurrentHashMap;
022
023
026 public class TemplateResourceLoaderUtil {
027
028 public static void clearCache() {
029 for (TemplateResourceLoader templateResourceLoader :
030 _templateResourceLoaders.values()) {
031
032 templateResourceLoader.clearCache();
033 }
034 }
035
036 public static void clearCache(String templateResourceLoaderName)
037 throws TemplateException {
038
039 TemplateResourceLoader templateResourceLoader =
040 _getTemplateResourceLoader(templateResourceLoaderName);
041
042 templateResourceLoader.clearCache();
043 }
044
045 public static void clearCache(
046 String templateResourceLoaderName, String templateId)
047 throws TemplateException {
048
049 TemplateResourceLoader templateResourceLoader =
050 _getTemplateResourceLoader(templateResourceLoaderName);
051
052 templateResourceLoader.clearCache(templateId);
053 }
054
055 public static void destroy() {
056 for (TemplateResourceLoader templateResourceLoader :
057 _templateResourceLoaders.values()) {
058
059 templateResourceLoader.destroy();
060 }
061
062 _templateResourceLoaders.clear();
063 }
064
065 public static TemplateResource getTemplateResource(
066 String templateResourceLoaderName, String templateId)
067 throws TemplateException {
068
069 TemplateResourceLoader templateResourceLoader =
070 _getTemplateResourceLoader(templateResourceLoaderName);
071
072 return templateResourceLoader.getTemplateResource(templateId);
073 }
074
075 public static TemplateResourceLoader getTemplateResourceLoader(
076 String templateResourceLoaderName) {
077
078 return _templateResourceLoaders.get(templateResourceLoaderName);
079 }
080
081 public static Set<String> getTemplateResourceLoaderNames() {
082 return _templateResourceLoaders.keySet();
083 }
084
085 public static Map<String, TemplateResourceLoader>
086 getTemplateResourceLoaders() {
087
088 return Collections.unmodifiableMap(_templateResourceLoaders);
089 }
090
091 public static boolean hasTemplateResource(
092 String templateResourceLoaderName, String templateId)
093 throws TemplateException {
094
095 TemplateResourceLoader templateResourceLoader =
096 _getTemplateResourceLoader(templateResourceLoaderName);
097
098 return templateResourceLoader.hasTemplateResource(templateId);
099 }
100
101 public static boolean hasTemplateResourceLoader(
102 String templateResourceLoaderName) {
103
104 return _templateResourceLoaders.containsKey(templateResourceLoaderName);
105 }
106
107 public static void registerTemplateResourceLoader(
108 TemplateResourceLoader templateResourceLoader) {
109
110 _templateResourceLoaders.put(
111 templateResourceLoader.getName(), templateResourceLoader);
112 }
113
114 public static void unregisterTemplateResourceLoader(
115 String templateResourceLoaderName) {
116
117 TemplateResourceLoader templateResourceLoader =
118 _templateResourceLoaders.remove(templateResourceLoaderName);
119
120 if (templateResourceLoader != null) {
121 templateResourceLoader.destroy();
122 }
123 }
124
125 public void setTemplateResourceLoaders(
126 List<TemplateResourceLoader> templateResourceLoaders) {
127
128 for (TemplateResourceLoader templateResourceLoader :
129 templateResourceLoaders) {
130
131 _templateResourceLoaders.put(
132 templateResourceLoader.getName(), templateResourceLoader);
133 }
134 }
135
136 private static TemplateResourceLoader _getTemplateResourceLoader(
137 String templateResourceLoaderName)
138 throws TemplateException {
139
140 TemplateResourceLoader templateResourceLoader =
141 _templateResourceLoaders.get(templateResourceLoaderName);
142
143 if (templateResourceLoader == null) {
144 throw new TemplateException(
145 "Unsupported template resource loader " +
146 templateResourceLoaderName);
147 }
148
149 return templateResourceLoader;
150 }
151
152 private static Map<String, TemplateResourceLoader>
153 _templateResourceLoaders =
154 new ConcurrentHashMap<String, TemplateResourceLoader>();
155
156 }