ContentCache Class

DEPRECATED

com.bea.p13n.content
ContentCache Class

public class ContentCache

    extends Object
    implements HttpSessionBindingListener, Serializable

An object to help with caching content.

This object can placed anywhere for use as a cache. For convience, the getContentCache method can be used with a JSP PageContext to create and utilize ContentCaches.

Additionally, this is what the SelectTag and SelectByIdTag tags use when useCache="true".


Hierarchy
Object
  ContentCache
All Implemented Interfaces

EventListener, HttpSessionBindingListener, Serializable

Field Summary

protected Map
cache
The cache of id to ContentHolder.
public static final String
DEF_CACHE_NAME
The default name of the ContentCache in the various locations ("wlps.content.cache").
public static final String
SESSION_NAME
The old name of the ContentCache.
 

Constructor Summary

ContentCache()

Constructor.
 

Method Summary

public static void
bindToSession(ContentCache cache, HttpSession session)
Bind a ContentCache into an HttpSession.
public synchronized void
clear()
Clear the entire cache.
public static Object
getAttribute(PageContext ctx, String name, int scope)
Get a scoped attribute correctly from the JSP page context.
public synchronized long
getCachedTime(String id)
Get the UTC time (in ms.) of when the Content at id was cached.
public synchronized List
getCacheIds()
Get an unordered list of all the cache ids.
public synchronized long
getCacheSize()
Get the total number of Content objects cached (across all ids).
public synchronized Content[]
getContent(String id, long timeout)
Check the cache for the content.
public static ContentCache
getContentCache(PageContext ctx, int scope, boolean create)
Get a ContentCache from the specified JSP context.
public static ContentCache
getContentCache(PageContext ctx, String scopeStr, boolean create)
Get a ContentCache from the specified JSP context.
public static ContentCache
getFromSession(HttpSession session, boolean create)
Get a ContentCache from an HttpSession.
public synchronized int
getNumCacheIds()
Get the number of cache ids in the cache.
public static String
getScopeName(int scope)
Get the scope name based upon the scope id.
public synchronized Content[]
remove(String id)
Clear a particular entry from the cache.
public static void
removeAttribute(PageContext ctx, String name, int scope)
Remove a scoped attribute correctly from the JSP page context.
public static void
setAttribute(PageContext ctx, String name, Object val, int scope)
Set a scoped attribute correctly in the JSP page context.
public synchronized void
update(String id, Content[] content)
Update the cache with the content.
public void
valueBound(HttpSessionBindingEvent evt)
Called when we're bound into an HttpSession.
public void
valueUnbound(HttpSessionBindingEvent evt)
Called when we're unbound from an HttpSession, and clears the cache.
 
Methods from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
   
Methods from interface javax.servlet.http.HttpSessionBindingListener
valueBound, valueUnbound
 

Field Detail

cache

protected Map cache
The cache of id to ContentHolder.


DEF_CACHE_NAME

public static final String DEF_CACHE_NAME
The default name of the ContentCache in the various locations ("wlps.content.cache").

When the getContentCache method is used, this is the name which will used.


SESSION_NAME

public static final String SESSION_NAME
The old name of the ContentCache.

This is set to DEF_CACHE_NAME.

 

Constructor Detail

ContentCache

public ContentCache()
Constructor.
 

Method Detail

bindToSession(ContentCache, HttpSession) Method

public static void bindToSession(ContentCache cache, 
                                 HttpSession session)
Bind a ContentCache into an HttpSession.

This will use DEF_CACHE_NAME as the session attribute name for the cache.

Parameters

cache
the content cache object.
session
the http session.

clear() Method

public synchronized void clear()
Clear the entire cache.


getAttribute(PageContext, String, int) Method

public static Object getAttribute(PageContext ctx, 
                                  String name, 
                                  int scope)
Get a scoped attribute correctly from the JSP page context.

Parameters

ctx
the JSP page context.
name
the attribute name.
scope
the attribute scope (PageContext.APPLICATION_SCOPE, PageContext.PAGE_SCOPE, PageContext.REQUEST_SCOPE, PageContext.SESSION_SCOPE).

getCachedTime(String) Method

public synchronized long getCachedTime(String id)
Get the UTC time (in ms.) of when the Content at id was cached.

Parameters

id
the cache id of the content.

Returns

the time, or -1 if id is not a valid cache id.

getCacheIds() Method

public synchronized List getCacheIds()
Get an unordered list of all the cache ids.

Since the keys will all be Strings, this can be sorted with Collections.sort(List).


getCacheSize() Method

public synchronized long getCacheSize()
Get the total number of Content objects cached (across all ids).


getContent(String, long) Method

public synchronized Content[] getContent(String id, 
                                       long timeout)
Check the cache for the content.

Getting content from the cache does not update its time in terms of a timeout. Only using the ContentCache.update(String, Content[]) method to update the cache will do that.

Parameters

id
the cache id of the content.
timeout
the timeout in ms. for the content (less than 0 for no timeout).

Returns

the array of Content, or null if not found or has timed out.

getContentCache(PageContext, int, boolean) Method

public static ContentCache getContentCache(PageContext ctx, 
                                           int scope, 
                                           boolean create)
Get a ContentCache from the specified JSP context.

This will retrieve the ContentCache from the JSP context based upon the specified scope at the attribute named DEF_CACHE_NAME. If that is set and is not a ContentCache, it will be removed.

Parameters

ctx
the JSP page context.
scope
the cache scope (one of PageContext.APPLICATION_SCOPE, PageContext.PAGE_SCOPE, PageContext.REQUEST_SCOPE, or PageContext.SESSION_SCOPE).
create
true to create a ContentCache if it's not there, false to not and return null.

Returns

the cache if it exists or create was true, null if it didn't exist and create was false.

getContentCache(PageContext, String, boolean) Method

public static ContentCache getContentCache(PageContext ctx, 
                                           String scopeStr, 
                                           boolean create)
Get a ContentCache from the specified JSP context.

If scopeStr is "application", then PageContext.APPLICATION_SCOPE is used; if scopeStr is "page", then PageContext.PAGE_SCOPE is used; if scopeStr is "request", then PageContext.REQUEST_SCOPE is used; if scopeStr is "session", then PageContext.SESSION_SCOPE is used; otherwise, scopeStr is passed to ctx.getAttributesScope() which will determine the scope to use.

Parameters

ctx
the JSP page context.
scopeStr
the scope name.
create
true to create a ContentCache if it's not there, false to not and return null.

Returns

the cache if it exists or create was true, null if it didn't exist and create was false.

getFromSession(HttpSession, boolean) Method

public static ContentCache getFromSession(HttpSession session, 
                                          boolean create)
Get a ContentCache from an HttpSession.

This will retrieve the cache from the session attribute named DEF_CACHE_NAME. If that is set and is not a ContentCache, it will be removed.

Parameters

session
the http session.
create
true to create a ContentCache if it's not there, false to not and return null.

Returns

the cache if it exists or create was true, null if it didn't exist and create was false.

getNumCacheIds() Method

public synchronized int getNumCacheIds()
Get the number of cache ids in the cache.


getScopeName(int) Method

public static String getScopeName(int scope)
Get the scope name based upon the scope id.


remove(String) Method

public synchronized Content[] remove(String id)
Clear a particular entry from the cache.

Parameters

id
the cache id of the content.

Returns

the cached Content at the id, or null if none.

removeAttribute(PageContext, String, int) Method

public static void removeAttribute(PageContext ctx, 
                                   String name, 
                                   int scope)
Remove a scoped attribute correctly from the JSP page context.

Parameters

ctx
the JSP page context.
name
the attribute name.
scope
the attribute scope (PageContext.APPLICATION_SCOPE, PageContext.PAGE_SCOPE, PageContext.REQUEST_SCOPE, PageContext.SESSION_SCOPE).

setAttribute(PageContext, String, Object, int) Method

public static void setAttribute(PageContext ctx, 
                                String name, 
                                Object val, 
                                int scope)
Set a scoped attribute correctly in the JSP page context.

Parameters

ctx
the JSP page context.
name
the attribute name.
val
the attribute value.
scope
the attribute scope (PageContext.APPLICATION_SCOPE, PageContext.PAGE_SCOPE, PageContext.REQUEST_SCOPE, PageContext.SESSION_SCOPE).

update(String, Content[]) Method

public synchronized void update(String id, 
                                Content[] content)
Update the cache with the content.

This can be used for new or existing content in the cache.

Parameters

id
cache id of the content.
content
the Content (null to remove).

valueBound(HttpSessionBindingEvent) Method

public void valueBound(HttpSessionBindingEvent evt)
Called when we're bound into an HttpSession.


valueUnbound(HttpSessionBindingEvent) Method

public void valueUnbound(HttpSessionBindingEvent evt)
Called when we're unbound from an HttpSession, and clears the cache.

Related Topics

ContentCache.clear()