public class PostponedItemsHandler { private static PostponedItemsHandler _instance = null; private static PropertiesManager propertyManager = PropertiesManager.getInstance(); private static DB postponedCommunitiesDb = DBMaker.fileDB( new File( propertyManager.getProp( Properties.POSTPONED_COMMUNITIES_DB_NAME, propertyManager.DEFAULT_POSTPONED_COMMUNITIES_DB_NAME))) .closeOnJvmShutdown() .make(); private static Set<String> postponedCommunities = postponedCommunitiesDb .createHashSet( propertyManager.getProp( Properties.POSTPONED_COMMUNITIES_LIST_NAME, propertyManager.DEFAULT_POSTPONED_COMMUNITIES_LIST_NAME)) .makeOrGet(); private static DB postponedUsersDb = DBMaker.fileDB( new File( propertyManager.getProp( Properties.POSTPONED_USERS_DB_NAME, propertyManager.DEFAULT_POSTPONED_USERS_DB_NAME))) .closeOnJvmShutdown() .make(); private static Set<String> postponedUsers = postponedUsersDb .createHashSet( propertyManager.getProp( Properties.POSTPONED_USERS_LIST_NAME, propertyManager.DEFAULT_POSTPONED_USERS_LIST_NAME)) .makeOrGet(); private PostponedItemsHandler() {} public static synchronized PostponedItemsHandler getInstance() { if (_instance == null) _instance = new PostponedItemsHandler(); return _instance; } public void putToPostponedCommunities(Set<String> communityIds) { postponedCommunities.addAll(communityIds); postponedCommunitiesDb.commit(); } public void removeFromPostponedCommunities(Set<String> communityIds) { postponedCommunities.removeAll(communityIds); postponedCommunitiesDb.commit(); } public Set<String> getPostponedCommunities() { return postponedCommunities; } public void putToPostponedUsers(Set<String> userIds) { postponedUsers.addAll(userIds); postponedUsersDb.commit(); } public Set<String> getPostponedUsers() { return postponedUsers; } public void removeFromPostponedUsers(Set<String> userIds) { postponedUsers.removeAll(userIds); postponedUsersDb.commit(); } }