public class BlogCacheManager extends AbstractLogEnabled implements Component, Serviceable, Initializable
Modifier and Type | Class and Description |
---|---|
protected class |
BlogCacheManager.AllPostCache
Cache of all the posts.
|
protected class |
BlogCacheManager.FuturePostCache
Cache of identifier of the future posts.
|
class |
BlogCacheManager.Post
Class representing a Post in the cache.
|
protected class |
BlogCacheManager.PostDateCache
Post cache by date.
|
protected class |
BlogCacheManager.PostSiteLang
A Post with site name and language.
|
protected class |
BlogCacheManager.PostTagCache
Post cache by tag.
|
class |
BlogCacheManager.ReverseDatePostComparator
Reverse date post comparator.
|
Modifier and Type | Field and Description |
---|---|
protected Map<String,Map<String,Map<String,BlogCacheManager.AllPostCache>>> |
_allPosts
Map of PostDateCache by workspace, site and sitemap/language.
|
protected AmetysObjectResolver |
_ametysResolver
The ametys object resolver.
|
protected BlogPageHandler |
_blogRootHandler
The blog root page handler.
|
protected Map<String,Map<String,Map<String,BlogCacheManager.FuturePostCache>>> |
_futurePostsCache
Map of FuturePostCache by workspace, site and sitemap/language.
|
protected Map<String,Map<String,Map<String,Boolean>>> |
_initialized
Caches are initialized by workspace, site and sitemap/language.
|
protected Map<String,Map<String,Map<String,Date>>> |
_lastUpdateFuturePosts
Future caches are updated by workspace, site and sitemap/language.
|
protected ObservationManager |
_observationManager
The observation manager
|
protected Map<String,Map<String,Map<String,BlogCacheManager.PostDateCache>>> |
_postsByDate
Map of PostDateCache by workspace, site and sitemap/language.
|
protected Map<String,Map<String,Map<String,BlogCacheManager.PostTagCache>>> |
_postsByTag
Map of PostTagCache by workspace, site and sitemap/language.
|
protected AmetysObjectResolver |
_resolver
The Ametys resolver
|
protected SiteConfigurationExtensionPoint |
_siteConf
The site configuration extension point
|
protected SiteManager |
_siteManager
The Site manager.
|
protected TagProviderExtensionPoint |
_tagProviderEP
Th tag provider
|
protected WorkspaceSelector |
_workspaceSelector
The workspace selector.
|
static String |
POST_METADATA_DATE
The name of metadata for date of post
|
static String |
ROLE
The avalon role.
|
Constructor and Description |
---|
BlogCacheManager() |
Modifier and Type | Method and Description |
---|---|
private Date |
_getOrCreateLastUpdateFuturePosts(String workspaceName,
String siteName,
String language) |
private boolean |
_isFuturePost(Content post) |
private boolean |
_needUpdateFuturePosts(String workspaceName,
String siteName,
String language,
Date roundedNow) |
private void |
_updateFuturePosts(String workspaceName,
String siteName,
String language) |
void |
addPost(String siteName,
String language,
Content postContent)
Add a post content to the cache.
|
void |
clearCaches()
Clear the caches.
|
void |
clearCaches(String siteName,
String language)
Clear the caches for a given siteName and language.
|
protected void |
dispatchPost(BlogCacheManager.AllPostCache cache,
BlogCacheManager.Post post)
Dispatch a post in the post cache.
|
protected void |
dispatchPost(BlogCacheManager.AllPostCache cache,
Content content)
Dispatch a post content in the post cache.
|
protected void |
dispatchPost(BlogCacheManager.FuturePostCache cache,
Content content)
Dispatch a post content in the future post cache.
|
protected void |
dispatchPost(BlogCacheManager.PostDateCache dateCache,
BlogCacheManager.Post post)
Add a post in the post date cache.
|
protected void |
dispatchPost(BlogCacheManager.PostDateCache dateCache,
Content content)
Dispatch a post content in the post date cache.
|
protected void |
dispatchPost(BlogCacheManager.PostTagCache tagCache,
BlogCacheManager.Post post)
Dispatch a post in the post tag cache.
|
protected void |
dispatchPost(BlogCacheManager.PostTagCache tagCache,
Content content)
Dispatch a post content in the post tag cache.
|
protected BlogCacheManager.AllPostCache |
getAllPostCache(String siteName,
String language)
Get the exhaustive post cache.
|
protected BlogCacheManager.PostSiteLang |
getFuturePost(String siteName,
String postId)
Get a future post by its site name and id.
|
protected BlogCacheManager.FuturePostCache |
getFuturePostCache(String siteName,
String language)
Get the future post cache.
|
Set<Integer> |
getMonths(String siteName,
String language,
int year)
Get the months with posts for a specified year.
|
protected BlogCacheManager.AllPostCache |
getOrCreateAllPostCache(String workspaceName,
String siteName,
String language)
Get the exhaustive post cache.
|
protected BlogCacheManager.FuturePostCache |
getOrCreateFuturePostCache(String workspaceName,
String siteName,
String language)
Get the future post cache.
|
protected BlogCacheManager.PostDateCache |
getOrCreatePostDateCache(String workspaceName,
String siteName,
String language)
Get the post date cache.
|
protected BlogCacheManager.PostTagCache |
getOrCreatePostTagCache(String workspaceName,
String siteName,
String language)
Get the post tag cache.
|
protected BlogCacheManager.PostSiteLang |
getPost(String siteName,
String postId)
Get a post by its site name and id.
|
BlogCacheManager.Post |
getPost(String siteName,
String language,
String id)
Test if a post exists, provided its ID.
|
BlogCacheManager.Post |
getPost(String siteName,
String language,
String tagName,
String id)
Get the posts for a year-month couple.
|
BlogCacheManager.Post |
getPostByName(String siteName,
String language,
int year,
int month,
String name)
Get the posts for a year-month couple.
|
BlogCacheManager.Post |
getPostByName(String siteName,
String language,
String name)
Test if a post exists, provided its content name.
|
BlogCacheManager.Post |
getPostByName(String siteName,
String language,
String tagName,
String name)
Get the posts for a year-month couple.
|
protected BlogCacheManager.PostDateCache |
getPostDateCache(String siteName,
String language)
Get the post date cache.
|
Set<String> |
getPostIds(String siteName,
String language)
Get a list of all the posts' IDs.
|
Map<String,BlogCacheManager.Post> |
getPosts(String siteName,
String language)
Get the exhaustive list of Posts.
|
Map<String,BlogCacheManager.Post> |
getPostsByMonth(String siteName,
String language,
int year,
int month)
Get the posts for a year-month couple.
|
Map<String,BlogCacheManager.Post> |
getPostsByTag(String siteName,
String language,
String tagName)
Get the posts for a given tag.
|
Map<String,BlogCacheManager.Post> |
getPostsByYear(String siteName,
String language,
int year)
Get the posts for a year.
|
protected BlogCacheManager.PostTagCache |
getPostTagCache(String siteName,
String language)
Get the post tag cache.
|
Collection<BlogCacheManager.Post> |
getSortedPosts(String siteName,
String language)
Get the exhaustive list of Posts.
|
Collection<BlogCacheManager.Post> |
getSortedPostsByMonth(String siteName,
String language,
int year,
int month)
Get the posts for a year-month couple.
|
Collection<BlogCacheManager.Post> |
getSortedPostsByTag(String siteName,
String language,
String tagName)
Get the posts for a given tag.
|
Collection<BlogCacheManager.Post> |
getSortedPostsByTag(String siteName,
String language,
String tagName,
boolean deepSearch)
Get the posts for a given tag.
|
Collection<BlogCacheManager.Post> |
getSortedPostsByYear(String siteName,
String language,
int year)
Get the posts for a year.
|
Set<String> |
getTags(String siteName,
String language)
Get the tags for a site and language.
|
Set<Integer> |
getYears(String siteName,
String language)
Get the years with posts.
|
boolean |
hasMonth(String siteName,
String language,
int year,
int month)
Get the years with posts.
|
boolean |
hasPost(String siteName,
String language,
int year,
int month,
String id)
Get the posts for a year-month couple.
|
boolean |
hasPost(String siteName,
String language,
String id)
Test if a post exists, provided its ID.
|
boolean |
hasPost(String siteName,
String language,
String tagName,
String id)
Get the posts for a year-month couple.
|
boolean |
hasPostByName(String siteName,
String language,
int year,
int month,
String name)
Get the posts for a year-month couple.
|
boolean |
hasPostByName(String siteName,
String language,
String name)
Test if a post exists, provided its content name.
|
boolean |
hasPostByName(String siteName,
String language,
String tagName,
String name)
Get the posts for a year-month couple.
|
boolean |
hasPostByTag(String siteName,
String language,
String tagName,
String postId)
Test if a given post has a tag, by its ID.
|
boolean |
hasTag(String siteName,
String language,
String tagName)
Test if a tag exists in the given site and language.
|
boolean |
hasYear(String siteName,
String language,
int year)
Get the years with posts.
|
void |
initialize() |
protected void |
initializeCaches(String workspaceName,
String siteName,
String language)
Initialize all the caches.
|
protected boolean |
isInitialized(String workspaceName,
String siteName,
String language)
Get the exhaustive post cache.
|
protected void |
modifyPost(BlogCacheManager.AllPostCache cache,
BlogCacheManager.Post post,
Content postContent)
Modify a post content.
|
protected void |
modifyPost(BlogCacheManager.FuturePostCache cache,
BlogCacheManager.Post post,
Content postContent)
Modify a future post content.
|
protected void |
modifyPost(BlogCacheManager.PostDateCache dateCache,
BlogCacheManager.Post post,
Content postContent)
Remove a post content.
|
protected void |
modifyPost(BlogCacheManager.PostTagCache cache,
BlogCacheManager.Post post,
Content postContent)
Remove a post content.
|
void |
modifyPost(String siteName,
String language,
Content postContent)
Modify a post content in the cache.
|
protected void |
removePost(BlogCacheManager.AllPostCache cache,
BlogCacheManager.Post post)
Remove a post content.
|
protected void |
removePost(BlogCacheManager.AllPostCache cache,
Content content)
Remove a post content.
|
protected void |
removePost(BlogCacheManager.FuturePostCache cache,
BlogCacheManager.Post post)
Remove a future post content.
|
protected void |
removePost(BlogCacheManager.FuturePostCache cache,
Content content)
Remove a future post content.
|
protected void |
removePost(BlogCacheManager.PostDateCache dateCache,
BlogCacheManager.Post post)
Remove a post content.
|
protected void |
removePost(BlogCacheManager.PostDateCache dateCache,
Content content)
Remove a post content.
|
protected void |
removePost(BlogCacheManager.PostTagCache cache,
BlogCacheManager.Post post)
Remove a post content.
|
protected void |
removePost(BlogCacheManager.PostTagCache cache,
Content content)
Remove a post content.
|
void |
removePost(String siteName,
String language,
Content postContent)
Remove a post content from the cache.
|
void |
removePostById(String siteName,
String postId)
Remove a post content from the cache.
|
void |
service(ServiceManager serviceManager) |
protected void |
setInitialized(String siteName,
String language)
Set the initialized map
|
protected void |
setInitialized(String siteName,
String language,
Boolean initialized)
Set the initialized map
|
protected void |
setInitialized(String workspaceName,
String siteName,
String language,
Boolean initialized)
Set the initialized map
|
void |
validatePost(String siteName,
String language,
Content postContent)
Validate a post content.
|
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
public static final String POST_METADATA_DATE
protected AmetysObjectResolver _ametysResolver
protected TagProviderExtensionPoint _tagProviderEP
protected SiteManager _siteManager
protected SiteConfigurationExtensionPoint _siteConf
protected BlogPageHandler _blogRootHandler
protected WorkspaceSelector _workspaceSelector
protected AmetysObjectResolver _resolver
protected ObservationManager _observationManager
protected Map<String,Map<String,Map<String,BlogCacheManager.PostDateCache>>> _postsByDate
protected Map<String,Map<String,Map<String,BlogCacheManager.PostTagCache>>> _postsByTag
protected Map<String,Map<String,Map<String,BlogCacheManager.AllPostCache>>> _allPosts
protected Map<String,Map<String,Map<String,BlogCacheManager.FuturePostCache>>> _futurePostsCache
protected Map<String,Map<String,Map<String,Boolean>>> _initialized
public BlogCacheManager()
public void service(ServiceManager serviceManager) throws ServiceException
service
in interface Serviceable
ServiceException
public void initialize() throws Exception
initialize
in interface Initializable
Exception
public boolean hasYear(String siteName, String language, int year)
siteName
- the site name.language
- the language.year
- the yearpublic Set<Integer> getYears(String siteName, String language)
siteName
- the site name.language
- the language.public boolean hasMonth(String siteName, String language, int year, int month)
siteName
- the site name.language
- the language.year
- the yearmonth
- the monthpublic Set<Integer> getMonths(String siteName, String language, int year)
siteName
- the site name.language
- the language.year
- the year.public Map<String,BlogCacheManager.Post> getPostsByMonth(String siteName, String language, int year, int month)
siteName
- the site name.language
- the language.year
- the year.month
- the month.public Collection<BlogCacheManager.Post> getSortedPostsByMonth(String siteName, String language, int year, int month)
siteName
- the site name.language
- the language.year
- the year.month
- the month.public Map<String,BlogCacheManager.Post> getPostsByYear(String siteName, String language, int year)
siteName
- the site name.language
- the language.year
- the year.public Collection<BlogCacheManager.Post> getSortedPostsByYear(String siteName, String language, int year)
siteName
- the site name.language
- the language.year
- the year.public BlogCacheManager.Post getPostByName(String siteName, String language, int year, int month, String name)
siteName
- the site name.language
- the language.year
- the year.month
- the month.name
- the namepublic boolean hasPost(String siteName, String language, int year, int month, String id)
siteName
- the site name.language
- the language.year
- the year.month
- the month.id
- the id of postpublic boolean hasPostByName(String siteName, String language, int year, int month, String name)
siteName
- the site name.language
- the language.year
- the year.month
- the month.name
- the name of postpublic Set<String> getTags(String siteName, String language)
siteName
- The site namelanguage
- The languagepublic boolean hasTag(String siteName, String language, String tagName)
siteName
- The site namelanguage
- The languagetagName
- The tag namepublic Map<String,BlogCacheManager.Post> getPostsByTag(String siteName, String language, String tagName)
siteName
- The site namelanguage
- The languagetagName
- The tag namepublic Collection<BlogCacheManager.Post> getSortedPostsByTag(String siteName, String language, String tagName)
siteName
- The site namelanguage
- The languagetagName
- The tag namepublic Collection<BlogCacheManager.Post> getSortedPostsByTag(String siteName, String language, String tagName, boolean deepSearch)
siteName
- The site namelanguage
- the languagetagName
- the tag namedeepSearch
- true to perform deep searchpublic boolean hasPostByTag(String siteName, String language, String tagName, String postId)
siteName
- The site namelanguage
- The languagetagName
- The tag namepostId
- The id of postpublic BlogCacheManager.Post getPost(String siteName, String language, String tagName, String id)
siteName
- The site namelanguage
- The languagetagName
- The tag nameid
- The id of postpublic BlogCacheManager.Post getPostByName(String siteName, String language, String tagName, String name)
siteName
- The site namelanguage
- The languagetagName
- The tag namename
- the name of postpublic boolean hasPost(String siteName, String language, String tagName, String id)
siteName
- The site namelanguage
- The languagetagName
- The tag nameid
- The id of postpublic boolean hasPostByName(String siteName, String language, String tagName, String name)
siteName
- The site namelanguage
- The languagetagName
- The tag namename
- the name of postpublic Set<String> getPostIds(String siteName, String language)
siteName
- the site name.language
- the language.public Map<String,BlogCacheManager.Post> getPosts(String siteName, String language)
siteName
- the site name.language
- the language.public Collection<BlogCacheManager.Post> getSortedPosts(String siteName, String language)
siteName
- the site name.language
- the language.public BlogCacheManager.Post getPost(String siteName, String language, String id)
id
- the post content ID.siteName
- the site name.language
- the language.public BlogCacheManager.Post getPostByName(String siteName, String language, String name)
name
- the post content name.siteName
- the site name.language
- the language.public boolean hasPost(String siteName, String language, String id)
id
- the post content ID.siteName
- the site name.language
- the language.public boolean hasPostByName(String siteName, String language, String name)
name
- the post content name.siteName
- the site name.language
- the language.public void addPost(String siteName, String language, Content postContent)
siteName
- The site namelanguage
- The languagepostContent
- The contentpublic void modifyPost(String siteName, String language, Content postContent)
siteName
- The site namelanguage
- The languagepostContent
- The contentpublic void validatePost(String siteName, String language, Content postContent)
siteName
- The site namelanguage
- The languagepostContent
- The contentpublic void removePost(String siteName, String language, Content postContent)
siteName
- The site namelanguage
- The languagepostContent
- The contentpublic void removePostById(String siteName, String postId)
siteName
- the site name.postId
- the post ID.public void clearCaches()
public void clearCaches(String siteName, String language)
siteName
- The site namelanguage
- The languageprotected BlogCacheManager.PostDateCache getPostDateCache(String siteName, String language)
siteName
- The site namelanguage
- The languageprotected BlogCacheManager.PostDateCache getOrCreatePostDateCache(String workspaceName, String siteName, String language)
workspaceName
- The workspacesiteName
- The site namelanguage
- The languageprotected BlogCacheManager.PostTagCache getPostTagCache(String siteName, String language)
siteName
- The site namelanguage
- The languageprotected BlogCacheManager.PostTagCache getOrCreatePostTagCache(String workspaceName, String siteName, String language)
workspaceName
- The workspacesiteName
- The site namelanguage
- The languageprotected BlogCacheManager.AllPostCache getAllPostCache(String siteName, String language)
siteName
- The site namelanguage
- The languageprotected BlogCacheManager.AllPostCache getOrCreateAllPostCache(String workspaceName, String siteName, String language)
workspaceName
- The workspace namesiteName
- The site namelanguage
- The languageprotected BlogCacheManager.FuturePostCache getFuturePostCache(String siteName, String language)
siteName
- the name of the sitelanguage
- the languageprotected BlogCacheManager.FuturePostCache getOrCreateFuturePostCache(String workspaceName, String siteName, String language)
workspaceName
- the name of the workspacesiteName
- the name of the sitelanguage
- the languageprotected boolean isInitialized(String workspaceName, String siteName, String language)
workspaceName
- The workspace namesiteName
- The site namelanguage
- The languageprotected void setInitialized(String siteName, String language)
siteName
- The site namelanguage
- The languageprotected void setInitialized(String siteName, String language, Boolean initialized)
siteName
- The site namelanguage
- The languageinitialized
- true to set initializedprotected void setInitialized(String workspaceName, String siteName, String language, Boolean initialized)
workspaceName
- The workspace namesiteName
- The site namelanguage
- The languageinitialized
- true if to set initializedprotected void initializeCaches(String workspaceName, String siteName, String language)
workspaceName
- The workspace namesiteName
- The site namelanguage
- The languageprivate void _updateFuturePosts(String workspaceName, String siteName, String language)
private boolean _needUpdateFuturePosts(String workspaceName, String siteName, String language, Date roundedNow)
private Date _getOrCreateLastUpdateFuturePosts(String workspaceName, String siteName, String language)
private boolean _isFuturePost(Content post)
protected BlogCacheManager.PostSiteLang getPost(String siteName, String postId)
siteName
- the site name.postId
- the post ID.protected BlogCacheManager.PostSiteLang getFuturePost(String siteName, String postId)
siteName
- the site name.postId
- the post ID.protected void dispatchPost(BlogCacheManager.PostDateCache dateCache, Content content)
dateCache
- the post date cache.content
- the Post content.protected void dispatchPost(BlogCacheManager.PostDateCache dateCache, BlogCacheManager.Post post)
dateCache
- the post date cache.post
- the Post to add.protected void dispatchPost(BlogCacheManager.PostTagCache tagCache, Content content)
tagCache
- the post tag cache.content
- the Post content.protected void dispatchPost(BlogCacheManager.PostTagCache tagCache, BlogCacheManager.Post post)
tagCache
- the post tag cache.post
- the Post to add.protected void dispatchPost(BlogCacheManager.AllPostCache cache, Content content)
cache
- the post cache.content
- the Post content.protected void dispatchPost(BlogCacheManager.AllPostCache cache, BlogCacheManager.Post post)
cache
- the post cache.post
- the Post content.protected void dispatchPost(BlogCacheManager.FuturePostCache cache, Content content)
cache
- the future post cache.content
- the Post content.protected void removePost(BlogCacheManager.PostDateCache dateCache, Content content)
dateCache
- the post date cache.content
- the Post content.protected void removePost(BlogCacheManager.PostDateCache dateCache, BlogCacheManager.Post post)
dateCache
- the post date cache.post
- the Post object to remove.protected void removePost(BlogCacheManager.PostTagCache cache, Content content)
cache
- the post tag cache.content
- the Post content.protected void removePost(BlogCacheManager.PostTagCache cache, BlogCacheManager.Post post)
cache
- the post tag cache.post
- the Post to remove.protected void removePost(BlogCacheManager.AllPostCache cache, Content content)
cache
- the post cache.content
- the Post content.protected void removePost(BlogCacheManager.AllPostCache cache, BlogCacheManager.Post post)
cache
- the post cache.post
- the Post to remove.protected void removePost(BlogCacheManager.FuturePostCache cache, Content content)
cache
- the future post cache.content
- the Post content to remove.protected void removePost(BlogCacheManager.FuturePostCache cache, BlogCacheManager.Post post)
cache
- the future post cache.post
- the Post to remove.protected void modifyPost(BlogCacheManager.PostDateCache dateCache, BlogCacheManager.Post post, Content postContent)
dateCache
- the post date cache.post
- the post contentpostContent
- the post Content.protected void modifyPost(BlogCacheManager.PostTagCache cache, BlogCacheManager.Post post, Content postContent)
cache
- the post tag cache.post
- the post contentpostContent
- the post Content.protected void modifyPost(BlogCacheManager.AllPostCache cache, BlogCacheManager.Post post, Content postContent)
cache
- the post cache.post
- the post contentpostContent
- the post Content.protected void modifyPost(BlogCacheManager.FuturePostCache cache, BlogCacheManager.Post post, Content postContent)
cache
- the post cache.post
- the postpostContent
- the post Content.