Package org.ametys.web.cache.pageelement
Class InvalidatePageElementCacheObserver
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.ametys.web.cache.pageelement.InvalidatePageElementCacheObserver
-
- All Implemented Interfaces:
Observer
,Configurable
,LogEnabled
,Serviceable
public class InvalidatePageElementCacheObserver extends AbstractLogEnabled implements Observer, Serviceable, Configurable
Handles thePageElementCache
based on the variousPageElementCachePolicy
.
-
-
Field Summary
Fields Modifier and Type Field Description private ServiceManager
_manager
private PageElementCache
_pageElementCache
private PageElementCachePolicyExtensionPoint
_pageElementCachePolicyExtensionPoint
private SiteManager
_siteManager
-
Fields inherited from interface org.ametys.core.observation.Observer
MAX_PRIORITY, MIN_PRIORITY
-
-
Constructor Summary
Constructors Constructor Description InvalidatePageElementCacheObserver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
_doObserve(String workspace, Site site, Event event)
private Set<PageElementCachePolicy>
_firstPass(Set<PageElementCachePolicy> policies, String workspace, Site site, String pageElementType, Event event)
private Site
_getSite(Event event)
private void
_removeItemIfNecessary(String workspace, String pageElementType, String elementId, String siteName, boolean hasAtLeastOneRemove, boolean hasAtLeastOneKeep, boolean hasAtLeastOneNeedInfo)
private void
_secondPass(Set<PageElementCachePolicy> policies, String workspace, Site site, String pageElementType, String elementId, Event event)
void
configure(Configuration configuration)
int
getPriority(Event event)
Retrieves the priority to observe this event.
This can be used to process a supported event before others observers.void
observe(Event event, Map<String,Object> transientVars)
Observes an event.void
service(ServiceManager manager)
boolean
supports(Event event)
Checks if the event is supported.-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
-
-
-
Field Detail
-
_manager
private ServiceManager _manager
-
_pageElementCache
private PageElementCache _pageElementCache
-
_pageElementCachePolicyExtensionPoint
private PageElementCachePolicyExtensionPoint _pageElementCachePolicyExtensionPoint
-
_siteManager
private SiteManager _siteManager
-
-
Constructor Detail
-
InvalidatePageElementCacheObserver
public InvalidatePageElementCacheObserver()
-
-
Method Detail
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
configure
public void configure(Configuration configuration) throws ConfigurationException
- Specified by:
configure
in interfaceConfigurable
- Throws:
ConfigurationException
-
getPriority
public int getPriority(Event event)
Description copied from interface:Observer
Retrieves the priority to observe this event.
This can be used to process a supported event before others observers.- Specified by:
getPriority
in interfaceObserver
- Parameters:
event
- the event.- Returns:
- the priority where 0 the max priority and Integer.MAX_VALUE the min priority.
-
supports
public boolean supports(Event event)
Description copied from interface:Observer
Checks if the event is supported. If true, the observe(Event) method will be called.
-
observe
public void observe(Event event, Map<String,Object> transientVars) throws Exception
Description copied from interface:Observer
Observes an event.- Specified by:
observe
in interfaceObserver
- Parameters:
event
- the event.transientVars
- transientVars passed from one Observer to another when processing a single Event. This may allow optimizations between observers.- Throws:
Exception
- if an error occurs. All exceptions will be logged but not propagated, as the observation mechanism should never fail.
-
_doObserve
private void _doObserve(String workspace, Site site, Event event)
-
_firstPass
private Set<PageElementCachePolicy> _firstPass(Set<PageElementCachePolicy> policies, String workspace, Site site, String pageElementType, Event event)
-
_secondPass
private void _secondPass(Set<PageElementCachePolicy> policies, String workspace, Site site, String pageElementType, String elementId, Event event)
-
_removeItemIfNecessary
private void _removeItemIfNecessary(String workspace, String pageElementType, String elementId, String siteName, boolean hasAtLeastOneRemove, boolean hasAtLeastOneKeep, boolean hasAtLeastOneNeedInfo)
-
-