Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2002 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bea.p13n.content
Class ContentCache

    java.lang.Object
      |
      +--com.bea.p13n.content.ContentCache

public class ContentCache
extends java.lang.Object
implements javax.servlet.http.HttpSessionBindingListener, java.io.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 <cm:select> and <cm:selectById> tags use when useCache="true".

See Also:
  Serialized Form

Field Summary
`protected java.util.Map` | `cache` The cache of id to ContentHolder.
`static java.lang.String` | `DEF_CACHE_NAME` The default name of the ContentCache in the various locations ("wlps.content.cache").
`protected long` | `flushFinishTime` Cache flush finish time
`protected static long` | `flushRequestTime` Time of lastest request for flush contentCache with session/application scope
`static java.lang.String` | `SESSION_NAME` Deprecated. Use DEF_CACHE_NAME instead.

Constructor Summary
`ContentCache()` Constructor.

Method Summary
`static void` | `bindToSession(ContentCache cache, javax.servlet.http.HttpSession session)` Bind a ContentCache into an HttpSession.
`void` | `clear()` Clear the entire cache.
`static void` | `flush()` Request flushing session/application scoped cache
`static java.lang.Object` | `getAttribute(javax.servlet.jsp.PageContext ctx, java.lang.String name, int scope)` Get a scoped attribute correctly from the JSP page context.
`long` | `getCachedTime(java.lang.String id)` Get the UTC time (in ms.) of when the Content at id was cached.
`java.util.List` | `getCacheIds()` Get an unordered list of all the cache ids.
`long` | `getCacheSize()` Get the total number of Content objects cached (across all ids).
`Content[]` | `getContent(java.lang.String id, long timeout)` Check the cache for the content.
`static ContentCache` | `getContentCache(javax.servlet.jsp.PageContext ctx, int scope, boolean create)` Get a ContentCache from the specified JSP context.
`static ContentCache` | `getContentCache(javax.servlet.jsp.PageContext ctx, java.lang.String scopeStr, boolean create)` Get a ContentCache from the specified JSP context.
`protected ContentCache` | `getCurrentCache()` No synchronize this method, since clear() is synchronized and concurrent accessing "flushRequestTime" and "flushFinishTime" only effect page layer cache for a short period of time.
`static ContentCache` | `getFromSession(javax.servlet.http.HttpSession session, boolean create)` Get a ContentCache from an HttpSession.
`int` | `getNumCacheIds()` Get the number of cache ids in the cache.
`static java.lang.String` | `getScopeName(int scope)` Get the scope name based upon the scope id.
`Content[]` | `remove(java.lang.String id)` Clear a particular entry from the cache.
`static void` | `removeAttribute(javax.servlet.jsp.PageContext ctx, java.lang.String name, int scope)` Remove a scoped attribute correctly from the JSP page context.
`static void` | `setAttribute(javax.servlet.jsp.PageContext ctx, java.lang.String name, java.lang.Object val, int scope)` Set a scoped attribute correctly in the JSP page context.
`void` | `update(java.lang.String id, Content[] content)` Update the cache with the content.
`void` | `valueBound(javax.servlet.http.HttpSessionBindingEvent evt)` Called when we're bound into an HttpSession.
`void` | `valueUnbound(javax.servlet.http.HttpSessionBindingEvent evt)` Called when we're unbound from an HttpSession, and clears the cache.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEF_CACHE_NAME

    public static final java.lang.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 java.lang.String SESSION_NAME

  Deprecated. Use DEF_CACHE_NAME instead.
  The old name of the ContentCache.

  This is set to DEF_CACHE_NAME.

### cache

    protected java.util.Map cache

  The cache of id to ContentHolder.

### flushRequestTime

    protected static long flushRequestTime

  Time of lastest request for flush contentCache with session/application scope

### flushFinishTime

    protected long flushFinishTime

  Cache flush finish time

Constructor Detail

### ContentCache

    public ContentCache()

  Constructor.

Method Detail

### getContent

    public Content[] getContent(java.lang.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 `update(java.lang.String, com.bea.p13n.content.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.

### getCachedTime

    public long getCachedTime(java.lang.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.

### getNumCacheIds

    public int getNumCacheIds()

  Get the number of cache ids in the cache.

### getCacheIds

    public java.util.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(java.util.List)`.

### getCacheSize

    public long getCacheSize()

  Get the total number of Content objects cached (across all ids).

### update

    public void update(java.lang.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).

### remove

    public Content[] remove(java.lang.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.

### clear

    public void clear()

  Clear the entire cache.

### valueBound

    public void valueBound(javax.servlet.http.HttpSessionBindingEvent evt)

  Called when we're bound into an HttpSession.
  Specified by:
    valueBound in interface javax.servlet.http.HttpSessionBindingListener

### valueUnbound

    public void valueUnbound(javax.servlet.http.HttpSessionBindingEvent evt)

  Called when we're unbound from an HttpSession, and clears the cache.
  Specified by:
    valueUnbound in interface javax.servlet.http.HttpSessionBindingListener

  See Also:
    `clear()`

### bindToSession

    public static void bindToSession(ContentCache cache,
                                     javax.servlet.http.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.

### getFromSession

    public static ContentCache getFromSession(javax.servlet.http.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.

### getContentCache

    public static ContentCache getContentCache(javax.servlet.jsp.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

    public static ContentCache getContentCache(javax.servlet.jsp.PageContext ctx,
                                               java.lang.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.

### getAttribute

    public static java.lang.Object getAttribute(javax.servlet.jsp.PageContext ctx,
                                                java.lang.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).

### setAttribute

    public static void setAttribute(javax.servlet.jsp.PageContext ctx,
                                    java.lang.String name,
                                    java.lang.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).

### removeAttribute

    public static void removeAttribute(javax.servlet.jsp.PageContext ctx,
                                       java.lang.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).

### getScopeName

    public static java.lang.String getScopeName(int scope)

  Get the scope name based upon the scope id.

### flush

    public static void flush()

  Request flushing session/application scoped cache

### getCurrentCache

    protected ContentCache getCurrentCache()

  No synchronize this method, since clear() is synchronized and concurrent accessing "flushRequestTime" and "flushFinishTime" only effect page layer cache for a short period of time. The impact can be ignored.

Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2002 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 BEA Systems, Inc. All Rights Reserved