@Immutable @PublicApi public final class

PermissionHolder

extends Object
java.lang.Object
   ↳ com.atlassian.jira.permission.PermissionHolder

@PublicApi

This class is designed for plugins to consume (call its methods).

Clients of @PublicApi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicApi as per each product's API policy as long as the client does not implement/extend @PublicApi interfaces or classes (refer to each product's API policy for the exact guarantee---usually binary compatibility is guaranteed at least across minor versions).

Note: since @PublicApi interfaces and classes are not designed to be implemented or extended by clients, we may perform certain types of binary-incompatible changes to these classes and interfaces, but these will not affect well-behaved clients that do not extend/implement these types (in general, only classes and interfaces annotated with @PublicSpi are safe to extend/implement).

Class Overview

A person or a group of people that holds a permission.

When you grant a permission, you need to define to whom you grant it. PermissionHolder lets you do that.

It consists of two things:

PermissionHolderType type
Type of the permission holder. This can be e.g. user, group, project role but also more ephemeral things like issue assignee or reporter.

Standard JIRA reporter types are gathered in the JiraPermissionHolderType enum.

String parameter
Some types require a parameter (e.g. when the type is user, the parameter needs to contain the user id, group requires the group id, etc.) and some don't (e.g. assignee, reporter, project lead).

Note that each PermissionHolderType has a requiresParameter() method, which specifies whether it requires a parameter or not. It is not possible to create a PermissionHolder without a parameter when the type requires one, and vice versa.

Summary

Public Methods
boolean equals(Object o)
Option<String> getParameter()
PermissionHolderType getType()
int hashCode()
static PermissionHolder holder(PermissionHolderType type)
static PermissionHolder holder(PermissionHolderType type, String parameter)
String toString()
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public boolean equals (Object o)

public Option<String> getParameter ()

public PermissionHolderType getType ()

public int hashCode ()

public static PermissionHolder holder (PermissionHolderType type)

public static PermissionHolder holder (PermissionHolderType type, String parameter)

public String toString ()