org.mmbase.cache
Class ChainedReleaseStrategy

java.lang.Object
  extended byorg.mmbase.cache.ReleaseStrategy
      extended byorg.mmbase.cache.ChainedReleaseStrategy

public class ChainedReleaseStrategy
extends ReleaseStrategy

This class will manage a collection of ReleaseStrategy instances, and call them hierarchically.

Since:
MMBase-1.8
Version:
$Id: ChainedReleaseStrategy.java,v 1.18 2006/06/27 07:31:46 michiel Exp $
Author:
Ernst Bunders

Nested Class Summary
 
Nested classes inherited from class org.mmbase.cache.ReleaseStrategy
ReleaseStrategy.StrategyResult, ReleaseStrategy.Timer
 
Constructor Summary
ChainedReleaseStrategy()
           
 
Method Summary
 void addReleaseStrategy(ReleaseStrategy strategy)
          Adds the strategy if it is not already there.
 void clear()
           
protected  boolean doEvaluate(NodeEvent event, SearchQuery query, List cachedResult)
          implement this method to create your own strategy.
protected  boolean doEvaluate(RelationEvent event, SearchQuery query, List cachedResult)
          implement this method to create your own strategy.
 String getDescription()
           
 String getName()
           
 Iterator iterator()
           
 void removeAllStrategies()
          removes all strategies
 void removeStrategy(ReleaseStrategy strategy)
           
 void setEnabled(boolean newStatus)
          This method provides a way of globally switching off all strategies this one wraps.
 int size()
           
 String toString()
           
 
Methods inherited from class org.mmbase.cache.ReleaseStrategy
equals, evaluate, evaluate, getAvgEvaluationTimeInMilis, getConstraintsForField, getFieldSteps, getSortordersForField, getTotalEvaluated, getTotalEvaluationTimeMillis, getTotalPreserved, hashCode, isEnabled
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ChainedReleaseStrategy

public ChainedReleaseStrategy()
Method Detail

setEnabled

public void setEnabled(boolean newStatus)
This method provides a way of globally switching off all strategies this one wraps. When this strategy is set to 'disabled', the state of all wrapped strategies is being preserved, so when it is being 'enabled' again, these settings are restored, in stead of just setting all wrapped strategies to 'enabled'.

Overrides:
setEnabled in class ReleaseStrategy

addReleaseStrategy

public void addReleaseStrategy(ReleaseStrategy strategy)
Adds the strategy if it is not already there. Strategies should only occur once.

Parameters:
strategy -

removeStrategy

public void removeStrategy(ReleaseStrategy strategy)

removeAllStrategies

public void removeAllStrategies()
removes all strategies


getName

public String getName()
Specified by:
getName in class ReleaseStrategy

getDescription

public String getDescription()
Specified by:
getDescription in class ReleaseStrategy

iterator

public Iterator iterator()

doEvaluate

protected final boolean doEvaluate(NodeEvent event,
                                   SearchQuery query,
                                   List cachedResult)
Description copied from class: ReleaseStrategy
implement this method to create your own strategy.

Specified by:
doEvaluate in class ReleaseStrategy
Parameters:
event - a node event
query -
cachedResult -
Returns:
true if the cache entry should be released

doEvaluate

protected final boolean doEvaluate(RelationEvent event,
                                   SearchQuery query,
                                   List cachedResult)
Description copied from class: ReleaseStrategy
implement this method to create your own strategy.

Specified by:
doEvaluate in class ReleaseStrategy
Parameters:
event - a relation event
query -
cachedResult -
Returns:
true if the cache entry should be released

clear

public void clear()
Overrides:
clear in class ReleaseStrategy

size

public int size()
Since:
MMBase-1.8.1

toString

public String toString()
Overrides:
toString in class ReleaseStrategy


MMBase build 1.8.1.20060716