|
© 2004 BEA Systems, Inc. | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.bea.content.manager.servlets.NodeCache
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".>
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 |
public static final String DEF_CACHE_NAME
When the getNodeCache(javax.servlet.jsp.PageContext, int, boolean)
method is used,
this is the name which will used.
protected Map nodeCache
Constructor Detail |
public NodeCache()
Method Detail |
public static void bindToSession(NodeCache cache, HttpSession session)
This will use DEF_CACHE_NAME
as the session
attribute name for the cache.
cache
- the nodes cache object.session
- the http session.public void clear()
public static Object getAttribute(PageContext ctx, String name, int scope)
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).public long getCachedTime(String id)
id
- the cache id of the nodes.
public List getCacheIds()
Since the keys will all be Strings, this can be sorted with
Collections.sort(java.util.List)
.
public long getCacheSize()
public static NodeCache getFromSession(HttpSession session, boolean create)
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.
session
- the http session.create
- true to create a NodeCache, if it's not there, false to
not and return null.
public Node getNode(String id, long timeout)
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.
id
- the cache id of the node.timeout
- the timeout in ms. for the nodes (less than 0 for no timeout).
public static NodeCache getNodeCache(PageContext ctx, int scope, boolean create)
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.
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.
public static NodeCache getNodeCache(PageContext ctx, String scopeStr, boolean create)
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.
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.
public Node[] getNodes(String id, long timeout)
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.
id
- the cache id of the nodes.timeout
- the timeout in ms. for the nodes (less than 0 for no timeout).
public int getNumCacheIds()
public static String getScopeName(int scope)
public Node[] remove(String id)
id
- the cache id of the nodes.
public static void removeAttribute(PageContext ctx, String name, int scope)
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).public static void setAttribute(PageContext ctx, String name, Object val, int scope)
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).public void update(String id, Node node)
This can be used for new or existing Nodes in the cache.
id
- cache id of the Node.node
- the Node (null to remove).public void update(String id, Node[] nodes)
This can be used for new or existing nodes in the cache.
id
- cache id of the nodes.nodes
- the nodes (null to remove).public void valueBound(HttpSessionBindingEvent evt)
valueBound
in interface HttpSessionBindingListener
public void valueUnbound(HttpSessionBindingEvent evt)
valueUnbound
in interface HttpSessionBindingListener
clear()
|
© 2004 BEA Systems, Inc. | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |