001
014
015 package com.liferay.portlet.social.util;
016
017 import com.liferay.portal.kernel.util.AutoResetThreadLocal;
018 import com.liferay.portal.util.PortalUtil;
019
020 import java.util.Stack;
021
022
025 public class SocialActivityHierarchyEntryThreadLocal {
026
027 public static void clear() {
028 Stack<SocialActivityHierarchyEntry> activityHierarchyEntries =
029 _activityHierarchyEntries.get();
030
031 activityHierarchyEntries.clear();
032 }
033
034 public static SocialActivityHierarchyEntry peek() {
035 Stack<SocialActivityHierarchyEntry> activityHierarchyEntries =
036 _activityHierarchyEntries.get();
037
038 if (activityHierarchyEntries.isEmpty()) {
039 return null;
040 }
041
042 return activityHierarchyEntries.peek();
043 }
044
045 public static SocialActivityHierarchyEntry pop() {
046 Stack<SocialActivityHierarchyEntry> activityHierarchyEntries =
047 _activityHierarchyEntries.get();
048
049 if (activityHierarchyEntries.isEmpty()) {
050 return null;
051 }
052
053 return activityHierarchyEntries.pop();
054 }
055
056 public static void push(Class<?> clazz, long classPK) {
057 long classNameId = PortalUtil.getClassNameId(clazz);
058
059 push(classNameId, classPK);
060 }
061
062 public static void push(long classNameId, long classPK) {
063 Stack<SocialActivityHierarchyEntry> activityHierarchyEntries =
064 _activityHierarchyEntries.get();
065
066 activityHierarchyEntries.push(
067 new SocialActivityHierarchyEntry(classNameId, classPK));
068 }
069
070 public static void push(String className, long classPK) {
071 long classNameId = PortalUtil.getClassNameId(className);
072
073 push(classNameId, classPK);
074 }
075
076 private static ThreadLocal<Stack<SocialActivityHierarchyEntry>>
077 _activityHierarchyEntries =
078 new AutoResetThreadLocal<Stack<SocialActivityHierarchyEntry>>(
079 SocialActivityHierarchyEntryThreadLocal.class +
080 "._activityHierarchyEntries",
081 new Stack<SocialActivityHierarchyEntry>());
082
083 }