Interface PrioritySchemeManager
- All Known Implementing Classes:
PrioritySchemeManagerImpl
@ExperimentalApi
public interface PrioritySchemeManager
Manager
FieldConfigScheme
for managing priority schemes.
Example usage:
PrioritySchemeManager prioritySchemeManager; ProjectManager projectManager; //creates a new FieldConfigScheme with 3 priorities assigned FieldConfigScheme fieldConfigScheme = prioritySchemeManager.createWithDefaultMapping("Some name", "Some description", ImmutableList.of("1", "2", "3")); //options/priorities are assigned to a particular FieldConfig FieldConfig fieldConfig = prioritySchemeManager.getFieldConfigForDefaultMapping(fieldConfigScheme); //sets a priority with ID=1 as the default priority prioritySchemeManager.setDefaultOption(fieldConfig, "1"); //assigns a priority scheme to a "TEST" project Project project = projectManager.getProjectObjByKey("TEST"); prioritySchemeManager.assignProject(fieldConfigScheme, project); //retrieves all priorities for a given priority scheme Collection<Priority> priorities = prioritySchemeManager.getPrioritiesFromIds(prioritySchemeManager.getOptions(fieldConfig));
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addOptionToDefault
(String optionId) Adds theoptionId
to the default priority scheme.void
assignProject
(FieldConfigScheme priorityFieldConfig, Project project) Associates a project with a priority scheme.void
assignProjects
(FieldConfigScheme priorityFieldConfig, Set<Project> projects) Associates multiple projects with a priority scheme.createWithDefaultMapping
(String name, String description, List<String> optionIds) Creates a newFieldConfigScheme
with a default mapping toFieldConfig
.void
delete
(FieldConfigScheme fieldConfigScheme) RemovesFieldConfigScheme
.getAllRelatedSchemes
(String optionId) Retrieves all schemes that haveoptionId
as part of its options.Retrieves all priority schemes and sorts them.getDefaultOption
(IssueContext issueContext) Retrieves the ID of the defaultPriority
forFieldConfig
relevant to a passedissueContext
for a priority system field.getDefaultOption
(FieldConfig fieldConfig) Returns the ID of the defaultPriority
for a givenfieldConfig
.Retrieves the default global priority scheme which contains all priorities.getFieldConfigForDefaultMapping
(FieldConfigScheme fieldConfigScheme) RetrievesFieldConfig
that is used for a default mapping for a passedfieldConfigScheme
.getOptions
(IssueContext issueContext) Retrieves a list of priority IDs configured for a passedissueContext
.getOptions
(FieldConfig fieldConfig) Retrieves a list of priority IDs configured for a passedfieldConfig
.getPrioritiesFromIds
(Collection<String> priorityIds) Converts a collection of priority IDs to a collection ofPriority
.getPriority
(String priorityId) ConvertspriorityId
toPriority
value.getProjectsWithScheme
(FieldConfigScheme fieldConfigScheme) Retrieves all projects associated with a scheme.GetsFieldConfigScheme
for givenproject
.GetsFieldConfigScheme
byid
.boolean
isDefaultScheme
(FieldConfigScheme fieldConfigScheme) Checks if a passedfieldConfigScheme
is the default priority scheme.void
removeOptionFromAllSchemes
(String optionId) Removes a priority ID from all priority schemes that have the passedoptionId
as part of its options.void
setDefaultOption
(FieldConfig fieldConfig, String optionId) Sets default priority ID for givenFieldConfigScheme
.void
setOptions
(FieldConfig fieldConfig, List<String> optionIds) Sets priority IDs forfieldConfig
.void
unassignProject
(FieldConfigScheme scheme, Project project) Removes a project from a priority scheme.void
unassignProjects
(FieldConfigScheme scheme, Set<Project> projects) Removes multiple projects from a priority scheme.updateWithDefaultMapping
(FieldConfigScheme fieldConfigScheme, List<String> optionIds) UpdatesFieldConfigScheme
with provided data and options (priority IDs).
-
Method Details
-
createWithDefaultMapping
@Nonnull FieldConfigScheme createWithDefaultMapping(@Nonnull String name, @Nullable String description, @Nullable List<String> optionIds) Creates a newFieldConfigScheme
with a default mapping toFieldConfig
. Also creates options inOPTION_CONFIGURATION
table. TriggersPrioritySchemeCreatedEvent
.- Parameters:
name
- Scheme namedescription
- Scheme descriptionoptionIds
- Collection of priority ids- Returns:
- created FieldConfigScheme
-
updateWithDefaultMapping
FieldConfigScheme updateWithDefaultMapping(@Nonnull FieldConfigScheme fieldConfigScheme, @Nullable List<String> optionIds) UpdatesFieldConfigScheme
with provided data and options (priority IDs). DefaultFieldConfig
forFieldConfigScheme
is used. TriggersPrioritySchemeUpdatedEvent
.- Parameters:
fieldConfigScheme
- Field config scheme to updateoptionIds
- Collection of priority ids- Returns:
- updated FieldConfigScheme
-
getFieldConfigForDefaultMapping
@Nullable FieldConfig getFieldConfigForDefaultMapping(@Nullable FieldConfigScheme fieldConfigScheme) RetrievesFieldConfig
that is used for a default mapping for a passedfieldConfigScheme
.- Parameters:
fieldConfigScheme
-- Returns:
FieldConfig
for default mapping forfieldConfigScheme
-
delete
RemovesFieldConfigScheme
. TriggersPrioritySchemeDeletedEvent
.- Parameters:
fieldConfigScheme
-FieldConfigScheme
to delete
-
getScheme
GetsFieldConfigScheme
for givenproject
.- Parameters:
project
- Project- Returns:
FieldConfigScheme
associated with givenproject
-
getScheme
GetsFieldConfigScheme
byid
.- Parameters:
id
- scheme id- Returns:
FieldConfigScheme
-
getAllSchemes
Retrieves all priority schemes and sorts them. Schemes with the default scheme ID are first. Schemes with null names are second, the rest are sorted on name.- Returns:
- all schemes sorted on name with default first
-
isDefaultScheme
Checks if a passedfieldConfigScheme
is the default priority scheme.- Parameters:
fieldConfigScheme
- Field config scheme in question- Returns:
- true if
fieldConfigScheme
is default one, false otherwise.
-
getDefaultScheme
Retrieves the default global priority scheme which contains all priorities.- Returns:
- default
FieldConfigScheme
-
getDefaultOption
Retrieves the ID of the defaultPriority
forFieldConfig
relevant to a passedissueContext
for a priority system field. If no default priority is defined forFieldConfig
then middle priority of all priorities assigned to thatFieldConfig
is returned.- Parameters:
issueContext
-IssueContext
to obtain default value for- Returns:
- Id of default
Priority
forissueContext
-
getDefaultOption
Returns the ID of the defaultPriority
for a givenfieldConfig
.- Parameters:
fieldConfig
- the field configuration scheme of interest- Returns:
- Id of default
Priority
for thisfieldConfig
-
setDefaultOption
Sets default priority ID for givenFieldConfigScheme
.- Parameters:
fieldConfig
-FieldConfig
for which set the default optionoptionId
- Priority id. Passnull
to remove default priority fromfieldConfig
.
-
getOptions
Retrieves a list of priority IDs configured for a passedissueContext
. Ifnull
is passed forissueContext
then priority ids for default scheme are returned.- Parameters:
issueContext
- Issue context eg.ProjectContext
- Returns:
- list of priorities configured for passed
issueContext
.
-
getOptions
Retrieves a list of priority IDs configured for a passedfieldConfig
. Ifnull
is passed asfieldConfig
then empty list is returned.- Parameters:
fieldConfig
-FieldConfig
to obtain list of priority id from.- Returns:
- List of priority ids for
fieldConfig
-
setOptions
Sets priority IDs forfieldConfig
.- Parameters:
fieldConfig
-FieldConfig
to set list of priority id for.optionIds
- List of priority ids.
-
addOptionToDefault
Adds theoptionId
to the default priority scheme.- Parameters:
optionId
- priority id
-
removeOptionFromAllSchemes
Removes a priority ID from all priority schemes that have the passedoptionId
as part of its options.- Parameters:
optionId
- Priority id to remove from all priority schemes.
-
getAllRelatedSchemes
Retrieves all schemes that haveoptionId
as part of its options.- Parameters:
optionId
- Priority id being queried- Returns:
- Collection of
FieldConfigScheme
objects
-
getPriority
ConvertspriorityId
toPriority
value. -
getPrioritiesFromIds
Converts a collection of priority IDs to a collection ofPriority
. Priorities not found by id are skipped. -
assignProject
Associates a project with a priority scheme. To assign project to "default priority scheme" please unassign project from currently used priority schemeunassignProject(FieldConfigScheme, Project)
. If this method is used on "default priority scheme" it will remove DB association that marks scheme as default thus it will break "default priority scheme". When assigning multiple projects please useassignProjects(FieldConfigScheme, Set)
instead of calling this method in a loop to achieve better performance.- Parameters:
priorityFieldConfig
- the schemeproject
- the project
-
assignProjects
Associates multiple projects with a priority scheme. To assign project to "default priority scheme" please unassign project from currently used priority schemeunassignProject(FieldConfigScheme, Project)
. If this method is used on "default priority scheme" it will remove DB association that marks scheme as default thus it will break "default priority scheme".- Parameters:
priorityFieldConfig
- the schemeprojects
- the projects- Since:
- 7.6.13, 7.13.3, 8.0.3, 8.1.0 (be careful when checking if this method can be used, as it was added in a bugfix release)
-
getProjectsWithScheme
Retrieves all projects associated with a scheme.- Parameters:
fieldConfigScheme
- the scheme- Returns:
- List of
Project
with the given scheme (possibly empty)
-
unassignProject
Removes a project from a priority scheme. It can also be used to assign project with "default priority scheme" - simply unassign project from currently used scheme and the project will start using default priority scheme. When unassigning multiple projects please useunassignProjects(FieldConfigScheme, Set)
instead of calling this method in a loop to achieve better performance.- Parameters:
scheme
- the schemeproject
- the project
-
unassignProjects
Removes multiple projects from a priority scheme. It can also be used to assign projects with "default priority scheme" - simply unassign projects from currently used scheme and the projects will start using default priority scheme.- Parameters:
scheme
- the schemeprojects
- the projects- Since:
- 7.6.13, 7.13.3, 8.0.3, 8.1.0 (be careful when checking if this method can be used, as it was added in a bugfix release)
-