Interface ISubscriptionFilter

All Known Implementing Classes:
SubscriptionFilter

public interface ISubscriptionFilter
A subscription filter — the "group" a send or admin operation targets.

The filter is a predicate over the dimensions of the subscription store (uid, aid / application, topic, domain, device, provider) plus an optional region selector. It is what makes "a group" a term rather than a fixed type: sendToTopic is a filter with a topic set, sendToUsers is a filter with a uid list, a broadcast to an application is a filter with only the application set. One filter type expresses every grouping the admin needs.

Constructed with a fluent builder (not shown here); this is the read contract the router consumes.

Author:
IIZI
  • Method Details

    • getApplicationIds

      List<String> getApplicationIds()
      Gets the application ids this filter targets, empty for "any application".
      Returns:
      An unmodifiable list of application ids; never null.
    • getUserIds

      List<String> getUserIds()
      Gets the user ids this filter targets, empty for "any user".
      Returns:
      An unmodifiable list of user ids; never null.
    • getTopics

      List<String> getTopics()
      Gets the topics this filter targets, empty for "any topic".
      Returns:
      An unmodifiable list of topics; never null.
    • getRegionSelector

      IRegionScope getRegionSelector()
      Gets the region selector — the subtrees this filter targets. An unrestricted scope targets every region (subject still to the operator's authorization). A subscription whose region falls outside this selector is reported DeliveryOutcome.EXCLUDED_BY_REGION.
      Returns:
      The region selector; never null.