|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opencms.flex.CmsFlexCacheEntry
public class CmsFlexCacheEntry
Contains the contents of a cached resource.
It is basically a list of pre-generated output, include() calls to other resources (with request parameters) and http headers that this resource requires to be set.
A CmsFlexCacheEntry might also describe a redirect-call, but in this case nothing else will be cached.
The pre-generated output is saved in byte[]
arrays.
The include() calls are saved as Strings of the included resource name,
the parameters for the calls are saved in a HashMap.
The headers are saved in a HashMap.
In case of a redirect, the redirect target is cached in a String.
The CmsFlexCacheEntry can also have an expire date value, which indicates the time that his entry will become invalid and should thus be cleared from the cache.
I_CmsLruCacheObject
Field Summary | |
---|---|
static int |
INITIAL_CAPACITY_LISTS
Initial size for lists. |
Constructor Summary | |
---|---|
CmsFlexCacheEntry()
Constructor for class CmsFlexCacheEntry. |
Method Summary | |
---|---|
void |
add(byte[] bytes)
Adds an array of bytes to this cache entry, this will usually be the result of some kind of output - stream. |
void |
add(java.lang.String resource,
java.util.Map parameters)
Add an include - call target resource to this cache entry. |
void |
addHeaders(java.util.Map headers)
Add a map of headers to this cache entry, which are usually collected in the class CmsFlexResponse first. |
void |
addToLruCache()
Invoked after an object was added to the cache. |
void |
complete()
Completes this cache entry. |
java.util.List |
elements()
Returns the list of data entries of this cache entry. |
long |
getDateExpires()
Returns the expiration date of this cache entry, this is set to the time when the entry becomes invalid. |
long |
getDateLastModified()
Returns the "last modified" date for this Flex cache entry. |
int |
getLruCacheCosts()
Returns the cache costs of this object, as for example it's byte size. |
int |
getMemorySize()
Returns the memory size of the object. |
I_CmsLruCacheObject |
getNextLruObject()
Returns the next object in the double linked list of all cached objects. |
I_CmsLruCacheObject |
getPreviousLruObject()
Returns the previous object in the double linked list of all cached objects. |
java.lang.Object |
getValue()
Returns the Object value. |
void |
removeFromLruCache()
Invoked after the object was removed to the cache. |
void |
service(CmsFlexRequest req,
CmsFlexResponse res)
Processing method for this cached entry. |
void |
setDateExpires(long dateExpires)
Sets the expiration date of this Flex cache entry exactly to the given time. |
void |
setDateExpiresToNextTimeout(long timeout)
Sets an expiration date for this cache entry to the next timeout, which indicates the time this entry becomes invalid. |
void |
setDateLastModified(long dateLastModified)
Sets the "last modified" date for this Flex cache entry with the given value. |
void |
setDateLastModifiedToPreviousTimeout(long timeout)
Sets the "last modified" date for this Flex cache entry by using the last passed timeout value. |
void |
setNextLruObject(I_CmsLruCacheObject theNextEntry)
Set the next object in the double linked list of all cached objects. |
void |
setPreviousLruObject(I_CmsLruCacheObject thePreviousEntry)
Set the previous object in the double linked list of all cached objects. |
void |
setRedirect(java.lang.String target)
Set a redirect target for this cache entry. |
void |
setVariationData(java.lang.String theVariationKey,
java.util.Map theVariationMap)
Stores a backward reference to the map and key where this cache entry is stored. |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int INITIAL_CAPACITY_LISTS
Constructor Detail |
---|
public CmsFlexCacheEntry()
The way to use this class is to first use this empty constructor and later add data with the various add methods.
Method Detail |
---|
public void add(byte[] bytes)
bytes
- the output to save in the cachepublic void add(java.lang.String resource, java.util.Map parameters)
resource
- a name of a resource in the OpenCms VFSparameters
- a map of parameters specific to this include callpublic void addHeaders(java.util.Map headers)
headers
- the map of headers to add to the entrypublic void addToLruCache()
I_CmsLruCacheObject
addToLruCache
in interface I_CmsLruCacheObject
I_CmsLruCacheObject.addToLruCache()
public void complete()
A completed cache entry is made "unmodifiable", so that no further data can be added and existing data can not be changed.
This is to prevent the (unlikely) case that some user-written class tries to make changes to a cache entry.
public java.util.List elements()
Data entries are byte arrays representing some kind of output or Strings representing include calls to other resources.
public long getDateExpires()
public long getDateLastModified()
public int getLruCacheCosts()
I_CmsLruCacheObject
getLruCacheCosts
in interface I_CmsLruCacheObject
I_CmsLruCacheObject.getLruCacheCosts()
public int getMemorySize()
I_CmsMemoryMonitorable
getMemorySize
in interface I_CmsMemoryMonitorable
I_CmsMemoryMonitorable.getMemorySize()
public I_CmsLruCacheObject getNextLruObject()
I_CmsLruCacheObject
getNextLruObject
in interface I_CmsLruCacheObject
I_CmsLruCacheObject.getNextLruObject()
public I_CmsLruCacheObject getPreviousLruObject()
I_CmsLruCacheObject
getPreviousLruObject
in interface I_CmsLruCacheObject
I_CmsLruCacheObject.getPreviousLruObject()
public java.lang.Object getValue()
I_CmsLruCacheObject
getValue
in interface I_CmsLruCacheObject
I_CmsLruCacheObject.getValue()
public void removeFromLruCache()
I_CmsLruCacheObject
removeFromLruCache
in interface I_CmsLruCacheObject
I_CmsLruCacheObject.removeFromLruCache()
public void service(CmsFlexRequest req, CmsFlexResponse res) throws CmsFlexCacheException, javax.servlet.ServletException, java.io.IOException
If this method is called, it delivers the contents of the cached entry to the given request / response. This includes calls to all included resources.
req
- the request from the clientres
- the server response
CmsFlexCacheException
- is thrown when problems writing to the response output-stream occur
javax.servlet.ServletException
- might be thrown from call to RequestDispatcher.include()
java.io.IOException
- might be thrown from call to RequestDispatcher.include() or from Response.sendRedirect()public void setDateExpires(long dateExpires)
dateExpires
- the time to expire this cache entrypublic void setDateExpiresToNextTimeout(long timeout)
The timeout parameter represents the minute - interval in which the cache entry is to be cleared. The interval always starts at 0.00h. A value of 60 would indicate that this entry will reach it's expiration date at the beginning of the next full hour, a timeout of 20 would indicate that the entry is invalidated at x.00, x.20 and x.40 of every hour etc.
timeout
- the timeout value to be setpublic void setDateLastModified(long dateLastModified)
dateLastModified
- the value to set for the "last modified" datepublic void setDateLastModifiedToPreviousTimeout(long timeout)
If a cache entry uses the timeout feature, it becomes invalid every time the timeout interval passes. Thus the "last modified" date is the time the last timeout passed.
timeout
- the timeout value to use to calculate the date last modifiedpublic void setNextLruObject(I_CmsLruCacheObject theNextEntry)
I_CmsLruCacheObject
setNextLruObject
in interface I_CmsLruCacheObject
theNextEntry
- the next objectI_CmsLruCacheObject.setNextLruObject(org.opencms.cache.I_CmsLruCacheObject)
public void setPreviousLruObject(I_CmsLruCacheObject thePreviousEntry)
I_CmsLruCacheObject
setPreviousLruObject
in interface I_CmsLruCacheObject
thePreviousEntry
- the previous objectI_CmsLruCacheObject.setPreviousLruObject(org.opencms.cache.I_CmsLruCacheObject)
public void setRedirect(java.lang.String target)
Important: When a redirect target is set, all saved data is thrown away, and new data will not be saved in the cache entry. This is so since with a redirect nothing will be displayed in the browser anyway, so there is no point in saving the data.
target
- The redirect target (must be a valid URL).public void setVariationData(java.lang.String theVariationKey, java.util.Map theVariationMap)
This is required for the FlexCache.
theVariationKey
- the variation keytheVariationMap
- the variation mappublic java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |