Interface SearchIndexingPlanFilterContext


@Incubating public interface SearchIndexingPlanFilterContext
A context that helps with the indexing plan filter configuration.

Note that only indexed and contained types with their supertypes can be passed to this context's methods. Methods that accept classes as their parameters will not allow interfaces, even if they are among supertypes. Passing any other types will lead to an exception being thrown.

Object.class being a supertype to other types can be passed to context methods and will result in including/excluding all types with possible further fine-tuning using more specific types.

Include/exclude rules work as follows:

  • If the type A is explicitly included by the filter, then a change to an object that is exactly of an type A is processed.
  • If the type A is explicitly excluded by the filter, then a change to an object that is exactly of an type A is ignored.
  • If the type A is explicitly included by the filter, then a change to an object that is exactly of an type B, which is a subtype of the type A, is processed unless the filter explicitly excludes a more specific supertype of a type B.
  • If the type A is excluded by the filter explicitly, then a change to an object that is exactly of an type B, which is a subtype of the type A, is ignored unless the filter explicitly includes a more specific supertype of a type B.
  • On an attempt to both include and exclude the same type A an exception will be thrown.
  • By default, types are included unless any of previous include/exclude rules apply
  • Method Summary

    Modifier and Type
    Method
    Description
    exclude(Class<?> clazz)
    Specify an indexed/contained type (or its supertype class) to exclude, along with (unless specified otherwise) all its subtypes.
    Specify a name of an indexed/contained type (or a name of its named supertype) to exclude, along with (unless specified otherwise) all its subtypes.
    include(Class<?> clazz)
    Specify an indexed/contained type (or its supertype class) to include, along with (unless specified otherwise) all its subtypes.
    Specify a name of an indexed/contained type (or a name of its named supertype) to include, along with (unless specified otherwise) all its subtypes.
  • Method Details

    • include

      Specify a name of an indexed/contained type (or a name of its named supertype) to include, along with (unless specified otherwise) all its subtypes.
      Parameters:
      name - The name of a named type to include according to include/exclude rules.
      Returns:
      The same context, for chained calls.
      See Also:
    • include

      Specify an indexed/contained type (or its supertype class) to include, along with (unless specified otherwise) all its subtypes.
      Parameters:
      clazz - The class to include according to include/exclude rules.
      Returns:
      The same context, for chained calls.
    • exclude

      Specify a name of an indexed/contained type (or a name of its named supertype) to exclude, along with (unless specified otherwise) all its subtypes.
      Parameters:
      name - The name of a named type to exclude according to include/exclude rules.
      Returns:
      The same context, for chained calls.
      See Also:
    • exclude

      Specify an indexed/contained type (or its supertype class) to exclude, along with (unless specified otherwise) all its subtypes.
      Parameters:
      clazz - The class to exclude according to include/exclude rules.
      Returns:
      The same context, for chained calls.