com.atlassian.greenhopper.customfield
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
static java.lang.String SERVICE
           
 
Method Summary
 void associateCustomFieldContext(com.atlassian.jira.issue.fields.CustomField customField, CustomFieldMetadata customFieldMetadata)
          Re-associates the custom field to the specified contexts.
 void associateWithDefaultScreen(com.atlassian.jira.issue.fields.CustomField customField)
          Associate the custom field with the "Default Screen".
 com.atlassian.jira.issue.fields.CustomField createCustomField(CustomFieldMetadata fieldMetadata)
          Create a new custom field in JIRA with the given configuration
 com.atlassian.jira.issue.fields.CustomField getCustomField(java.lang.Long id)
           
 com.atlassian.jira.issue.fields.CustomField getCustomField(java.lang.String id)
           
<T extends com.atlassian.jira.issue.customfields.CustomFieldType>
java.util.List<com.atlassian.jira.issue.fields.CustomField>
getCustomFields(java.lang.Class<T> type)
          Return all custom field instances which are of type T (but not sub-classes).
<T extends com.atlassian.jira.issue.customfields.CustomFieldType>
java.util.List<com.atlassian.jira.issue.fields.CustomField>
getCustomFields(java.lang.Class<T> type, boolean strict)
          Return all custom field instances which are of type T, or a subclass of T.
 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.
 boolean isFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField, java.lang.Long projectId, java.lang.String issueTypeId)
          Determine whether the given custom field is applicable for (i.e.
 boolean isFieldVisible(com.atlassian.jira.issue.fields.CustomField customField, com.atlassian.jira.issue.Issue issue)
           
 boolean isSystemFieldName(java.lang.String fieldName)
          Check whether the passed field name matches a system field name (as used by JQL)
 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
 void makeFieldRequired(com.atlassian.jira.issue.fields.CustomField field)
          Make the specified field required for all configurations
 void removeCustomField(com.atlassian.jira.issue.fields.CustomField customField)
          Removes the custom field and all associated data.
 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.
 

Field Detail

SERVICE

static final java.lang.String SERVICE
See Also:
Constant Field Values
Method Detail

createCustomField

com.atlassian.jira.issue.fields.CustomField createCustomField(CustomFieldMetadata fieldMetadata)
Create a new custom field in JIRA with the given configuration


associateCustomFieldContext

void 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 instance
customFieldMetadata - the metadata which contains context and issue type information

getCustomField

com.atlassian.jira.issue.fields.CustomField getCustomField(java.lang.Long id)
Returns:
the CustomField instance for the given ID, or null if it doesn't exist

getCustomField

com.atlassian.jira.issue.fields.CustomField getCustomField(java.lang.String id)
Returns:
the CustomField instance for the given String ID, or null if it doesn't exist

getCustomFields

<T extends com.atlassian.jira.issue.customfields.CustomFieldType> java.util.List<com.atlassian.jira.issue.fields.CustomField> getCustomFields(java.lang.Class<T> type)
Return all custom field instances which are of type T (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> java.util.List<com.atlassian.jira.issue.fields.CustomField> getCustomFields(java.lang.Class<T> type,
                                                                                                                                              boolean strict)
Return all custom field instances which are of type T, or a subclass of T.

Type Parameters:
T - the CustomFieldType to check for. Equality checking is done on the custom field's type.
Parameters:
type - the type to retrieve
strict - set to true to do a strict equality check on the specified type.
Returns:
the list of custom fields; never null

associateWithDefaultScreen

void associateWithDefaultScreen(com.atlassian.jira.issue.fields.CustomField customField)
Associate the custom field with the "Default Screen". Note that the first screen tab found will be used.


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

boolean isSystemFieldName(java.lang.String fieldName)
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 field
issue - the issue
Returns:
whether or not the field is applicable

isFieldApplicable

boolean isFieldApplicable(com.atlassian.jira.issue.fields.CustomField customField,
                          java.lang.Long projectId,
                          java.lang.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 field
projectId - the project the issue is in
issueTypeId - 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.


Copyright © 2007-2013 Atlassian. All Rights Reserved.