com.atlassian.jira.bc.customfield
Interface CustomFieldService

All Known Implementing Classes:
DefaultCustomFieldService

@PublicApi
public interface CustomFieldService

Service front for the custom field manager. Implementations of this interface are responsible for carrying out any validation and permission logic required to carry out a certain task. The actual work required to do a certain task should be delegated to the CustomFieldManager.

Since:
v3.13

Method Summary
 ServiceOutcome<List<Long>> addToScreenTabs(com.atlassian.crowd.embedded.api.User user, Long customFieldId, List<Long> tabIds)
          Adds a custom field with the given id to selected tabs.
 ServiceOutcome<CustomField> create(CreateValidationResult createValidationResult)
          Creates a custom field using a CreateValidationResult as parameter.
 ServiceOutcome<CustomField> getCustomFieldForEditConfig(ApplicationUser user, String fieldId)
          Return the custom field if the passed user has permission to edit its configuration.
 Iterable<CustomFieldType<?,?>> getCustomFieldTypesForUser(ApplicationUser user)
          Return the CustomFieldTypes that the passed user can use to create a new CustomField.
 CustomFieldSearcher getDefaultSearcher(CustomFieldType<?,?> type)
          Return the default CustomFieldSearcher for the passed CustomFieldType.
 ServiceOutcome<List<Long>> removeFromScreenTabs(com.atlassian.crowd.embedded.api.User user, Long customFieldId, List<Long> tabIds)
          Removes a custom field with the given id from selected tabs.
 void updateTranslation(JiraServiceContext jiraServiceContext, Long customFieldId, String name, String description, String locale)
          Sets the current a translation for a custom field.
 ServiceOutcome<CreateValidationResult> validateCreate(com.atlassian.crowd.embedded.api.User user, CustomFieldDefinition customFieldDefinition)
          Validates that the custom field with the provided data can be created.
 void validateDelete(JiraServiceContext jiraServiceContext, Long customFieldId)
          Validates that the custom field with the provided id can be deleted.
 void validateTranslation(JiraServiceContext jiraServiceContext, Long customFieldId, String name, String description, String locale)
          Validates that the parameters to set a translation for a custom field are valid
 void validateUpdate(JiraServiceContext jiraServiceContext, Long customFieldId, String name, String description, String searcherKey)
          Validates that the custom field with the provided id can be updated.
 

Method Detail

getCustomFieldForEditConfig

ServiceOutcome<CustomField> getCustomFieldForEditConfig(@Nullable
                                                        ApplicationUser user,
                                                        String fieldId)
Return the custom field if the passed user has permission to edit its configuration.

Parameters:
user - the user to check.
fieldId - the field to search for.
Returns:
the custom field with the passed fieldId if the passed user has permission to edit its configuration and it actually exists.

getCustomFieldTypesForUser

@Nonnull
Iterable<CustomFieldType<?,?>> getCustomFieldTypesForUser(@Nullable
                                                                  ApplicationUser user)
Return the CustomFieldTypes that the passed user can use to create a new CustomField. A CustomFieldType can be hidden if the passed user either does not have permission to see it or when the type is locked and not meant to be created by users.

Parameters:
user - the user to check against.
Returns:
the CustomFieldTypes that the passed user can use to create a CustomField.

getDefaultSearcher

@Nullable
CustomFieldSearcher getDefaultSearcher(@Nonnull
                                                CustomFieldType<?,?> type)
Return the default CustomFieldSearcher for the passed CustomFieldType. The default searcher can be null if there is no searcher associated with the type.

Parameters:
type - the CustomFieldType to query.
Returns:
the default searcher for the passed CustomFieldType. Can be null if the type has no associated searcher.

validateDelete

void validateDelete(JiraServiceContext jiraServiceContext,
                    Long customFieldId)
Validates that the custom field with the provided id can be deleted. This means we check whether or not the custom field is used in any permission or issue level security schemes. This method will also check that the custom field with the given id exists. The user performing this operation needs to have global admin permission.

Parameters:
jiraServiceContext - containing the User who is performing the change and the ErrorCollection that will contain any errors in calling the method
customFieldId - the custom field id of the custom field about to be deleted.

validateUpdate

void validateUpdate(JiraServiceContext jiraServiceContext,
                    Long customFieldId,
                    String name,
                    String description,
                    String searcherKey)
Validates that the custom field with the provided id can be updated. This means we check whether or not the custom field is used in any permission or issue level security schemes if the custom field's searcher is being set to null. This method will also check that the custom field with the given id exists and that all its attributes are valid. The user performing this operation needs to have global admin permission.

Parameters:
jiraServiceContext - containing the User who is performing the change and the ErrorCollection that will contain any errors in calling the method
customFieldId - the custom field id of the customfield about to be updated
name - the updated name of the customfield
description - the description of the customfield
searcherKey - the customfield searcher that should be used

validateCreate

ServiceOutcome<CreateValidationResult> validateCreate(com.atlassian.crowd.embedded.api.User user,
                                                      CustomFieldDefinition customFieldDefinition)
Validates that the custom field with the provided data can be created. Data placeholder is the CustomFieldDefinition. The result of this operation is CreateValidationResult which after validation will contain all necessery data to create a custom field (including user)

Parameters:
user - - the user who is performing the validation
customFieldDefinition - - custom field data
Returns:
validation result, which contains valid data to cre`ate a custom field. This should be passed to create method.

create

ServiceOutcome<CustomField> create(CreateValidationResult createValidationResult)
                                   throws DataAccessException
Creates a custom field using a CreateValidationResult as parameter. CreateValidationResult is an output of createValidation method which should be executed before executing create.

Parameters:
createValidationResult - - data needed to create custom field, containing user.
Returns:
ServiceOutcome with CustomField or with errorCollection
Throws:
DataAccessException - throwed when there is a problem with creating custom field in database

addToScreenTabs

ServiceOutcome<List<Long>> addToScreenTabs(com.atlassian.crowd.embedded.api.User user,
                                           Long customFieldId,
                                           List<Long> tabIds)
Adds a custom field with the given id to selected tabs. It returns list of ids of tabs on which custom field is present after performing "add" operation.

Parameters:
user - user who performs the change
customFieldId - id of custom field
tabIds - list of tab's id's to which we want to add custom field
Returns:
service outcome containing list of ids of tabs on which custom field is present after operation

removeFromScreenTabs

ServiceOutcome<List<Long>> removeFromScreenTabs(com.atlassian.crowd.embedded.api.User user,
                                                Long customFieldId,
                                                List<Long> tabIds)
Removes a custom field with the given id from selected tabs. It returns list of ids of tabs on which custom field is present after performing "remove" operation.

Parameters:
user - user who performs the change
customFieldId - id of custom field
tabIds - list of tab's ids from which we want to remove custom field
Returns:
service outcome containing list of ids of tabs on which custom field is present after operation

validateTranslation

void validateTranslation(JiraServiceContext jiraServiceContext,
                         Long customFieldId,
                         String name,
                         String description,
                         String locale)
Validates that the parameters to set a translation for a custom field are valid

Parameters:
jiraServiceContext - containing the User who is performing the change and the ErrorCollection that will contain any errors in calling the method
customFieldId - the custom field id of the customfield about to be updated
name - the updated name of the customfield
description - the description of the customfield
locale - the locale of the translation

updateTranslation

void updateTranslation(JiraServiceContext jiraServiceContext,
                       Long customFieldId,
                       String name,
                       String description,
                       String locale)
Sets the current a translation for a custom field. The name and description can be empty and if so the translation will be cleared.

Parameters:
jiraServiceContext - containing the User who is performing the change and the ErrorCollection that will contain any errors in calling the method
customFieldId - the custom field id of the customfield about to be updated
name - the updated name of the customfield
description - the description of the customfield
locale - the locale of the translation


Copyright © 2002-2014 Atlassian. All Rights Reserved.