public class CmsContainerConfigurationCache extends java.lang.Object implements I_CmsGlobalConfigurationCache
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
INHERITANCE_CONFIG_FILE_NAME
The standard file name for inherited container configurations.
|
static org.apache.commons.logging.Log |
LOG
The logger instance for this class.
|
protected boolean |
m_initialized
A flag which indicates whether this cache is initialized.
|
static CmsUUID |
UPDATE_ALL
UUID used to signal a cache clear.
|
static long |
UPDATE_INTERVAL_MILLIS
Interval used to check for changes.
|
| Constructor and Description |
|---|
CmsContainerConfigurationCache(CmsObject cms,
java.lang.String name)
Creates a new cache instance for inherited containers.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Clears the cache.
|
void |
flushUpdates()
Processes all enqueued inheritance container updates.
|
protected java.lang.String |
getBasePath(java.lang.String rootPath)
Returns the base path for a given configuration file.
|
protected java.lang.String |
getCacheKey(java.lang.String basePath)
Gets the cache key for a given base path.
|
CmsContainerConfigurationCacheState |
getState()
Gets the current cache contents.
|
void |
initialize()
Initializes the cache.
|
protected boolean |
isContainerConfiguration(java.lang.String rootPath,
int type)
Checks whether a given combination of path and resource type belongs to an inherited container configuration file.
|
protected java.util.Map<CmsUUID,CmsContainerConfigurationGroup> |
load(java.util.Collection<CmsResource> resources)
Loads the inheritance groups from a list of resources.
|
protected java.util.Map<CmsUUID,CmsContainerConfigurationGroup> |
loadFromIds(java.util.Collection<CmsUUID> structureIds)
Loads the inheritance groups from the resources with structure ids from the given list.
|
void |
remove(CmsPublishedResource resource)
Removes a published resource from the cache.
|
void |
remove(CmsResource resource)
Removes a resource from the cache.
|
protected void |
remove(CmsUUID structureId,
java.lang.String rootPath,
int type)
Removes a resource from the cache.
|
void |
update(CmsPublishedResource resource)
Updates the cache entry for the given published resource.
|
void |
update(CmsResource resource)
Updates the cache entry for the given resource.
|
protected void |
update(CmsUUID structureId,
java.lang.String rootPath,
int type,
CmsResourceState state)
Updates a resource in the cache.
|
public static final long UPDATE_INTERVAL_MILLIS
public static final java.lang.String INHERITANCE_CONFIG_FILE_NAME
public static final CmsUUID UPDATE_ALL
public static final org.apache.commons.logging.Log LOG
protected boolean m_initialized
public CmsContainerConfigurationCache(CmsObject cms, java.lang.String name) throws CmsException
cms - the CMS context to use for VFS operations.name - the name of the cache, for debugging/testing purposesCmsException - if something goes wrongpublic void clear()
I_CmsGlobalConfigurationCacheclear in interface I_CmsGlobalConfigurationCacheI_CmsGlobalConfigurationCache.clear()public void flushUpdates()
public CmsContainerConfigurationCacheState getState()
public void initialize()
public void remove(CmsPublishedResource resource)
I_CmsGlobalConfigurationCacheremove in interface I_CmsGlobalConfigurationCacheresource - the published resourceI_CmsGlobalConfigurationCache.remove(org.opencms.db.CmsPublishedResource)public void remove(CmsResource resource)
I_CmsGlobalConfigurationCacheremove in interface I_CmsGlobalConfigurationCacheresource - the resource to removeI_CmsGlobalConfigurationCache.remove(org.opencms.file.CmsResource)public void update(CmsPublishedResource resource)
I_CmsGlobalConfigurationCacheNOTE: Cache implementations should not directly read the updated resource in this method because it might interfere with other caches. Instead, the resource should be marked as updated and read the next time the cache is queried.
update in interface I_CmsGlobalConfigurationCacheresource - a published resourceI_CmsGlobalConfigurationCache.update(org.opencms.db.CmsPublishedResource)public void update(CmsResource resource)
I_CmsGlobalConfigurationCacheNOTE: Cache implementations should not directly read the updated resource in this method because it might interfere with other caches. Instead, the resource should be marked as updated and read the next time the cache is queried.
update in interface I_CmsGlobalConfigurationCacheresource - the resource for which the cache entry should be updatedI_CmsGlobalConfigurationCache.update(org.opencms.file.CmsResource)protected java.lang.String getBasePath(java.lang.String rootPath)
rootPath - the root path of the configuration fileprotected java.lang.String getCacheKey(java.lang.String basePath)
basePath - the base pathprotected boolean isContainerConfiguration(java.lang.String rootPath, int type)
rootPath - the root path of the resourcetype - the type id of the resourceprotected java.util.Map<CmsUUID,CmsContainerConfigurationGroup> load(java.util.Collection<CmsResource> resources)
If the configuration for a given resource can't be read, the corresponding map entry will be null in the result.
resources - the resourcesprotected java.util.Map<CmsUUID,CmsContainerConfigurationGroup> loadFromIds(java.util.Collection<CmsUUID> structureIds)
If the configuration for a given id can't be read, the corresponding map entry will be null in the result.
structureIds - the structure idsprotected void remove(CmsUUID structureId, java.lang.String rootPath, int type)
structureId - the structure id of the resourcerootPath - the root path of the resourcetype - the resource typeprotected void update(CmsUUID structureId, java.lang.String rootPath, int type, CmsResourceState state)
structureId - the structure id of the resourcerootPath - the root path of the resourcetype - the resource typestate - the resource state