Interface ItemPermissionResolver


@NonNullByDefault public interface ItemPermissionResolver
Defines a utility service to resolve the permission for an item for Human Language Interpreters.

The permission rules are as follows:

  • Explicit configuration: An Item can explicitly set the permission via the permission property in the voiceSystem metadata namespace.
  • Inheritance: If no explicit configuration is found on the Item itself, it inherits permissions from its parent groups.
  • Merging and Priority: Parent permissions are merged. Within the same layer, the following prioritization applies: ItemPermission.NO_ACCESS > ItemPermission.READ_ONLY > ItemPermission.READ_WRITE. The closest parent layer has priority over further away layers.
  • System Default: If no explicit configuration is found on the Item or any of its ancestors, the system-wide default is used.
Author:
Florian Hotze - Initial contribution
  • Field Details

  • Method Details

    • addItemAccessChangeListener

      void addItemAccessChangeListener(Runnable listener)
      Adds a listener that is notified whenever item access may have changed.
      Parameters:
      listener - the listener to add
    • removeItemAccessChangeListener

      void removeItemAccessChangeListener(Runnable listener)
      Removes a previously registered item access change listener.
      Parameters:
      listener - the listener to remove
    • getPermission

      ItemPermission getPermission(Item item)
      Returns the ItemPermission for an item.
      Parameters:
      item - the item to check
      Returns:
      the item permission
    • isAccessible

      default boolean isAccessible(Item item)
      Returns whether an item is accessible for HumanLanguageInterpreters.
      Parameters:
      item - the item to check
      Returns:
      true if the item is accessible, false otherwise
    • getItemPermissionDetails

      ItemPermissionResolver.ItemPermissionDetails getItemPermissionDetails(Item item)
      Parameters:
      item - the item to check
      Returns:
      the item permission details (the item permission and its source)