Interface CustomFieldService
- All Known Implementing Classes:
CustomFieldServiceImpl
public interface CustomFieldService
Service for encapsulating custom field logic, especially the rather complex JIRA logic behind creating and working with these things.
- Author:
- ahennecke
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptioncom.atlassian.jira.issue.fields.config.FieldConfigSchemeassociateCustomFieldContext(com.atlassian.jira.issue.fields.CustomField customField, CustomFieldMetadata customFieldMetadata) Re-associates the custom field to the specified contexts.com.atlassian.jira.issue.fields.config.FieldConfigSchemeassociateCustomFieldContext(com.atlassian.jira.issue.fields.CustomField customField, Collection<IssueTypePrototype> issueTypes) Re-associates the custom field to the specified issue type specific contexts.com.atlassian.jira.issue.fields.CustomFieldcreateCustomField(CustomFieldMetadata fieldMetadata) Create a new custom field in JIRA with the given configurationcom.atlassian.jira.issue.fields.CustomFieldgetCustomField(Long id) com.atlassian.jira.issue.fields.CustomFieldgetCustomField(String id) <T extends com.atlassian.jira.issue.customfields.CustomFieldType>
List<com.atlassian.jira.issue.fields.CustomField>getCustomFields(Class<T> type) Return all custom field instances which are of typeCustomFieldService(but not sub-classes).<T extends com.atlassian.jira.issue.customfields.CustomFieldType>
List<com.atlassian.jira.issue.fields.CustomField>getCustomFields(Class<T> type, boolean strict) Return all custom field instances which are of typeCustomFieldService, or a subclass ofCustomFieldService.booleanisFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField, com.atlassian.jira.issue.Issue issue) Determine whether the given custom field is applicable for (i.e. configured for the context of) the specified issue.booleanisFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField, Long projectId, String issueTypeId) Determine whether the given custom field is applicable for (i.e. configured for the context of) the specified project and issue type.booleanisFieldVisible(com.atlassian.jira.issue.fields.CustomField customField, com.atlassian.jira.issue.Issue issue) booleanisSystemFieldName(String fieldName) Check whether the passed field name matches a system field name (as used by JQL)booleanisUniqueFieldName(com.atlassian.jira.issue.fields.CustomField customField) Has the custom field a unique name?voidmakeFieldRequired(com.atlassian.jira.issue.fields.CustomField field) Make the specified field required for all configurationsvoidremoveCustomField(com.atlassian.jira.issue.fields.CustomField customField) Removes the custom field and all associated data.voidsetOptionsOrderFromMetadata(com.atlassian.jira.issue.fields.CustomField customField, CustomFieldMetadata fieldMetadata) Set the order of Options in a CustomField based on the order of the Options in the CustomFieldMetadata.booleanverifyCustomFieldExistsInDB(Long customFieldId) Checks if a custom field with the given id exists in the databasebooleanverifyCustomFieldExistsInDB(String customFieldId) Checks if a custom field with the given id exists in the database.
-
Field Details
-
SERVICE
- See Also:
-
-
Method Details
-
createCustomField
Create a new custom field in JIRA with the given configuration -
associateCustomFieldContext
com.atlassian.jira.issue.fields.config.FieldConfigScheme associateCustomFieldContext(com.atlassian.jira.issue.fields.CustomField customField, CustomFieldMetadata customFieldMetadata) Re-associates the custom field to the specified contexts. Warning - this has not been extensively tested in the case where the custom field already has some contexts. This is intended to be used when the custom field's contexts have been removed due to the removal of an issue type, for example.- Parameters:
customField- the field instancecustomFieldMetadata- the metadata which contains context and issue type information
-
associateCustomFieldContext
com.atlassian.jira.issue.fields.config.FieldConfigScheme associateCustomFieldContext(com.atlassian.jira.issue.fields.CustomField customField, Collection<IssueTypePrototype> issueTypes) Re-associates the custom field to the specified issue type specific contexts. Warning - this has not been extensively tested in the case where the custom field already has some contexts. This is intended to be used when the custom field's contexts have been removed due to the removal of an issue type, for example.- Parameters:
customField- the field instanceissueTypes- issue type information
-
getCustomField
- Returns:
- the
CustomFieldinstance for the given ID, or null if it doesn't exist
-
getCustomField
- Returns:
- the
CustomFieldinstance for the given String ID, or null if it doesn't exist
-
getCustomFields
<T extends com.atlassian.jira.issue.customfields.CustomFieldType> List<com.atlassian.jira.issue.fields.CustomField> getCustomFields(Class<T> type) Return all custom field instances which are of typeCustomFieldService(but not sub-classes).- Type Parameters:
T- the CustomFieldType to check for. Equality checking is done on the custom field's type.- Parameters:
type- the type to retrieve- Returns:
- the list of custom fields; never null
-
getCustomFields
<T extends com.atlassian.jira.issue.customfields.CustomFieldType> List<com.atlassian.jira.issue.fields.CustomField> getCustomFields(Class<T> type, boolean strict) Return all custom field instances which are of typeCustomFieldService, or a subclass ofCustomFieldService.- Type Parameters:
T- the CustomFieldType to check for. Equality checking is done on the custom field's type.- Parameters:
type- the type to retrievestrict- set totrueto do a strict equality check on the specified type.- Returns:
- the list of custom fields; never null
-
removeCustomField
void removeCustomField(com.atlassian.jira.issue.fields.CustomField customField) Removes the custom field and all associated data. Note that this requires the custom field to be fully recognisable in JIRA's current state (i.e. the CustomFieldType for this object must still be available).- Parameters:
customField- the custom field object- See Also:
-
CustomFieldManager.removeCustomField(com.atlassian.jira.issue.fields.CustomField)
-
isUniqueFieldName
boolean isUniqueFieldName(com.atlassian.jira.issue.fields.CustomField customField) Has the custom field a unique name? Used whenever creating JQL to decide whether to use the name or the id of the field -
isSystemFieldName
Check whether the passed field name matches a system field name (as used by JQL) -
isFieldApplicable
boolean isFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField, com.atlassian.jira.issue.Issue issue) Determine whether the given custom field is applicable for (i.e. configured for the context of) the specified issue.- Parameters:
customField- the fieldissue- the issue- Returns:
- whether or not the field is applicable
-
isFieldApplicable
boolean isFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField, Long projectId, String issueTypeId) Determine whether the given custom field is applicable for (i.e. configured for the context of) the specified project and issue type.- Parameters:
customField- the fieldprojectId- the project the issue is inissueTypeId- the issue type of the issue- Returns:
- whether or not the field is applicable
-
isFieldVisible
boolean isFieldVisible(com.atlassian.jira.issue.fields.CustomField customField, com.atlassian.jira.issue.Issue issue) -
makeFieldRequired
void makeFieldRequired(com.atlassian.jira.issue.fields.CustomField field) Make the specified field required for all configurations- Parameters:
field- the custom field.
-
setOptionsOrderFromMetadata
void setOptionsOrderFromMetadata(com.atlassian.jira.issue.fields.CustomField customField, CustomFieldMetadata fieldMetadata) Set the order of Options in a CustomField based on the order of the Options in the CustomFieldMetadata. This is part of the work that is done in createCustomField, but split into a public method so we can fix up the order of Options after the fact in upgrade tasks, etc.- Parameters:
customField-fieldMetadata-- Throws:
CustomFieldException- If the Options in the CustomField do not match the Options in the CustomFieldMetadata. This only re-orders if they have the same options.
-
verifyCustomFieldExistsInDB
Checks if a custom field with the given id exists in the database- Parameters:
customFieldId-- Returns:
-
verifyCustomFieldExistsInDB
Checks if a custom field with the given id exists in the database. The id passed is expected to be in the form of "customfield_xxxx". If the given id does not match the expected form, false is returned.- Parameters:
customFieldId-- Returns:
-