public class

FieldConfigSchemeManagerImpl

extends Object
implements FieldConfigSchemeManager
java.lang.Object
   ↳ com.atlassian.jira.issue.fields.config.manager.FieldConfigSchemeManagerImpl

Summary

[Expand]
Inherited Fields
From interface com.atlassian.jira.issue.fields.config.manager.FieldConfigSchemeManager
Public Constructors
FieldConfigSchemeManagerImpl(FieldConfigSchemePersister configSchemePersister, FieldConfigContextPersister contextPersister, FieldConfigManager configManager)
Public Methods
FieldConfigScheme createDefaultScheme(ConfigurableField field, List<JiraContextNode> contexts)
FieldConfigScheme createDefaultScheme(ConfigurableField field, List<JiraContextNode> contexts, List<IssueType> issueTypes)
FieldConfigScheme createFieldConfigScheme(FieldConfigScheme newConfigScheme, List<JiraContextNode> contexts, List<IssueType> issueTypes, ConfigurableField field)
List<Project> getAssociatedProjectObjects(ConfigurableField field)
Returns a non-null list of Projects associated with the given field.
FieldConfigScheme getConfigSchemeForFieldConfig(FieldConfig fieldConfig)
Retrieves the FieldConfigScheme associated with the FieldConfig
List<FieldConfigScheme> getConfigSchemesForField(ConfigurableField field)
FieldConfigScheme getFieldConfigScheme(Long configSchemeId)
Collection getInvalidFieldConfigSchemesForIssueTypeRemoval(IssueType issueType)
Returns a collection of FieldConfigSchemes for all Configuration Contexts that will become invalid after the issuetype has been removed.
FieldConfig getRelevantConfig(IssueContext issueContext, ConfigurableField field)
Returns the relevant field config of this custom field for the give issue context
@Nullable FieldConfigScheme getRelevantConfigScheme(IssueContext issueContext, ConfigurableField field)
Returns the FieldConfigScheme for the given Project and ConfigurableField.
@Nullable FieldConfigScheme getRelevantConfigScheme(Project project, ConfigurableField field)
Returns the FieldConfigScheme for the given Project and ConfigurableField.
void init()
boolean isRelevantForIssueContext(IssueContext issueContext, ConfigurableField field)
Returns true if the custom field has a config for the Project and Issue Type of the given IssueContext.
void removeFieldConfigScheme(Long fieldConfigSchemeId)
Removes a field config scheme, as well as its associated contexts and field configs (which includes option sets and generic configs)
void removeInvalidFieldConfigSchemesForCustomField(String customFieldId)
Given a CustomField, this method will correctly remove the fieldConfigSchemes if necessary.
void removeInvalidFieldConfigSchemesForIssueType(IssueType issueType)
Given an issueType, this method will correctly remove the fieldConfigSchemes if necessary.
void removeSchemeAssociation(List<JiraContextNode> contexts, ConfigurableField configurableField)
FieldConfigScheme updateFieldConfigScheme(FieldConfigScheme newScheme, List<JiraContextNode> contexts, ConfigurableField field)
Updates the config schemes with the new contexts
FieldConfigScheme updateFieldConfigScheme(FieldConfigScheme scheme)
Only update the name & description of a field
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.issue.fields.config.manager.FieldConfigSchemeManager

Public Constructors

public FieldConfigSchemeManagerImpl (FieldConfigSchemePersister configSchemePersister, FieldConfigContextPersister contextPersister, FieldConfigManager configManager)

Public Methods

public FieldConfigScheme createDefaultScheme (ConfigurableField field, List<JiraContextNode> contexts)

public FieldConfigScheme createDefaultScheme (ConfigurableField field, List<JiraContextNode> contexts, List<IssueType> issueTypes)

public FieldConfigScheme createFieldConfigScheme (FieldConfigScheme newConfigScheme, List<JiraContextNode> contexts, List<IssueType> issueTypes, ConfigurableField field)

public List<Project> getAssociatedProjectObjects (ConfigurableField field)

Returns a non-null list of Projects associated with the given field.

Parameters
field the Field
Returns
  • a non-null list of Projects associated with the given field.

public FieldConfigScheme getConfigSchemeForFieldConfig (FieldConfig fieldConfig)

Retrieves the FieldConfigScheme associated with the FieldConfig

Parameters
fieldConfig the field config to retrieve the FieldConfigScheme of; cannot be null.
Returns
  • the config scheme for the FieldConfig. Null if the config scheme can not be found.

public List<FieldConfigScheme> getConfigSchemesForField (ConfigurableField field)

public FieldConfigScheme getFieldConfigScheme (Long configSchemeId)

public Collection getInvalidFieldConfigSchemesForIssueTypeRemoval (IssueType issueType)

Returns a collection of FieldConfigSchemes for all Configuration Contexts that will become invalid after the issuetype has been removed. That is the configuration contexts that will no longer be linked to ANY issue types after the issue type passed is has been deleted.

Parameters
issueType The issueType to be deleted
Returns

public FieldConfig getRelevantConfig (IssueContext issueContext, ConfigurableField field)

Returns the relevant field config of this custom field for the give issue context

Parameters
issueContext issue context to find the relevant field config for
Returns
  • the relevant field config of this custom field for the give issue context

@Nullable public FieldConfigScheme getRelevantConfigScheme (IssueContext issueContext, ConfigurableField field)

Returns the FieldConfigScheme for the given Project and ConfigurableField.

Parameters
issueContext actually we ignore the Issue Type and just use the Project.
field the ConfigurableField
Returns
  • the FieldConfigScheme for the given Project and ConfigurableField.

@Nullable public FieldConfigScheme getRelevantConfigScheme (Project project, ConfigurableField field)

Returns the FieldConfigScheme for the given Project and ConfigurableField.

Parameters
project the Project.
field the ConfigurableField
Returns
  • the FieldConfigScheme for the given Project and ConfigurableField.

public void init ()

public boolean isRelevantForIssueContext (IssueContext issueContext, ConfigurableField field)

Returns true if the custom field has a config for the Project and Issue Type of the given IssueContext.

This is equivalent to calling

  getRelevantConfig(issueContext, field) != null
but in general can run faster because it does not have to resolve the actual FieldConfig.

Parameters
issueContext IssueContext whose project and issue type will be used to check if the field has a config
Returns
  • true if the custom field has a config for the Project and Issue Type of the given IssueContext.

public void removeFieldConfigScheme (Long fieldConfigSchemeId)

Removes a field config scheme, as well as its associated contexts and field configs (which includes option sets and generic configs)

Parameters
fieldConfigSchemeId the id of the field config scheme to remove

public void removeInvalidFieldConfigSchemesForCustomField (String customFieldId)

Given a CustomField, this method will correctly remove the fieldConfigSchemes if necessary. In other words if a FieldConfigScheme is linked to only a single CustomField, and we're deleting that field then that FieldConfigScheme will be deleted. If a FieldConfigScheme is associated with multiple fields, then only the association for the field we're deleting will be removed, but the FieldConfigScheme will remain.

Parameters
customFieldId The id of the CustomField being deleted

public void removeInvalidFieldConfigSchemesForIssueType (IssueType issueType)

Given an issueType, this method will correctly remove the fieldConfigSchemes if necessary. In other words if a FieldConfigScheme is linked to only a single issueType, and we're deleting that issuetype then that FieldConfigScheme will be deleted. If a FieldConfigScheme is associated with multiple issueTypes, then only the association for the issueType we're deleting will be removed, but the FieldConfigScheme will remain.

Parameters
issueType The IssueType being deleted

public void removeSchemeAssociation (List<JiraContextNode> contexts, ConfigurableField configurableField)

public FieldConfigScheme updateFieldConfigScheme (FieldConfigScheme newScheme, List<JiraContextNode> contexts, ConfigurableField field)

Updates the config schemes with the new contexts

Returns
  • The updated scheme

public FieldConfigScheme updateFieldConfigScheme (FieldConfigScheme scheme)

Only update the name & description of a field

Parameters
scheme scheme with the name & description to be updated
Returns
  • the updated scheme