Package org.apache.tapestry5.internal.event

# Class InvalidationEventHubImpl

java.lang.Object
org.apache.tapestry5.internal.event.InvalidationEventHubImpl

All Implemented Interfaces:
  `InvalidationEventHub`

Direct Known Subclasses:
  `ComponentTemplateSourceImpl`, `InternalComponentInvalidationEventHubImpl`, `MessagesSourceImpl`, `ResourceChangeTrackerImpl`

public class InvalidationEventHubImpl extends Object implements InvalidationEventHub
Base implementation class for classes (especially services) that need to manage a list of `InvalidationListener`s.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `InvalidationEventHubImpl(boolean productionMode, org.slf4j.Logger logger)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final void`
  `addInvalidationCallback(Runnable callback)`
  Adds a callback that is invoked when an underlying tracked resource has changed.
  `void`
  `addInvalidationCallback(Function<List<String>,List<String>> callback)`
  Adds a callback, as a function that receives a list of strings and also returns a list of strings, that is invoked when one or more listed underlying tracked resource have changed.
  `final void`
  `addInvalidationListener(InvalidationListener listener)`
  Adds a listener, who needs to know when an underlying resource of a given category has changed (so that the receiver may discard any cached data that may have been invalidated).
  `final void`
  `clearOnInvalidation(Map<?,?> map)`
  Adds a callback that clears the map.
  `protected final void`
  `fireInvalidationEvent()`
  Notifies all listeners/callbacks.
  `final void`
  `fireInvalidationEvent(List<String> resources)`
  Notifies all listeners/callbacks.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### InvalidationEventHubImpl

    protected InvalidationEventHubImpl(boolean productionMode, org.slf4j.Logger logger)

- ## Method Details

  - ### fireInvalidationEvent

    protected final void fireInvalidationEvent()
    Notifies all listeners/callbacks.

  - ### fireInvalidationEvent

    public final void fireInvalidationEvent(List<String> resources)
    Notifies all listeners/callbacks.
    Specified by:
      `fireInvalidationEvent` in interface `InvalidationEventHub`

  - ### addInvalidationCallback

    public final void addInvalidationCallback(Runnable callback)
    Description copied from interface: `InvalidationEventHub`
    Adds a callback that is invoked when an underlying tracked resource has changed. Does nothing in production mode.
    Specified by:
      `addInvalidationCallback` in interface `InvalidationEventHub`

  - ### clearOnInvalidation

    public final void clearOnInvalidation(Map<?,?> map)
    Description copied from interface: `InvalidationEventHub`
    Adds a callback that clears the map.
    Specified by:
      `clearOnInvalidation` in interface `InvalidationEventHub`

  - ### addInvalidationListener

    public final void addInvalidationListener(InvalidationListener listener)
    Description copied from interface: `InvalidationEventHub`
    Adds a listener, who needs to know when an underlying resource of a given category has changed (so that the receiver may discard any cached data that may have been invalidated). Does nothing in production mode.
    Specified by:
      `addInvalidationListener` in interface `InvalidationEventHub`

  - ### addInvalidationCallback

    public void addInvalidationCallback(Function<List<String>,List<String>> callback)
    Description copied from interface: `InvalidationEventHub`
    Adds a callback, as a function that receives a list of strings and also returns a list of strings, that is invoked when one or more listed underlying tracked resource have changed. An empty list should be considered as all resources being changed and any caches needing to be cleared. The return value of the function should be a non-null, but possibly empty, list of other resources that also need to be invalidated in a recursive fashion. This method does nothing in production mode.
    Specified by:
      `addInvalidationCallback` in interface `InvalidationEventHub`