@PublicApi
public interface FieldManager
Modifier and Type | Field and Description |
---|---|
static String |
CUSTOM_FIELD_PREFIX |
Modifier and Type | Method and Description |
---|---|
Set<NavigableField> |
getAllAvailableNavigableFields() |
Set<SearchableField> |
getAllSearchableFields()
Return all the searchable fields in the system.
|
Set<CustomField> |
getAvailableCustomFields(ApplicationUser remoteUser,
Issue issue)
Retrieves custom fields in scope for the given issue
|
Set<NavigableField> |
getAvailableNavigableFields(ApplicationUser remoteUser) |
Set<NavigableField> |
getAvailableNavigableFieldsWithScope(ApplicationUser user)
Gets all the available fields that the user can see, this is providing no context scope.
|
Set<NavigableField> |
getAvailableNavigableFieldsWithScope(ApplicationUser user,
QueryContext queryContext)
Gets all the available fields within the defined scope of the QueryContext.
|
ConfigurableField |
getConfigurableField(String id) |
CustomField |
getCustomField(String id)
Get a CustomField by its text key (eg 'customfield_10000').
|
Field |
getField(String id)
Get a field by its id.
|
HideableField |
getHideableField(String id) |
IssueTypeField |
getIssueTypeField()
Retrieve the IssueType system Field.
|
NavigableField |
getNavigableField(String id) |
Set<NavigableField> |
getNavigableFields() |
OrderableField |
getOrderableField(String id) |
Set<OrderableField> |
getOrderableFields() |
ProjectField |
getProjectField()
Retrieve the Project system Field.
|
RequirableField |
getRequiredField(String id) |
Set<SearchableField> |
getSystemSearchableFields()
Return all the searchable systems fields.
|
Set<Field> |
getUnavailableFields() |
Set<FieldLayout> |
getVisibleFieldLayouts(ApplicationUser user)
Returns all the visible FieldLayouts for the given user.
|
boolean |
isCustomField(Field field) |
boolean |
isCustomField(String id)
Deprecated.
Use
isExistingCustomField(java.lang.String) or isCustomFieldId(java.lang.String) instead. Since v6.5. |
boolean |
isCustomFieldId(String id)
Returns true if the given field ID is in the custom field format.
|
boolean |
isExistingCustomField(String id)
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 one
FieldLayout that the user can see
(assigned to projects for which the user has the ProjectPermissions.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 |
isHideableField(String id) |
boolean |
isMandatoryField(Field field) |
boolean |
isMandatoryField(String id) |
boolean |
isNavigableField(Field field) |
boolean |
isNavigableField(String id) |
boolean |
isOrderableField(Field field) |
boolean |
isOrderableField(String id) |
boolean |
isRenderableField(Field field) |
boolean |
isRenderableField(String id) |
boolean |
isRequirableField(Field field) |
boolean |
isRequirableField(String id) |
boolean |
isTimeTrackingOn() |
boolean |
isUnscreenableField(Field field) |
boolean |
isUnscreenableField(String id) |
void |
refresh()
Invalidates all field-related caches in JIRA.
|
static final String CUSTOM_FIELD_PREFIX
Field getField(String id)
id
- An IssueFieldConstants
constant, or custom field key (eg. "customfield_10010")boolean isCustomField(String id)
isExistingCustomField(java.lang.String)
or isCustomFieldId(java.lang.String)
instead. Since v6.5.id
- the field IDboolean isCustomFieldId(String id)
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).
id
- the field IDisExistingCustomField(java.lang.String)
boolean isExistingCustomField(String id)
Checking for existance comes with a performance price, so use where possible
.
id
- the field IDisCustomFieldId(java.lang.String)
boolean isCustomField(Field field)
@Nullable CustomField getCustomField(String id)
id
- Eg. 'customfield_10000'CustomField
or null if not found.boolean isHideableField(String id)
boolean isHideableField(Field field)
HideableField getHideableField(String id)
boolean isOrderableField(String id)
boolean isOrderableField(Field field)
OrderableField getOrderableField(String id)
ConfigurableField getConfigurableField(String id)
Set<OrderableField> getOrderableFields()
Set<NavigableField> getNavigableFields()
boolean isNavigableField(String id)
boolean isNavigableField(Field field)
NavigableField getNavigableField(String id)
boolean isRequirableField(String id)
boolean isRequirableField(Field field)
boolean isMandatoryField(String id)
boolean isMandatoryField(Field field)
boolean isRenderableField(String id)
boolean isRenderableField(Field field)
boolean isUnscreenableField(String id)
boolean isUnscreenableField(Field field)
RequirableField getRequiredField(String id)
void refresh()
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 a FooUpdatedEvent
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.
boolean isFieldHidden(ApplicationUser remoteUser, Field field)
boolean isFieldHidden(ApplicationUser remoteUser, String fieldId)
FieldLayout
that the user can see
(assigned to projects for which the user has the ProjectPermissions.BROWSE_PROJECTS
permission).remoteUser
- the remote user.fieldId
- The Field IDboolean isFieldHidden(Set<FieldLayout> fieldLayouts, Field field)
This method can be used in conjunction with getVisibleFieldLayouts(com.atlassian.jira.user.ApplicationUser)
to provide a more performant way of looking up isFieldHidden(com.atlassian.jira.user.ApplicationUser, Field)
multiple times.
Instead, it is more efficient to do something like:
SetfieldLayouts = fieldManager.getVisibleFieldLayouts(loggedInUser); for (Field field: myFields) { if (fieldManager.isFieldHidden(fieldLayouts1, field)) { ... } }
fieldLayouts
- The FieldLayouts to checkfield
- The field to checkgetVisibleFieldLayouts(com.atlassian.jira.user.ApplicationUser)
,
isFieldHidden(com.atlassian.jira.user.ApplicationUser, Field)
Set<FieldLayout> getVisibleFieldLayouts(ApplicationUser user)
This is used in conjunction with isFieldHidden(Set, Field)
as a performance optimisation in usages that want to call isFieldHidden(com.atlassian.jira.user.ApplicationUser, Field)
multiple times.
Instead, it is more efficient to do something like:
SetfieldLayouts = fieldManager.getVisibleFieldLayouts(loggedInUser); for (Field field: myFields) { if (fieldManager.isFieldHidden(fieldLayouts1, field)) { ... } }
user
- the user whose project browsing permissions are used to limit visible FieldLayouts.Set<NavigableField> getAvailableNavigableFieldsWithScope(ApplicationUser user) throws FieldException
user
- the remote user.FieldException
- thrown if there is a problem looking up the fieldsSet<NavigableField> getAvailableNavigableFieldsWithScope(ApplicationUser user, QueryContext queryContext) throws FieldException
user
- the user making the requestqueryContext
- the context of the search request.FieldException
- thrown if there is a problem looking up the fieldsSet<CustomField> getAvailableCustomFields(ApplicationUser remoteUser, Issue issue) throws FieldException
remoteUser
- Remote com.atlassian.jira.user.ApplicationUserissue
- IssueFieldException
- if cannot retrieve the projects the user can see, or if cannot retrieve
the field layouts for the viewable projectsSet<NavigableField> getAllAvailableNavigableFields() throws FieldException
FieldException
Set<NavigableField> getAvailableNavigableFields(ApplicationUser remoteUser) throws FieldException
FieldException
Set<SearchableField> getAllSearchableFields()
Set<SearchableField> getSystemSearchableFields()
IssueTypeField getIssueTypeField()
ProjectField getProjectField()
boolean isTimeTrackingOn()
Copyright © 2002-2018 Atlassian. All Rights Reserved.