A document has been updated:

http://cocoon.zones.apache.org/daisy/documentation/675.html

Document ID: 675
Branch: main
Language: default
Name: CacheableProcessingComponent Contracts (unchanged)
Document Type: Cocoon Document (unchanged)
Updated on: 7/2/07 8:01:09 PM
Updated by: Reinhard Pötz

A new version has been created, state: publish

Parts
=====

Content
-------
This part has been updated.
Mime type: text/xml (unchanged)
File name:  (unchanged)
Size: 8871 bytes (previous version: 8826 bytes)
Content diff:
(31 equal lines skipped)
    method).</li>
    <li>It must be Immutable--the key is used as a lookup value.</li>
    <li>It must be Unique within the space of the component (i.e. the key "1" 
for
--- MyCacheableComponent must be for the same resource every time, but we don't 
have
--- to worry about the key "1" for YourCacheableComponent).</li>
+++ <tt>MyCacheableComponent </tt>must be for the same resource every time, but 
we
+++ don't have to worry about the key "1" for YourCacheableComponent).</li>
    <li>The <tt>equals()</tt> and <tt><tt><tt>hashCode()</tt></tt></tt> methods 
must
    be consistent (i.e. if two keys are equal, the hashCode must also be equal).
    </li>
(23 equal lines skipped)
    <p>The SourceValidity interface provides two <tt>isValid()</tt> methods, 
which
    are used to check the validity of a source. The first call is to the version
    without parameters, which the SourceValidity will return
--- <tt>SourceValidity.VALID</tt>,
--- <tt><tt><tt>SourceValidity.UNKNOWN</tt></tt></tt>, or
+++ <tt>SourceValidity.VALID</tt>, <tt>SourceValidity.UNKNOWN</tt>, or
    <tt>SourceValidity.INVALID</tt>. If the first call responds with
    <tt>SourceValidity.UNKNOWN</tt>, then a new SourceValidity object is 
obtained
    from the CacheableProcessingComponent and that is passed into the
(11 equal lines skipped)
    component are (in the order of commonality):</p>
    
    <ul>
--- <li>NOPValidity--always valid</li>
--- <li>TimeStampValidity--valid until a newer timestamp is found
+++ <li><tt>NOPValidity</tt>--always valid</li>
+++ <li><tt>TimeStampValidity</tt>--valid until a newer timestamp is found
    (System.currentTimeMillis())</li>
--- <li>ExpiresValidity--valid until the expiration date is reached
+++ <li><tt>ExpiresValidity</tt>--valid until the expiration date is reached
    (System.currentTimeMillis() + time)</li>
--- <li>FileTimestampValidity--valid until the referenced file changes</li>
--- <li>AggregatedValidity--a compound validity object that is valid as long as 
all
--- the encapsulated validity objects are valid</li>
--- <li>DeferredAggregatedValidity--a compound validity object that only gets
--- validity objects if they are needed.</li>
+++ <li><tt>FileTimestampValidity</tt>--valid until the referenced file 
changes</li>
+++ <li><tt>AggregatedValidity</tt>--a compound validity object that is valid as
+++ long as all the encapsulated validity objects are valid</li>
+++ <li><tt>DeferredAggregatedValidity</tt>--a compound validity object that 
only
+++ gets validity objects if they are needed.</li>
    </ul>
    
    <h3>NOPValidity</h3>
(100 equal lines skipped)