java.lang.Object
org.apache.jackrabbit.oak.plugins.observation.filter.UniversalFilter
All Implemented Interfaces:
EventFilter

public class UniversalFilter extends Object implements EventFilter
An universal Filter implementation, which can be parametrised by a UniversalFilter.Selector and a Predicate. The selector maps a call back on this filter to a NodeState. That node state is in turn passed to the predicate for determining whether to include or to exclude the respective event.
  • Constructor Details

    • UniversalFilter

      public UniversalFilter(@NotNull @NotNull NodeState before, @NotNull @NotNull NodeState after, @NotNull @NotNull UniversalFilter.Selector selector, @NotNull @NotNull Predicate<NodeState> predicate)
      Create a new instance of an universal filter rooted at the passed trees.
      Parameters:
      before - before state
      after - after state
      selector - selector for selecting the tree to match the predicate against
      predicate - predicate for determining whether to include or to exclude an event
  • Method Details

    • getBeforeState

      @NotNull public @NotNull NodeState getBeforeState()
      Returns:
      before state for this filter
    • getAfterState

      @NotNull public @NotNull NodeState getAfterState()
      Returns:
      after state for this filter
    • includeAdd

      public boolean includeAdd(PropertyState after)
      Description copied from interface: EventFilter
      Include an added property
      Specified by:
      includeAdd in interface EventFilter
      Parameters:
      after - added property
      Returns:
      true if the property should be included
    • includeChange

      public boolean includeChange(PropertyState before, PropertyState after)
      Description copied from interface: EventFilter
      Include a changed property
      Specified by:
      includeChange in interface EventFilter
      Parameters:
      before - property before the change
      after - property after the change
      Returns:
      true if the property should be included
    • includeDelete

      public boolean includeDelete(PropertyState before)
      Description copied from interface: EventFilter
      Include a deleted property
      Specified by:
      includeDelete in interface EventFilter
      Parameters:
      before - deleted property
      Returns:
      true if the property should be included
    • includeAdd

      public boolean includeAdd(String name, NodeState after)
      Description copied from interface: EventFilter
      Include an added node
      Specified by:
      includeAdd in interface EventFilter
      Parameters:
      name - name of the node
      after - added node
      Returns:
      true if the node should be included
    • includeDelete

      public boolean includeDelete(String name, NodeState before)
      Description copied from interface: EventFilter
      Include a deleted node
      Specified by:
      includeDelete in interface EventFilter
      Parameters:
      name - name of the node
      before - deleted node
      Returns:
      true if the node should be included
    • includeMove

      public boolean includeMove(String sourcePath, String name, NodeState moved)
      Description copied from interface: EventFilter
      Include a moved node
      Specified by:
      includeMove in interface EventFilter
      Parameters:
      sourcePath - source path of the move operation
      name - name of the moved node
      moved - the moved node
      Returns:
      true if the node should be included
    • includeReorder

      public boolean includeReorder(String destName, String name, NodeState reordered)
      Description copied from interface: EventFilter
      Include a reordered node
      Specified by:
      includeReorder in interface EventFilter
      Parameters:
      destName - name of the orderBefore() destination node
      name - name of the reordered node
      reordered - the reordered node
      Returns:
      true if the node should be included
    • create

      public EventFilter create(String name, NodeState before, NodeState after)
      Description copied from interface: EventFilter
      Factory for creating a filter instance for the given child node
      Specified by:
      create in interface EventFilter
      Parameters:
      name - name of the child node
      before - before state of the child node
      after - after state of the child node
      Returns:
      filter instance for filtering the child node or null to exclude the sub tree rooted at this child node.