Class CustomFieldServiceImpl
java.lang.Object
com.atlassian.greenhopper.customfield.CustomFieldServiceImpl
- All Implemented Interfaces:
CustomFieldService
@Service("gh-customFieldService")
public class CustomFieldServiceImpl
extends Object
implements CustomFieldService
-
Field Summary
FieldsFields inherited from interface com.atlassian.greenhopper.customfield.CustomFieldService
SERVICE -
Constructor Summary
Constructors -
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> prototypes) 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
-
log
-
-
Constructor Details
-
CustomFieldServiceImpl
public CustomFieldServiceImpl()
-
-
Method Details
-
createCustomField
public com.atlassian.jira.issue.fields.CustomField createCustomField(CustomFieldMetadata fieldMetadata) Description copied from interface:CustomFieldServiceCreate a new custom field in JIRA with the given configuration- Specified by:
createCustomFieldin interfaceCustomFieldService
-
associateCustomFieldContext
public com.atlassian.jira.issue.fields.config.FieldConfigScheme associateCustomFieldContext(com.atlassian.jira.issue.fields.CustomField customField, CustomFieldMetadata customFieldMetadata) Description copied from interface:CustomFieldServiceRe-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.- Specified by:
associateCustomFieldContextin interfaceCustomFieldService- Parameters:
customField- the field instancecustomFieldMetadata- the metadata which contains context and issue type information
-
associateCustomFieldContext
public com.atlassian.jira.issue.fields.config.FieldConfigScheme associateCustomFieldContext(com.atlassian.jira.issue.fields.CustomField customField, Collection<IssueTypePrototype> prototypes) Description copied from interface:CustomFieldServiceRe-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.- Specified by:
associateCustomFieldContextin interfaceCustomFieldService- Parameters:
customField- the field instanceprototypes- issue type information
-
setOptionsOrderFromMetadata
public void setOptionsOrderFromMetadata(com.atlassian.jira.issue.fields.CustomField customField, CustomFieldMetadata fieldMetadata) Description copied from interface:CustomFieldServiceSet 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.- Specified by:
setOptionsOrderFromMetadatain interfaceCustomFieldService
-
getCustomField
- Specified by:
getCustomFieldin interfaceCustomFieldService- Returns:
- the
CustomFieldinstance for the given ID, or null if it doesn't exist
-
getCustomField
- Specified by:
getCustomFieldin interfaceCustomFieldService- Returns:
- the
CustomFieldinstance for the given String ID, or null if it doesn't exist
-
removeCustomField
public void removeCustomField(com.atlassian.jira.issue.fields.CustomField customField) Description copied from interface:CustomFieldServiceRemoves 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).- Specified by:
removeCustomFieldin interfaceCustomFieldService- Parameters:
customField- the custom field object- See Also:
-
CustomFieldManager.removeCustomField(com.atlassian.jira.issue.fields.CustomField)
-
getCustomFields
public <T extends com.atlassian.jira.issue.customfields.CustomFieldType> List<com.atlassian.jira.issue.fields.CustomField> getCustomFields(Class<T> type) Description copied from interface:CustomFieldServiceReturn all custom field instances which are of typeCustomFieldService(but not sub-classes).- Specified by:
getCustomFieldsin interfaceCustomFieldService- 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
public <T extends com.atlassian.jira.issue.customfields.CustomFieldType> List<com.atlassian.jira.issue.fields.CustomField> getCustomFields(Class<T> type, boolean strict) Description copied from interface:CustomFieldServiceReturn all custom field instances which are of typeCustomFieldService, or a subclass ofCustomFieldService.- Specified by:
getCustomFieldsin interfaceCustomFieldService- 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
-
isUniqueFieldName
public boolean isUniqueFieldName(com.atlassian.jira.issue.fields.CustomField customField) Description copied from interface:CustomFieldServiceHas the custom field a unique name? Used whenever creating JQL to decide whether to use the name or the id of the field- Specified by:
isUniqueFieldNamein interfaceCustomFieldService
-
isSystemFieldName
Check whether the passed field name matches a system field name (as used by JQL)- Specified by:
isSystemFieldNamein interfaceCustomFieldService
-
isFieldApplicable
public boolean isFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField, com.atlassian.jira.issue.Issue issue) Description copied from interface:CustomFieldServiceDetermine whether the given custom field is applicable for (i.e. configured for the context of) the specified issue.- Specified by:
isFieldApplicablein interfaceCustomFieldService- Parameters:
customField- the fieldissue- the issue- Returns:
- whether or not the field is applicable
-
isFieldApplicable
public boolean isFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField, Long projectId, String issueTypeId) Description copied from interface:CustomFieldServiceDetermine whether the given custom field is applicable for (i.e. configured for the context of) the specified project and issue type.- Specified by:
isFieldApplicablein interfaceCustomFieldService- 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
public boolean isFieldVisible(com.atlassian.jira.issue.fields.CustomField customField, com.atlassian.jira.issue.Issue issue) - Specified by:
isFieldVisiblein interfaceCustomFieldService
-
makeFieldRequired
public void makeFieldRequired(com.atlassian.jira.issue.fields.CustomField field) Description copied from interface:CustomFieldServiceMake the specified field required for all configurations- Specified by:
makeFieldRequiredin interfaceCustomFieldService- Parameters:
field- the custom field.
-
verifyCustomFieldExistsInDB
Description copied from interface:CustomFieldServiceChecks if a custom field with the given id exists in the database- Specified by:
verifyCustomFieldExistsInDBin interfaceCustomFieldService- Returns:
-
verifyCustomFieldExistsInDB
Description copied from interface:CustomFieldServiceChecks 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.- Specified by:
verifyCustomFieldExistsInDBin interfaceCustomFieldService- Returns:
-