Interface FieldManager
- All Known Implementing Classes:
DefaultFieldManager
,MockFieldManager
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionReturn all the searchable fields in the system.getAvailableCustomFields
(ApplicationUser remoteUser, Issue issue) Retrieves custom fields in scope for the given issuegetAvailableNavigableFields
(ApplicationUser remoteUser) Gets all the available fields that the user can see, this is providing no context scope.getAvailableNavigableFieldsWithScope
(ApplicationUser user, QueryContext queryContext) Gets all the available fields within the defined scope of the QueryContext.getCustomField
(String id) Get a CustomField by its text key (eg 'customfield_10000').Get a field by its id.Retrieve the IssueType system Field.Retrieve the Project system Field.Return all the searchable systems fields.Returns all the visible FieldLayouts for the given user.boolean
isCustomField
(Field field) boolean
isCustomField
(String id) Deprecated.boolean
Returns true if the given field ID is in the custom field format.boolean
Returns true if the given ID is a Custom Field that actually exists in JIRA.boolean
isFieldHidden
(ApplicationUser remoteUser, Field field) boolean
isFieldHidden
(ApplicationUser remoteUser, String fieldId) Determines whether the field with id of fieldId is NOT hidden in AT LEAST oneFieldLayout
that the user can see (assigned to projects for which the user has theProjectPermissions.BROWSE_PROJECTS
permission).boolean
isFieldHidden
(Set<FieldLayout> fieldLayouts, Field field) Checks whether the given field is hidden in all of the given Field Layouts.boolean
isHideableField
(Field field) boolean
boolean
isMandatoryField
(Field field) boolean
boolean
isNavigableField
(Field field) boolean
boolean
isOrderableField
(Field field) boolean
boolean
isRenderableField
(Field field) boolean
boolean
isRequirableField
(Field field) boolean
boolean
boolean
isUnscreenableField
(Field field) boolean
void
refresh()
Invalidates all field-related caches in JIRA.
-
Field Details
-
CUSTOM_FIELD_PREFIX
- See Also:
-
-
Method Details
-
getField
Get a field by its id.- Parameters:
id
- AnIssueFieldConstants
constant, or custom field key (eg. "customfield_10010")- Returns:
- the Field
-
isCustomField
Deprecated.UseisExistingCustomField(java.lang.String)
orisCustomFieldId(java.lang.String)
instead. Since v6.5.Returns true if the given ID is a Custom Field that actually exists in JIRA.- Parameters:
id
- the field ID- Returns:
- true if the given ID is a Custom Field that actually exists in JIRA.
-
isCustomFieldId
Returns true if the given field ID is in the custom field format.This method just checks that the ID looks like a Custom Field (it starts with "customfield_") but not that the custom field actually exists (it could have been deleted).
- Parameters:
id
- the field ID- Returns:
- true if the given ID is a Custom Field that actually exists in JIRA.
- Since:
- 6.5
- See Also:
-
isExistingCustomField
Returns true if the given ID is a Custom Field that actually exists in JIRA.Checking for existance comes with a performance price, so use
where possible
.- Parameters:
id
- the field ID- Returns:
- true if the given ID is a Custom Field that actually exists in JIRA.
- Since:
- 6.5
- See Also:
-
isCustomField
-
getCustomField
Get a CustomField by its text key (eg 'customfield_10000').- Parameters:
id
- Eg. 'customfield_10000'- Returns:
- The
CustomField
or null if not found.
-
isHideableField
-
isHideableField
-
getHideableField
-
isOrderableField
-
isOrderableField
-
getOrderableField
-
getConfigurableField
-
getOrderableFields
Set<OrderableField> getOrderableFields() -
isRequirableField
-
isRequirableField
-
isMandatoryField
-
isMandatoryField
-
isRenderableField
-
isRenderableField
-
isUnscreenableField
-
isUnscreenableField
-
getRequiredField
-
refresh
void refresh()Invalidates all field-related caches in JIRA.WARNING
This method invalidates a whole lot of JIRA caches, which means that JIRA performance significantly degrades after this method has been called. For this reason, you should avoid calling this method at all costs.The correct approach to invalidate the cache entries is to do it in the "store" inside the
FooStore.updateFoo()
method, where you can invalidate a single cache entry. If the cache lives in another class then the store should raise aFooUpdatedEvent
which that class can listen to in order to keep its caches up to date.If you add any calls to this method in JIRA I will hunt you down and subject you to a Spanish inquisition.
-
isFieldHidden
-
isFieldHidden
Determines whether the field with id of fieldId is NOT hidden in AT LEAST oneFieldLayout
that the user can see (assigned to projects for which the user has theProjectPermissions.BROWSE_PROJECTS
permission).- Parameters:
remoteUser
- the remote user.fieldId
- The Field ID
-
isFieldHidden
Checks whether the given field is hidden in all of the given Field Layouts.This method can be used in conjunction with
getVisibleFieldLayouts(com.atlassian.jira.user.ApplicationUser)
to provide a more performant way of looking upisFieldHidden(com.atlassian.jira.user.ApplicationUser, Field)
multiple times. Instead, it is more efficient to do something like:Set
fieldLayouts = fieldManager.getVisibleFieldLayouts(loggedInUser); for (Field field: myFields) { if (fieldManager.isFieldHidden(fieldLayouts1, field)) { ... } } - Parameters:
fieldLayouts
- The FieldLayouts to checkfield
- The field to check- Returns:
- true if the given field is hidden in all of the given Field Layouts.
- See Also:
-
getVisibleFieldLayouts
Returns all the visible FieldLayouts for the given user.This is used in conjunction with
isFieldHidden(Set, Field)
as a performance optimisation in usages that want to callisFieldHidden(com.atlassian.jira.user.ApplicationUser, Field)
multiple times. Instead, it is more efficient to do something like:Set
fieldLayouts = fieldManager.getVisibleFieldLayouts(loggedInUser); for (Field field: myFields) { if (fieldManager.isFieldHidden(fieldLayouts1, field)) { ... } } - Parameters:
user
- the user whose project browsing permissions are used to limit visible FieldLayouts.- Returns:
- all the visible FieldLayouts for the given user.
-
getAvailableCustomFields
Set<CustomField> getAvailableCustomFields(ApplicationUser remoteUser, Issue issue) throws FieldException Retrieves custom fields in scope for the given issue- Parameters:
remoteUser
- Remote com.atlassian.jira.user.ApplicationUserissue
- Issue- Returns:
- custom fields in scope for the given issue
- Throws:
FieldException
- if cannot retrieve the projects the user can see, or if cannot retrieve the field layouts for the viewable projects
-
getAllSearchableFields
Set<SearchableField> getAllSearchableFields()Return all the searchable fields in the system. This set will included all defined custom fields.- Returns:
- the set of all searchable fields in the system.
-
getSystemSearchableFields
Set<SearchableField> getSystemSearchableFields()Return all the searchable systems fields. This set will *NOT* include defined custom fields.- Returns:
- the set of all searchable systems fields defined.
-
getIssueTypeField
IssueTypeField getIssueTypeField()Retrieve the IssueType system Field.- Returns:
- the IssueType system Field.
-
getProjectField
ProjectField getProjectField()Retrieve the Project system Field.- Returns:
- the Project system Field.
-
isTimeTrackingOn
boolean isTimeTrackingOn()
-
isExistingCustomField(java.lang.String)
orisCustomFieldId(java.lang.String)
instead.