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

## com.bea.content.manager.servlets
Class NodeCache

    java.lang.Object
      |
      +--com.bea.content.manager.servlets.NodeCache

All Implemented Interfaces:
  EventListener, HttpSessionBindingListener, Serializable

public class NodeCache
extends Object
implements HttpSessionBindingListener, Serializable

An object to help with caching a Node or a array of Nodes.

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

Additionally, this is what the `<cm:search>` and `<cm:getNode>` tags use when useCache="true".

See Also:
  Serialized Form

Field Summary
`static String` | `DEF_CACHE_NAME` The default name of the NodeCache.
`protected Map` | `nodeCache` The cache to NodeHolder.

Constructor Summary
`NodeCache()` Constructor.

Method Summary
`static void` | `bindToSession(NodeCache cache, HttpSession session)` Bind a NodeCache to an HttpSession.
`void` | `clear()` Clear the entire cache.
`static Object` | `getAttribute(PageContext ctx, String name, int scope)` Get a scoped attribute correctly from the JSP page context.
`long` | `getCachedTime(String id)` Get the UTC time (in ms.) of when the nodes at id were cached.
`List` | `getCacheIds()` Get an unordered list of all the cache ids.
`long` | `getCacheSize()` Get the total number of nodes objects cached (across all ids).
`static NodeCache` | `getFromSession(HttpSession session, boolean create)` Get a NodeCache from an HttpSession.
`Node` | `getNode(String id, long timeout)` Check the cache for the node.
`static NodeCache` | `getNodeCache(PageContext ctx, int scope, boolean create)` Get a NodeCache from the specified JSP context.
`static NodeCache` | `getNodeCache(PageContext ctx, String scopeStr, boolean create)` Get a NodeCache from the specified JSP context.
`Node[]` | `getNodes(String id, long timeout)` Check the cache for the nodes.
`int` | `getNumCacheIds()` Get the number of cache ids in the cache.
`static String` | `getScopeName(int scope)` Get the scope name based upon the scope id.
`Node[]` | `remove(String id)` Clear a particular entry from the cache.
`static void` | `removeAttribute(PageContext ctx, String name, int scope)` Remove a scoped attribute correctly from the JSP page context.
`static void` | `setAttribute(PageContext ctx, String name, Object val, int scope)` Set a scoped attribute correctly in the JSP page context.
`void` | `update(String id, Node node)` Update the cache with the Node.
`void` | `update(String id, Node[] nodes)` Update the cache with the nodes.
`void` | `valueBound(HttpSessionBindingEvent evt)` Called when we're bound into an HttpSession.
`void` | `valueUnbound(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 String DEF_CACHE_NAME

  The default name of the NodeCache.

  When the `getNodeCache(javax.servlet.jsp.PageContext, int, boolean)` method is used, this is the name which will used.

  See Also:
    Constant Field Values

### nodeCache

    protected Map nodeCache

  The cache to NodeHolder.

Constructor Detail

### NodeCache

    public NodeCache()

  Constructor.

Method Detail

### getNodes

    public Node[] getNodes(String id,
                           long timeout)

  Check the cache for the nodes.

  Getting nodes from the cache does not update its time in terms of a timeout. Only using the `update(java.lang.String, com.bea.content.Node[])` method to update the cache will do that.

  Parameters:
    `id` - the cache id of the nodes.
    `timeout` - the timeout in ms. for the nodes (less than 0 for no timeout).
  Returns:
    the array of nodes, or null if not found or has timed out.

### getNode

    public Node getNode(String id,
                        long timeout)

  Check the cache for the node.

  Getting a node from the cache does not update its time in terms of a timeout. Only using the `update(java.lang.String, com.bea.content.Node[])` method to update the cache will do that.

  Parameters:
    `id` - the cache id of the node.
    `timeout` - the timeout in ms. for the nodes (less than 0 for no timeout).
  Returns:
    the Node, or null if not found or has timed out.

### getCachedTime

    public long getCachedTime(String id)

  Get the UTC time (in ms.) of when the nodes at id were cached.

  Parameters:
    `id` - the cache id of the nodes.
  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 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 nodes objects cached (across all ids).

### update

    public void update(String id,
                       Node[] nodes)

  Update the cache with the nodes.

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

  Parameters:
    `id` - cache id of the nodes.
    `nodes` - the nodes (null to remove).

### update

    public void update(String id,
                       Node node)

  Update the cache with the Node.

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

  Parameters:
    `id` - cache id of the Node.
    `node` - the Node (null to remove).

### remove

    public Node[] remove(String id)

  Clear a particular entry from the cache.

  Parameters:
    `id` - the cache id of the nodes.
  Returns:
    the cached nodes at the id, or null if none.

### clear

    public void clear()

  Clear the entire cache.

### valueBound

    public void valueBound(HttpSessionBindingEvent evt)

  Called when we're bound into an HttpSession.

  Specified by:
    `valueBound` in interface `HttpSessionBindingListener`

### valueUnbound

    public void valueUnbound(HttpSessionBindingEvent evt)

  Called when we're unbound from an HttpSession, and clears the cache.

  Specified by:
    `valueUnbound` in interface `HttpSessionBindingListener`
  See Also:
    `clear()`

### bindToSession

    public static void bindToSession(NodeCache cache,
                                     HttpSession session)

  Bind a NodeCache to an HttpSession.

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

  Parameters:
    `cache` - the nodes cache object.
    `session` - the http session.

### getFromSession

    public static NodeCache getFromSession(HttpSession session,
                                           boolean create)

  Get a NodeCache from an HttpSession.

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

  Parameters:
    `session` - the http session.
    `create` - true to create a NodeCache, 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.

### getNodeCache

    public static NodeCache getNodeCache(PageContext ctx,
                                         int scope,
                                         boolean create)

  Get a NodeCache from the specified JSP context.

  This will retrieve the NodeCache from the JSP context based upon the specified scope at the attribute named `DEF_CACHE_NAME`. If that is set and is not a NodeCache 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 NodeCache 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.

### getNodeCache

    public static NodeCache getNodeCache(PageContext ctx,
                                         String scopeStr,
                                         boolean create)

  Get a NodeCache 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 NodeCache 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 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).

### setAttribute

    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).

### removeAttribute

    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).

### getScopeName

    public static String getScopeName(int scope)

  Get the scope name based upon the scope id.

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

Copyright © 2003 BEA Systems, Inc. All Rights Reserved