Class CmsContainerConfigurationCache
- java.lang.Object
-
- org.opencms.ade.containerpage.inherited.CmsContainerConfigurationCache
-
- All Implemented Interfaces:
I_CmsGlobalConfigurationCache
public class CmsContainerConfigurationCache extends java.lang.Object implements I_CmsGlobalConfigurationCache
A cache class for storing inherited container configurations.
-
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor Description CmsContainerConfigurationCache(CmsObject cms, java.lang.String name)
Creates a new cache instance for inherited containers.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.
-
-
-
Field Detail
-
UPDATE_INTERVAL_MILLIS
public static final long UPDATE_INTERVAL_MILLIS
Interval used to check for changes.- See Also:
- Constant Field Values
-
INHERITANCE_CONFIG_FILE_NAME
public static final java.lang.String INHERITANCE_CONFIG_FILE_NAME
The standard file name for inherited container configurations.- See Also:
- Constant Field Values
-
UPDATE_ALL
public static final CmsUUID UPDATE_ALL
UUID used to signal a cache clear.
-
LOG
public static final org.apache.commons.logging.Log LOG
The logger instance for this class.
-
m_initialized
protected boolean m_initialized
A flag which indicates whether this cache is initialized.
-
-
Constructor Detail
-
CmsContainerConfigurationCache
public CmsContainerConfigurationCache(CmsObject cms, java.lang.String name) throws CmsException
Creates a new cache instance for inherited containers.- Parameters:
cms
- the CMS context to use for VFS operations.name
- the name of the cache, for debugging/testing purposes- Throws:
CmsException
- if something goes wrong
-
-
Method Detail
-
clear
public void clear()
Description copied from interface:I_CmsGlobalConfigurationCache
Clears the cache.- Specified by:
clear
in interfaceI_CmsGlobalConfigurationCache
- See Also:
I_CmsGlobalConfigurationCache.clear()
-
flushUpdates
public void flushUpdates()
Processes all enqueued inheritance container updates.
-
getState
public CmsContainerConfigurationCacheState getState()
Gets the current cache contents.- Returns:
- the cache contents
-
initialize
public void initialize()
Initializes the cache.
-
remove
public void remove(CmsPublishedResource resource)
Description copied from interface:I_CmsGlobalConfigurationCache
Removes a published resource from the cache.- Specified by:
remove
in interfaceI_CmsGlobalConfigurationCache
- Parameters:
resource
- the published resource- See Also:
I_CmsGlobalConfigurationCache.remove(org.opencms.db.CmsPublishedResource)
-
remove
public void remove(CmsResource resource)
Description copied from interface:I_CmsGlobalConfigurationCache
Removes a resource from the cache.- Specified by:
remove
in interfaceI_CmsGlobalConfigurationCache
- Parameters:
resource
- the resource to remove- See Also:
I_CmsGlobalConfigurationCache.remove(org.opencms.file.CmsResource)
-
update
public void update(CmsPublishedResource resource)
Description copied from interface:I_CmsGlobalConfigurationCache
Updates the cache entry for the given published resource.NOTE: 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.
- Specified by:
update
in interfaceI_CmsGlobalConfigurationCache
- Parameters:
resource
- a published resource- See Also:
I_CmsGlobalConfigurationCache.update(org.opencms.db.CmsPublishedResource)
-
update
public void update(CmsResource resource)
Description copied from interface:I_CmsGlobalConfigurationCache
Updates the cache entry for the given resource.NOTE: 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.
- Specified by:
update
in interfaceI_CmsGlobalConfigurationCache
- Parameters:
resource
- the resource for which the cache entry should be updated- See Also:
I_CmsGlobalConfigurationCache.update(org.opencms.file.CmsResource)
-
getBasePath
protected java.lang.String getBasePath(java.lang.String rootPath)
Returns the base path for a given configuration file. E.g. the result for the input '/sites/default/.container-config' will be '/sites/default'.- Parameters:
rootPath
- the root path of the configuration file- Returns:
- the base path for the configuration file
-
getCacheKey
protected java.lang.String getCacheKey(java.lang.String basePath)
Gets the cache key for a given base path.- Parameters:
basePath
- the base path- Returns:
- the cache key for the base path
-
isContainerConfiguration
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.- Parameters:
rootPath
- the root path of the resourcetype
- the type id of the resource- Returns:
- true if the given root path / type combination matches an inherited container configuration file
-
load
protected java.util.Map<CmsUUID,CmsContainerConfigurationGroup> load(java.util.Collection<CmsResource> resources)
Loads the inheritance groups from a list of resources.If the configuration for a given resource can't be read, the corresponding map entry will be null in the result.
- Parameters:
resources
- the resources- Returns:
- the inheritance group configurations, with structure ids of the corresponding resources as keys
-
loadFromIds
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.If the configuration for a given id can't be read, the corresponding map entry will be null in the result.
- Parameters:
structureIds
- the structure ids- Returns:
- the inheritance group configurations, with structure ids of the corresponding resources as keys
-
remove
protected void remove(CmsUUID structureId, java.lang.String rootPath, int type)
Removes a resource from the cache.- Parameters:
structureId
- the structure id of the resourcerootPath
- the root path of the resourcetype
- the resource type
-
update
protected void update(CmsUUID structureId, java.lang.String rootPath, int type, CmsResourceState state)
Updates a resource in the cache.- Parameters:
structureId
- the structure id of the resourcerootPath
- the root path of the resourcetype
- the resource typestate
- the resource state
-
-