1
19
20 package com.liferay.portal.kernel.cache;
21
22 import com.liferay.portal.kernel.log.Log;
23 import com.liferay.portal.kernel.log.LogFactoryUtil;
24
25 import java.util.Map;
26 import java.util.concurrent.ConcurrentHashMap;
27
28
34 public class CacheRegistry {
35
36 public static void clear() {
37 for (Map.Entry<String, CacheRegistryItem> entry : _items.entrySet()) {
38 CacheRegistryItem item = entry.getValue();
39
40 if (_log.isDebugEnabled()) {
41 _log.debug("Invalidating " + item.getRegistryName());
42 }
43
44 item.invalidate();
45 }
46 }
47
48 public static void clear(String name) {
49 CacheRegistryItem item = _items.get(name);
50
51 if (item != null) {
52 if (_log.isDebugEnabled()) {
53 _log.debug("Invalidating " + name);
54 }
55
56 item.invalidate();
57 }
58 else {
59 _log.error("No cache registry found with name " + name);
60 }
61 }
62
63 public static boolean isActive() {
64 return _active;
65 }
66
67 public static void register(CacheRegistryItem item) {
68 String name = item.getRegistryName();
69
70 if (_log.isDebugEnabled()) {
71 _log.debug("Registering " + name);
72 }
73
74 if (_items.containsKey(name)) {
75 if (_log.isDebugEnabled()) {
76 _log.debug("Not registering duplicate " + name);
77 }
78 }
79 else {
80 _items.put(name, item);
81 }
82 }
83
84 public static void setActive(boolean active) {
85 _active = active;
86
87 if (!active) {
88 clear();
89 }
90 }
91
92 public static void unregister(String name) {
93 if (_log.isDebugEnabled()) {
94 _log.debug("Unregistering " + name);
95 }
96
97 _items.remove(name);
98 }
99
100 private static Log _log = LogFactoryUtil.getLog(CacheRegistry.class);
101
102 private static boolean _active = true;
103 private static Map<String, CacheRegistryItem> _items =
104 new ConcurrentHashMap<String, CacheRegistryItem>();
105
106 }