Class OakEventFilterImpl


public class OakEventFilterImpl extends OakEventFilter
Implements OakEventFilter which is an extension to the JackrabbitEventFilter with features only supported by Oak.
  • Constructor Details

  • Method Details

    • getAbsPath

      public String getAbsPath()
      Description copied from class: JackrabbitEventFilter
      Returns the absPath parameter of the filter.
      Overrides:
      getAbsPath in class JackrabbitEventFilter
      Returns:
      a String.
    • setAbsPath

      public JackrabbitEventFilter setAbsPath(String absPath)
      Description copied from class: JackrabbitEventFilter
      Sets the absPath parameter of the filter. If left unset, this parameter defaults to null.
      Overrides:
      setAbsPath in class JackrabbitEventFilter
      Parameters:
      absPath - an absolute path String.
      Returns:
      This EventFilter object with the absPath parameter set.
    • getAdditionalPaths

      public String[] getAdditionalPaths()
      Description copied from class: JackrabbitEventFilter
      Returns the absPaths parameter of the filter.
      Overrides:
      getAdditionalPaths in class JackrabbitEventFilter
      Returns:
      a String array.
    • setAdditionalPaths

      public JackrabbitEventFilter setAdditionalPaths(String... absPaths)
      Description copied from class: JackrabbitEventFilter
      Sets the absPaths parameter of the filter. If left unset, this parameter defaults to an empty array.
      Overrides:
      setAdditionalPaths in class JackrabbitEventFilter
      Parameters:
      absPaths - an absolute path String array.
      Returns:
      This EventFilter object with the absPaths parameter set.
    • getEventTypes

      public int getEventTypes()
      Description copied from class: JackrabbitEventFilter
      Returns the eventTypes parameter of the filter.
      Overrides:
      getEventTypes in class JackrabbitEventFilter
      Returns:
      an int.
    • setEventTypes

      public JackrabbitEventFilter setEventTypes(int eventTypes)
      Description copied from class: JackrabbitEventFilter
      Sets the eventTypes parameter of the filter. If left unset, this parameter defaults to 0.
      Overrides:
      setEventTypes in class JackrabbitEventFilter
      Parameters:
      eventTypes - an int.
      Returns:
      This EventFilter object with the eventTypes parameter set.
    • getExcludedPaths

      public String[] getExcludedPaths()
      Description copied from class: JackrabbitEventFilter
      Returns the excludedPaths parameter of the filter.
      Overrides:
      getExcludedPaths in class JackrabbitEventFilter
      Returns:
      a String array.
    • setExcludedPaths

      public JackrabbitEventFilter setExcludedPaths(String... excludedPaths)
      Description copied from class: JackrabbitEventFilter
      Sets the excludedPaths parameter of the filter. If left unset, this parameter defaults to an empty array.
      Overrides:
      setExcludedPaths in class JackrabbitEventFilter
      Parameters:
      excludedPaths - an absolute path String array.
      Returns:
      This EventFilter object with the excludedPaths parameter set.
    • getIdentifiers

      public String[] getIdentifiers()
      Description copied from class: JackrabbitEventFilter
      Returns the uuids parameter of the filter.
      Overrides:
      getIdentifiers in class JackrabbitEventFilter
      Returns:
      a String array.
    • setIdentifiers

      public JackrabbitEventFilter setIdentifiers(String[] identifiers)
      Description copied from class: JackrabbitEventFilter
      Sets the identifiers parameter of the filter. If left unset, this parameter defaults to null.
      Overrides:
      setIdentifiers in class JackrabbitEventFilter
      Parameters:
      identifiers - a String array.
      Returns:
      This EventFilter object with the identifiers parameter set.
    • getIsDeep

      public boolean getIsDeep()
      Description copied from class: JackrabbitEventFilter
      Returns the isDeep parameter of the filter.
      Overrides:
      getIsDeep in class JackrabbitEventFilter
      Returns:
      a boolean.
    • setIsDeep

      public JackrabbitEventFilter setIsDeep(boolean isDeep)
      Description copied from class: JackrabbitEventFilter
      Sets the isDeep parameter of the filter. If left unset, this parameter defaults to false.
      Overrides:
      setIsDeep in class JackrabbitEventFilter
      Parameters:
      isDeep - a boolean.
      Returns:
      This EventFilter object with the isDeep parameter set.
    • getNodeTypes

      public String[] getNodeTypes()
      Description copied from class: JackrabbitEventFilter
      Returns the nodeTypeName parameter of the filter.
      Overrides:
      getNodeTypes in class JackrabbitEventFilter
      Returns:
      a String array.
    • setNodeTypes

      public JackrabbitEventFilter setNodeTypes(String[] nodeTypeNames)
      Description copied from class: JackrabbitEventFilter
      Sets the nodeTypeNames parameter of the filter. If left unset, this parameter defaults to null.
      Overrides:
      setNodeTypes in class JackrabbitEventFilter
      Parameters:
      nodeTypeNames - a String array.
      Returns:
      This EventFilter object with the nodeTypes parameter set.
    • getNoExternal

      public boolean getNoExternal()
      Description copied from class: JackrabbitEventFilter
      Returns the noExternal parameter of the filter.
      Overrides:
      getNoExternal in class JackrabbitEventFilter
      Returns:
      a boolean.
    • setNoExternal

      public JackrabbitEventFilter setNoExternal(boolean noExternal)
      Description copied from class: JackrabbitEventFilter
      Sets the noExternal parameter of the filter. If left unset, this parameter defaults to false.
      Overrides:
      setNoExternal in class JackrabbitEventFilter
      Parameters:
      noExternal - a boolean.
      Returns:
      This EventFilter object with the noExternal parameter set.
    • getNoInternal

      public boolean getNoInternal()
      Description copied from class: JackrabbitEventFilter
      Returns the noInternal parameter of the filter.
      Overrides:
      getNoInternal in class JackrabbitEventFilter
      Returns:
      a boolean.
    • setNoInternal

      public JackrabbitEventFilter setNoInternal(boolean noInternal)
      Description copied from class: JackrabbitEventFilter
      Sets the noInternal parameter of the filter. If left unset, this parameter defaults to false.
      Overrides:
      setNoInternal in class JackrabbitEventFilter
      Parameters:
      noInternal - a boolean.
      Returns:
      This EventFilter object with the noExternal parameter set.
    • getNoLocal

      public boolean getNoLocal()
      Description copied from class: JackrabbitEventFilter
      Returns the noLocal parameter of the filter.
      Overrides:
      getNoLocal in class JackrabbitEventFilter
      Returns:
      a boolean.
    • setNoLocal

      public JackrabbitEventFilter setNoLocal(boolean noLocal)
      Description copied from class: JackrabbitEventFilter
      Sets the noLocal parameter of the filter. If left unset, this parameter defaults to false.
      Overrides:
      setNoLocal in class JackrabbitEventFilter
      Parameters:
      noLocal - a boolean.
      Returns:
      This EventFilter object with the noLocal parameter set.
    • withApplyNodeTypeOnSelf

      public OakEventFilter withApplyNodeTypeOnSelf()
      Description copied from class: OakEventFilter
      This causes the node type filter to be applied on 'this' node instead of the 'parent' node, thus allows to create a filter which listens on adding/removing/etc on nodes of a particular node type (while the default was that the node type was applicable on the parent).

      Note that this is an 'either/or' thing: either the node type is applied on the parent (default) or on 'self/this' (via this switch) but not both.

      Also note that this is independent from the nodeTypeAggregate, and will only be applied to the (main) node types set on this filter, not on the nodeTypeAggregate's node types.

      Specified by:
      withApplyNodeTypeOnSelf in class OakEventFilter
      Returns:
      this filter with the filter change applied
    • withIncludeAncestorsRemove

      public OakEventFilter withIncludeAncestorsRemove()
      Description copied from class: OakEventFilter
      This causes the registration of independent, additional !deep NODE_REMOVED filter-conditions of all parents of the include paths (both normal and glob). (These additional filter-conditions are added in 'OR' mode to the otherwise resulting filter-conditions, thus you can still have an independent deep/!deep flag too)
      • include path /a/b/c/d results in additional !deep NODE_REMOVED filters on /a/b/c, on /a/b and on /a
      • include path /a/b/** results in additional !deep NODE_REMOVED filter on /a, /a/b and /a/b/**
      • include path /a/b/**/*.jsp results in additional deep NODE_REMOVED filter on /a, /a/b and /a/b/**
        Note that this and the above result in the same additional include paths since all this includeAncestorsRemove flag does is include potential ancestors, it doesn't guarantee that there are children matching the given paths (eg it doesn't traverse down)
      • additionally for paths with globs (eg /a/b/**/*.jsp) it adds a deep NODE_REMOVED filter explicitly for that path using the same method as withIncludeSubtreeOnRemove does, but only limited to said path. So in this case you get a NODE_REMOVED for all *.jsp that are deleted in a subtree individually

      Note that unlike 'normal' include and exclude paths, this variant doesn't apply Oak's NamePathMapper on the ancestors of the registers paths.

      Also note that this might disable 'observation prefiltering based on paths' (OAK-4796) on this listener.

      Specified by:
      withIncludeAncestorsRemove in class OakEventFilter
      Returns:
      this filter with the filter change applied
    • wrapMainCondition

      public FilterBuilder.Condition wrapMainCondition(FilterBuilder.Condition mainCondition, FilterBuilder filterBuilder, PermissionProviderFactory permissionProviderFactory)
    • withIncludeSubtreeOnRemove

      public OakEventFilter withIncludeSubtreeOnRemove()
      Description copied from class: OakEventFilter
      This flag causes remove events to be sent for all nodes and properties of an entire subtree (hence use with care!).

      It is only applied when a parent node is actually removed. For a parent node move this is not applied.

      Specified by:
      withIncludeSubtreeOnRemove in class OakEventFilter
      Returns:
      this filter with the filter change applied
    • withIncludeGlobPaths

      public OakEventFilter withIncludeGlobPaths(String... globPaths)
      Description copied from class: OakEventFilter
      Adds the provided glob paths to the set of include paths.

      The definition of a glob path is here

      Note that unlike 'normal' include and exclude paths, this variant doesn't apply Oak's NamePathMapper.

      This filter property is added in 'or' mode.

      Specified by:
      withIncludeGlobPaths in class OakEventFilter
      Parameters:
      globPaths - glob paths that should be added as include path pattern. Note that the NamePathMapper is not applied on these globPaths.
      Returns:
      this filter with the filter change applied
    • builder

      public FilterBuilder builder()
    • aggregator

      public OakEventFilterImpl aggregator(EventAggregator aggregator)
    • getAdditionalIncludeConditions

      public FilterBuilder.Condition getAdditionalIncludeConditions(Set<String> includePaths)
    • getAggregator

      public EventAggregator getAggregator()
    • withNodeTypeAggregate

      public OakEventFilter withNodeTypeAggregate(String[] nodeTypes, String[] relativeGlobPaths)
      Description copied from class: OakEventFilter
      Greedy aggregating filter which upon first (hence greedy) hit of provided nodeTypes checks if the child subtree leading to the actual change matches any of the provided relativeGlobPaths.

      Note that unlike 'normal' include and exclude paths, this variant doesn't apply Oak's NamePathMapper.

      This filter property is added in 'and' mode.

      Specified by:
      withNodeTypeAggregate in class OakEventFilter
      Parameters:
      nodeTypes - note that these nodeTypes are not mapped to oak nor validated
      relativeGlobPaths - glob paths that are added to the set of include paths. To match the node with the desired node type itself, add an empty String ("") as one of the relativeGlobPaths too. Note that Oak's NamePathMapper is not applied to these relativeGlobPaths.
      Returns:
      this filter with the filter change applied