org.opencms.cache
Class CmsVfsMemoryObjectCache

java.lang.Object
  extended by org.opencms.cache.CmsVfsCache
      extended by org.opencms.cache.CmsVfsMemoryObjectCache
All Implemented Interfaces:
I_CmsEventListener

public class CmsVfsMemoryObjectCache
extends CmsVfsCache

Implements a memory cache, that stores objects related to VFS files, providing a cache for the "online" and another for the "offline" project.

Since:
6.1.3

Field Summary
 
Fields inherited from interface org.opencms.main.I_CmsEventListener
EVENT_BEFORE_PUBLISH_PROJECT, EVENT_CLEAR_CACHES, EVENT_CLEAR_OFFLINE_CACHES, EVENT_CLEAR_ONLINE_CACHES, EVENT_CLEAR_PRINCIPAL_CACHES, EVENT_FLEX_CACHE_CLEAR, EVENT_FLEX_PURGE_JSP_REPOSITORY, EVENT_FULLSTATIC_EXPORT, EVENT_GROUP_MODIFIED, EVENT_LOGIN_USER, EVENT_OU_MODIFIED, EVENT_PROJECT_MODIFIED, EVENT_PROPERTY_DEFINITION_CREATED, EVENT_PROPERTY_DEFINITION_MODIFIED, EVENT_PROPERTY_MODIFIED, EVENT_PUBLISH_PROJECT, EVENT_REBUILD_SEARCHINDEXES, EVENT_RESOURCE_AND_PROPERTIES_MODIFIED, EVENT_RESOURCE_COPIED, EVENT_RESOURCE_CREATED, EVENT_RESOURCE_DELETED, EVENT_RESOURCE_MODIFIED, EVENT_RESOURCE_MOVED, EVENT_RESOURCES_AND_PROPERTIES_MODIFIED, EVENT_RESOURCES_MODIFIED, EVENT_SITEMAP_CHANGED, EVENT_UPDATE_EXPORTS, EVENT_USER_MODIFIED, KEY_CHANGE, KEY_DBCONTEXT, KEY_GROUP_ID, KEY_GROUP_NAME, KEY_INDEX_NAMES, KEY_OU_ID, KEY_OU_NAME, KEY_PROJECTID, KEY_PUBLISHID, KEY_PUBLISHLIST, KEY_REPORT, KEY_RESOURCE, KEY_RESOURCES, KEY_USER_ACTION, KEY_USER_ID, KEY_USER_NAME, LISTENERS_FOR_ALL_EVENTS, VALUE_GROUP_MODIFIED_ACTION_CREATE, VALUE_GROUP_MODIFIED_ACTION_DELETE, VALUE_GROUP_MODIFIED_ACTION_WRITE, VALUE_OU_MODIFIED_ACTION_CREATE, VALUE_OU_MODIFIED_ACTION_DELETE, VALUE_USER_MODIFIED_ACTION_ADD_USER_TO_GROUP, VALUE_USER_MODIFIED_ACTION_CREATE_USER, VALUE_USER_MODIFIED_ACTION_DELETE_USER, VALUE_USER_MODIFIED_ACTION_REMOVE_USER_FROM_GROUP, VALUE_USER_MODIFIED_ACTION_RESET_PASSWORD, VALUE_USER_MODIFIED_ACTION_SET_OU, VALUE_USER_MODIFIED_ACTION_WRITE_USER
 
Constructor Summary
CmsVfsMemoryObjectCache()
          Constructor, creates a new CmsVfsMemoryObjectCache.
 
Method Summary
protected  void flush(boolean online)
          Flushes the caches.
 java.lang.Object getCachedObject(CmsObject cms, java.lang.String rootPath)
          Return an object from the cache.
static CmsVfsMemoryObjectCache getVfsMemoryObjectCache()
          Returns the VFS memory Object cache.
 java.lang.Object loadVfsObject(CmsObject cms, java.lang.String rootPath, org.apache.commons.collections.Transformer function)
          Uses a transformer for loading an object from a path if it has not already been cached, and then caches it.
 void putCachedObject(CmsObject cms, java.lang.String rootPath, java.lang.Object value)
          Puts an object into the cache.
protected  void uncacheResource(CmsResource resource)
          Removes a cached resource from the cache.
 
Methods inherited from class org.opencms.cache.CmsVfsCache
cmsEvent, registerEventListener, shutdown, uncacheResources
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CmsVfsMemoryObjectCache

public CmsVfsMemoryObjectCache()
Constructor, creates a new CmsVfsMemoryObjectCache.

Method Detail

getVfsMemoryObjectCache

public static CmsVfsMemoryObjectCache getVfsMemoryObjectCache()
Returns the VFS memory Object cache.

Returns:
the VFS memory Object cache

getCachedObject

public java.lang.Object getCachedObject(CmsObject cms,
                                        java.lang.String rootPath)
Return an object from the cache.

Parameters:
cms - the current users OpenCms context
rootPath - the rootPath of the VFS resource to get the object for
Returns:
object form cache or null

loadVfsObject

public java.lang.Object loadVfsObject(CmsObject cms,
                                      java.lang.String rootPath,
                                      org.apache.commons.collections.Transformer function)
Uses a transformer for loading an object from a path if it has not already been cached, and then caches it.

Parameters:
cms - the CMS context
rootPath - the root path from which the object should be loaded
function - the function which should load the object from VFS if it isn't already cached
Returns:
the loaded object

putCachedObject

public void putCachedObject(CmsObject cms,
                            java.lang.String rootPath,
                            java.lang.Object value)
Puts an object into the cache.

Parameters:
cms - the CmsObject
rootPath - the rootPath of the VFS resource to store the object for
value - the object to store

flush

protected void flush(boolean online)
Description copied from class: CmsVfsCache
Flushes the caches.

Specified by:
flush in class CmsVfsCache
Parameters:
online - if to flush the online or offline caches
See Also:
CmsVfsCache.flush(boolean)

uncacheResource

protected void uncacheResource(CmsResource resource)
Description copied from class: CmsVfsCache
Removes a cached resource from the cache.

Specified by:
uncacheResource in class CmsVfsCache
Parameters:
resource - the resource
See Also:
CmsVfsCache.uncacheResource(org.opencms.file.CmsResource)