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 TypeMethodDescriptionvoidaddOptionToDefault(String optionId) Adds theoptionIdto the default priority scheme.voidassignProject(FieldConfigScheme priorityFieldConfig, Project project) Associates a project with a priority scheme.voidassignProjects(FieldConfigScheme priorityFieldConfig, Set<Project> projects) Associates multiple projects with a priority scheme.createWithDefaultMapping(String name, String description, List<String> optionIds) Creates a newFieldConfigSchemewith a default mapping toFieldConfig.voiddelete(FieldConfigScheme fieldConfigScheme) RemovesFieldConfigScheme.getAllRelatedSchemes(String optionId) Retrieves all schemes that haveoptionIdas part of its options.Retrieves all priority schemes and sorts them.getDefaultOption(IssueContext issueContext) Retrieves the ID of the defaultPriorityforFieldConfigrelevant to a passedissueContextfor a priority system field.getDefaultOption(FieldConfig fieldConfig) Returns the ID of the defaultPriorityfor a givenfieldConfig.Retrieves the default global priority scheme which contains all priorities.getFieldConfigForDefaultMapping(FieldConfigScheme fieldConfigScheme) RetrievesFieldConfigthat 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) ConvertspriorityIdtoPriorityvalue.getProjectsWithScheme(FieldConfigScheme fieldConfigScheme) Retrieves all projects associated with a scheme.GetsFieldConfigSchemefor givenproject.GetsFieldConfigSchemebyid.booleanisDefaultScheme(FieldConfigScheme fieldConfigScheme) Checks if a passedfieldConfigSchemeis the default priority scheme.voidremoveOptionFromAllSchemes(String optionId) Removes a priority ID from all priority schemes that have the passedoptionIdas part of its options.voidsetDefaultOption(FieldConfig fieldConfig, String optionId) Sets default priority ID for givenFieldConfigScheme.voidsetOptions(FieldConfig fieldConfig, List<String> optionIds) Sets priority IDs forfieldConfig.voidunassignProject(FieldConfigScheme scheme, Project project) Removes a project from a priority scheme.voidunassignProjects(FieldConfigScheme scheme, Set<Project> projects) Removes multiple projects from a priority scheme.updateWithDefaultMapping(FieldConfigScheme fieldConfigScheme, List<String> optionIds) UpdatesFieldConfigSchemewith provided data and options (priority IDs).
-
Method Details
-
createWithDefaultMapping
@Nonnull FieldConfigScheme createWithDefaultMapping(@Nonnull String name, @Nullable String description, @Nullable List<String> optionIds) Creates a newFieldConfigSchemewith a default mapping toFieldConfig. Also creates options inOPTION_CONFIGURATIONtable. TriggersPrioritySchemeCreatedEvent.- Parameters:
name- Scheme namedescription- Scheme descriptionoptionIds- Collection of priority ids- Returns:
- created FieldConfigScheme
-
updateWithDefaultMapping
FieldConfigScheme updateWithDefaultMapping(@Nonnull FieldConfigScheme fieldConfigScheme, @Nullable List<String> optionIds) UpdatesFieldConfigSchemewith provided data and options (priority IDs). DefaultFieldConfigforFieldConfigSchemeis used. TriggersPrioritySchemeUpdatedEvent.- Parameters:
fieldConfigScheme- Field config scheme to updateoptionIds- Collection of priority ids- Returns:
- updated FieldConfigScheme
-
getFieldConfigForDefaultMapping
@Nullable FieldConfig getFieldConfigForDefaultMapping(@Nullable FieldConfigScheme fieldConfigScheme) RetrievesFieldConfigthat is used for a default mapping for a passedfieldConfigScheme.- Parameters:
fieldConfigScheme-- Returns:
FieldConfigfor default mapping forfieldConfigScheme
-
delete
RemovesFieldConfigScheme. TriggersPrioritySchemeDeletedEvent.- Parameters:
fieldConfigScheme-FieldConfigSchemeto delete
-
getScheme
GetsFieldConfigSchemefor givenproject.- Parameters:
project- Project- Returns:
FieldConfigSchemeassociated with givenproject
-
getScheme
GetsFieldConfigSchemebyid.- 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 passedfieldConfigSchemeis the default priority scheme.- Parameters:
fieldConfigScheme- Field config scheme in question- Returns:
- true if
fieldConfigSchemeis default one, false otherwise.
-
getDefaultScheme
Retrieves the default global priority scheme which contains all priorities.- Returns:
- default
FieldConfigScheme
-
getDefaultOption
Retrieves the ID of the defaultPriorityforFieldConfigrelevant to a passedissueContextfor a priority system field. If no default priority is defined forFieldConfigthen middle priority of all priorities assigned to thatFieldConfigis returned.- Parameters:
issueContext-IssueContextto obtain default value for- Returns:
- Id of default
PriorityforissueContext
-
getDefaultOption
Returns the ID of the defaultPriorityfor a givenfieldConfig.- Parameters:
fieldConfig- the field configuration scheme of interest- Returns:
- Id of default
Priorityfor thisfieldConfig
-
setDefaultOption
Sets default priority ID for givenFieldConfigScheme.- Parameters:
fieldConfig-FieldConfigfor which set the default optionoptionId- Priority id. Passnullto remove default priority fromfieldConfig.
-
getOptions
Retrieves a list of priority IDs configured for a passedissueContext. Ifnullis passed forissueContextthen 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. Ifnullis passed asfieldConfigthen empty list is returned.- Parameters:
fieldConfig-FieldConfigto obtain list of priority id from.- Returns:
- List of priority ids for
fieldConfig
-
setOptions
Sets priority IDs forfieldConfig.- Parameters:
fieldConfig-FieldConfigto set list of priority id for.optionIds- List of priority ids.
-
addOptionToDefault
Adds theoptionIdto the default priority scheme.- Parameters:
optionId- priority id
-
removeOptionFromAllSchemes
Removes a priority ID from all priority schemes that have the passedoptionIdas part of its options.- Parameters:
optionId- Priority id to remove from all priority schemes.
-
getAllRelatedSchemes
Retrieves all schemes that haveoptionIdas part of its options.- Parameters:
optionId- Priority id being queried- Returns:
- Collection of
FieldConfigSchemeobjects
-
getPriority
ConvertspriorityIdtoPriorityvalue. -
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
Projectwith 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)
-