Interface CustomFieldManager
- All Known Implementing Classes:
CachingCustomFieldManager
,MockCustomFieldManager
CustomField
s.-
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
clear the cachecreateCustomField
(String fieldName, String description, CustomFieldType fieldType, CustomFieldSearcher customFieldSearcher, List<JiraContextNode> contexts, List<IssueType> issueTypes) Creates a custom field with the given name and description of the given CustomFieldType using the given CustomFieldSearcher that is displayed in the given list of contexts available to the given list of issueTypes.boolean
Returns true if this customfield actually exists.getCustomFieldInstance
(org.ofbiz.core.entity.GenericValue customFieldGv) Converts a customfieldGenericValue
to aCustomField
instance.Get a CustomField by ID.Get a CustomField by its text key (eg 'customfield_10000').getCustomFieldObjectByName
(String customFieldName) Deprecated.Returns all custom fields.getCustomFieldObjects
(Issue issue) Returns a list ofCustomField
s that apply to a particular issue.getCustomFieldObjects
(SearchContext searchContext) Returns all customfields in a particularSearchContext
.getCustomFieldObjects
(Long projectId, String issueType) Gets a list of custom fields for a particular project and issue type.getCustomFieldObjects
(Long projectId, List<String> issueTypes) Returns the same asgetCustomFieldObjects(Long, String)
but allows to specify a list of issueTypes.getCustomFieldObjects
(org.ofbiz.core.entity.GenericValue issue) Deprecated.getCustomFieldObjectsByName
(String customFieldName) Retrieve custom field(s) of a certain name.getCustomFieldObjectsByNameIgnoreCase
(String customFieldName) Retrieve custom field(s) of a certain name ignoring case.Retrieve a custom field searcher by its type key.Class<? extends CustomFieldSearcher>
Retrieve a custom field searcher by its type key.getCustomFieldSearchers
(CustomFieldType customFieldType) Retrieves all the searchers registered for a particular custom Field.getCustomFieldsWithValue
(Issue issue) Returns a set ofCustomField
s that have value stored in database for particular issue.getCustomFieldType
(String key) Retrieve a custom field type by its type key.List<CustomFieldType<?,
?>> Retrieve all customfieldtypes registered in the system.getDefaultSearcher
(CustomFieldType<?, ?> type) Return the defaultCustomFieldSearcher
for the passedCustomFieldType
.Returns a list of custom fields where theCustomField.isGlobal()
is true.boolean
isCustomField
(String id) Returns true if this ID is in the Custom Field format.void
refresh()
reloads all customfields into the cache from the DB, this is an expensive operation, so avoid it if you can.void
refreshConfigurationSchemes
(Long customFieldId) Causes a reload of the field configuration scheme for a specified custom field id Call when the configuration scheme changesvoid
removeCustomField
(CustomField customField) Removes the customfield supplied including all associations and values.void
removeCustomFieldPossiblyLeavingOrphanedData
(Long customFieldId) Removes the customfield supplied.void
removeCustomFieldValues
(org.ofbiz.core.entity.GenericValue issue) Removes the values stored by customfields for a particular Issue.void
removeProjectAssociations
(Project project) Used if a project is deleted to remove the project field associations.void
updateCustomField
(Long id, String name, String description, CustomFieldSearcher searcher) Updates the given custom field.
-
Method Details
-
getCustomFieldObjectsByName
Retrieve custom field(s) of a certain name.- Parameters:
customFieldName
- custom field name- Returns:
- A collection of
CustomField
s.
-
getCustomFieldObjectsByNameIgnoreCase
Retrieve custom field(s) of a certain name ignoring case.- Parameters:
customFieldName
- custom field name- Returns:
- A collection of
CustomField
s.
-
getCustomFieldObjectByName
Deprecated.usegetCustomFieldObjectsByName(String)
instead.Retrieve the first custom field object with the specified name. WARNING: Custom Field names are no longer guaranteed to be unique. This method returns the first named custom field. UsegetCustomFieldObjectsByName(String)
to retrieve all custom fields.- Parameters:
customFieldName
- the Name- Returns:
- The first named
CustomField
, or null if not found.
-
getCustomFieldObject
Get a CustomField by ID.- Parameters:
id
- ID of field, eg. 10000- Returns:
- The
CustomField
or null.
-
getCustomFieldObject
Get a CustomField by its text key (eg 'customfield_10000').- Parameters:
id
- Eg. 'customfield_10000'- Returns:
- The
CustomField
or null if not found.
-
isCustomField
Returns true if this ID is in the Custom Field format.Note that this does not check if the Custom Field actually exists. It just checks whether the given ID looks like Custom Field ID (eg starts with "customfield_").
- Parameters:
id
- The Field ID- Returns:
- true if this is an ID for a Custom Field.
- Since:
- 6.4
- See Also:
-
exists
Returns true if this customfield actually exists. This saves unnecessary copying of custom field objects when all we want to know is "does it exist"- Parameters:
id
- Eg. 'customfield_10000'- Returns:
- true if the custom field is returned
- See Also:
-
getCustomFieldObjects
List<CustomField> getCustomFieldObjects()Returns all custom fields.- Returns:
- A list of all
CustomField
s.
-
getGlobalCustomFieldObjects
List<CustomField> getGlobalCustomFieldObjects()Returns a list of custom fields where theCustomField.isGlobal()
is true.- Returns:
- A list of
CustomField
s
-
getCustomFieldObjects
Gets a list of custom fields for a particular project and issue type.- Parameters:
projectId
- Id of the projectissueType
- An issue type. SeeConstantsManager.ALL_ISSUE_TYPES
,ConstantsManager.ALL_STANDARD_ISSUE_TYPES
andConstantsManager.ALL_SUB_TASK_ISSUE_TYPES
- Returns:
- A list of
CustomField
s
-
getCustomFieldObjects
Returns the same asgetCustomFieldObjects(Long, String)
but allows to specify a list of issueTypes.- Parameters:
projectId
- Id of the project. It can be null, in which case means that we are looking for "any project" (acts like a wildcard).issueTypes
- A list of issue types. It can be null or empty, in which case means that we are looking for "any issue type" (acts like a wildcard). SeeConstantsManager.ALL_ISSUE_TYPES
,ConstantsManager.ALL_STANDARD_ISSUE_TYPES
andConstantsManager.ALL_SUB_TASK_ISSUE_TYPES
- Returns:
- A list of
CustomField
s
-
getCustomFieldObjects
Returns all customfields in a particularSearchContext
. Also seeCustomField.isInScope(com.atlassian.jira.issue.search.SearchContext)
.- Parameters:
searchContext
- the SearchContext- Returns:
- A list of
CustomField
s
-
getCustomFieldObjects
Deprecated.Returns a list ofCustomField
s that apply to a particular issue.- Parameters:
issue
- AGenericValue
of the issue- Returns:
- A list of
CustomField
s
-
getCustomFieldObjects
Returns a list ofCustomField
s that apply to a particular issue.- Parameters:
issue
- AIssue
object- Returns:
- A list of
CustomField
s
-
getCustomFieldTypes
Retrieve all customfieldtypes registered in the system.- Returns:
- a list of
CustomFieldType
s
-
getCustomFieldType
Retrieve a custom field type by its type key.The key is the "full plugin module key". That is, the plugin key for the plugin it comes from, a colon separator, and then the module key. e.g. the system types are specified in system-customfieldtypes-plugin.xml:
<atlassian-plugin key="com.atlassian.jira.plugin.system.customfieldtypes" name="Custom Field Types & Searchers"> ... <customfield-type key="float" name="Number Field" ...
To access the 'Number Field' type, the key would then be 'com.atlassian.jira.plugin.system.customfieldtypes:float'.- Parameters:
key
- Type identifier constructed from plugin XML.- Returns:
- the CustomFieldType for the given key
-
getCustomFieldSearchers
Retrieves all the searchers registered for a particular custom Field. Searchers may be registred via:<customfield-searcher key="daterange" name="Date Range picker" i18n-name-key="admin.customfield.searcher.daterange.name" class="com.atlassian.jira.issue.customfields.searchers.DateRangeSearcher">
- Parameters:
customFieldType
- the CustomFieldType- Returns:
- A list of
CustomFieldSearcher
s
-
getCustomFieldSearcher
Retrieve a custom field searcher by its type key.The key is the "full plugin module key". That is, the plugin key for the plugin it comes from, a colon separator, and then the module key. e.g. the system types are specified in system-customfieldtypes-plugin.xml:
<atlassian-plugin key="com.atlassian.jira.plugin.system.customfieldtypes" name="Custom Field Types & Searchers"> ... <customfield-type key="float" name="Number Field" ...
To access the 'Number Field' type, the key would then be 'com.atlassian.jira.plugin.system.customfieldtypes:float'.- Parameters:
key
- Type identifier constructed from plugin XML.- Returns:
- the CustomFieldSearcher for the given key
-
getDefaultSearcher
Return the defaultCustomFieldSearcher
for the passedCustomFieldType
. The default searcher can be null if there is no searcher associated with the type.- Parameters:
type
- theCustomFieldType
to query.- Returns:
- the default searcher for the passed
CustomFieldType
. Can be null if the type has no associated searcher.
-
createCustomField
CustomField createCustomField(String fieldName, String description, CustomFieldType fieldType, CustomFieldSearcher customFieldSearcher, List<JiraContextNode> contexts, List<IssueType> issueTypes) throws org.ofbiz.core.entity.GenericEntityException Creates a custom field with the given name and description of the given CustomFieldType using the given CustomFieldSearcher that is displayed in the given list of contexts available to the given list of issueTypes.- Returns:
- the newly created CustomField.
- Throws:
org.ofbiz.core.entity.GenericEntityException
- if the CustomField could not be created.
-
removeCustomFieldPossiblyLeavingOrphanedData
void removeCustomFieldPossiblyLeavingOrphanedData(Long customFieldId) throws RemoveException, IllegalArgumentException Removes the customfield supplied. This method will try to lookup the customfield object via the manager first. If the customfield object can be retrieved this way, it simply delegates the removal to theremoveCustomField(com.atlassian.jira.issue.fields.CustomField)
method, which will not leave any orphaned data behind.NOTE: Generally you should use the
removeCustomField(com.atlassian.jira.issue.fields.CustomField)
method to remove a custom field, as it is guaranteed to remove all data. This method should only be used if a customfield needs to be removed when the customfieldtype for that field is no longer available!If however the customfield object cannot be retrieved via the manager, which may be the case if the custom field type is no longer available (a plugin may have been removed), then this method will try to lookup the custom field directly in the database. If it doesn't exist in the database, an IllegalArgumentException will be thrown. Otherwise, the customfield and all associated configurations will be removed. This method will also call to the
CustomFieldValuePersister.removeAllValues(String)
method to delete any values. Please note however, that if your custom field stores any other values (such as options for example), they will have to be removed by the caller of this method, as the custom field type is not accessible (which is usually responsible for removing such values).- Parameters:
customFieldId
- The id of the customField to be removed.- Throws:
RemoveException
- On any error removing the custom fieldIllegalArgumentException
- If no customfield matching the customFieldId can be found
-
removeCustomField
Removes the customfield supplied including all associations and values.- Parameters:
customField
- TheCustomField
to be removed.- Throws:
RemoveException
- On any error removing the custom field
-
updateCustomField
Updates the given custom field.- Parameters:
id
- the custom field IDname
- the new namedescription
- the new descriptionsearcher
- the new Searcher
-
removeCustomFieldValues
void removeCustomFieldValues(org.ofbiz.core.entity.GenericValue issue) throws org.ofbiz.core.entity.GenericEntityException Removes the values stored by customfields for a particular Issue.- Parameters:
issue
- The issueGenericValue
- Throws:
org.ofbiz.core.entity.GenericEntityException
- DB error
-
getCustomFieldsWithValue
Returns a set ofCustomField
s that have value stored in database for particular issue.- Parameters:
issue
- AnIssue
object- Returns:
- A set of
CustomField
s - Since:
- 8.1
-
removeProjectAssociations
Used if a project is deleted to remove the project field associations.- Parameters:
project
- The project being deleted.
-
getCustomFieldInstance
Converts a customfieldGenericValue
to aCustomField
instance.- Parameters:
customFieldGv
-- Returns:
- a
CustomField
instance
-
refresh
void refresh()reloads all customfields into the cache from the DB, this is an expensive operation, so avoid it if you can. -
refreshConfigurationSchemes
Causes a reload of the field configuration scheme for a specified custom field id Call when the configuration scheme changes- Parameters:
customFieldId
- the custom field ID
-
clear
void clear()clear the cache -
getCustomFieldSearcherClass
Retrieve a custom field searcher by its type key.The key is the "full plugin module key". That is, the plugin key for the plugin it comes from, a colon separator, and then the module key. e.g. the system types are specified in system-customfieldtypes-plugin.xml:
<atlassian-plugin key="com.atlassian.jira.plugin.system.customfieldtypes" name="Custom Field Types & Searchers"> ... <customfield-type key="float" name="Number Field" ...
To access the 'Number Field' type, the key would then be 'com.atlassian.jira.plugin.system.customfieldtypes:float'.- Parameters:
key
- Type identifier constructed from plugin XML.
-
getCustomFieldObjectsByName(String)
instead.