java.lang.Object | |||
↳ | com.atlassian.jira.issue.fields.AbstractField | ||
↳ | com.atlassian.jira.issue.fields.AbstractOrderableField | ||
↳ | com.atlassian.jira.issue.fields.TimeTrackingSystemField |
The TimeTrackingSystemField is responsible for "maintaining" the 2 estimates values, namely Original Estimate and Remaining Estimate.
Since 4.2 it has two modes of operation, the older legacy mode that keeps original and remaining estimate tied together while work is not logged and the more modern mode that allows the 2 values to be edited and set independently. NOTES: Whenever you see the targetSubField mentioned its because theUpdateIssueFieldFunction
tries to jam 1 value into this field. in the past this kinda worked but in the post separation world, it becomes more complicated.
So we keep track of the "target" that wants to be updated and then we spend lots of effort making sure only that sub field gets updated.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
TimeTrackingSystemField.TimeTrackingValue | This interface is used as a value object for TimeTracking information. |
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | TIMETRACKING_ORIGINALESTIMATE | ||||||||||
String | TIMETRACKING_REMAININGESTIMATE | ||||||||||
String | TIMETRACKING_TARGETSUBFIELD | When this input parameter is specified then we are only wanted to set a specific sub field of time tracking. |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.atlassian.jira.issue.fields.OrderableField
|
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
com.atlassian.jira.issue.fields.AbstractField
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns HTML that should be shown when the issue is being bulk edited.
| |||||||||||
Returns lower level Information about the field.
| |||||||||||
Return The default data for this system field.
| |||||||||||
Return a FieldJsonDataPair containing a json representation of the raw data for this field, and if required, a json representation
of the rendered data for easy display.
| |||||||||||
Return a description of the shape of this field when represented as JSON.
| |||||||||||
This is called from BulkEdit/BulkWorkflowTransition to get an value object from a input set of values.
| |||||||||||
Basic implementation where the relevant params object is null if no elements are present.
| |||||||||||
We don't return any default for the TimeTracking field.
| |||||||||||
This is called to populate the field values holder with the current state of the Issue object.
| |||||||||||
This will populate the field values holder map with the time tracking value contained within the map of
(typically but not always web) parameters.
| |||||||||||
This is called by Jelly code to map a value into a field values holder.
| |||||||||||
This is called to back update the MutableIssue with the value object we previously stuffed into the field values holder. | |||||||||||
This is called after the issue has been stored on disk and allows us a chance to create change records for the
update.
| |||||||||||
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
This is implemented in response to use being an AbstractOrderableField.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
com.atlassian.jira.issue.fields.AbstractOrderableField
| |||||||||||
From class
com.atlassian.jira.issue.fields.AbstractField
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
com.atlassian.jira.issue.fields.Field
| |||||||||||
From interface
com.atlassian.jira.issue.fields.OrderableField
| |||||||||||
From interface
com.atlassian.jira.issue.fields.SearchableField
| |||||||||||
From interface
com.atlassian.jira.issue.fields.rest.RestAwareField
| |||||||||||
From interface
com.atlassian.jira.issue.fields.rest.RestFieldOperations
| |||||||||||
From interface
java.lang.Comparable
|
When this input parameter is specified then we are only wanted to set a specific sub field of time tracking. This parameter will say which one.
This is used by theUpdateIssueFieldFunction
so that it can
set say original estimate only for example.
Returns HTML that should be shown when the issue is being bulk edited.
By default calls the getEditHtml(com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem, com.atlassian.jira.issue.customfields.OperationContext, webwork.action.Action, com.atlassian.jira.issue.Issue, java.util.Map)
method with null for FieldLayoutItem
and the first issue in the collection}
operationContext | OperationContext |
---|---|
action | Action |
bulkEditBean | BulkEditBean |
displayParameters | Map of display parameters. |
Returns lower level Information about the field. This information contains allowed values and/or the autocomplete url
fieldTypeInfoContext | the FieldTypeInfoContext contains context information that is relevant to generate the FieldTypeInfo
|
---|
Return The default data for this system field. May be null if there is no default.
issueCtx | Issue (This should really only need to be an issue context, but for historical reasons we need an issue object. |
---|
Return a FieldJsonDataPair containing a json representation of the raw data for this field, and if required, a json representation of the rendered data for easy display.
issue | to get field data from |
---|---|
renderedVersionRequested | whether the use requested the return of rendered/pretty data as well as raw data |
fieldLayoutItem | field layout for this field. Will only be supplied if the field is also an ordereable field. |
Return a description of the shape of this field when represented as JSON.
This is called from BulkEdit/BulkWorkflowTransition to get an value object from a input set of values.
fieldValueHolder | the map of parameters. |
---|
Basic implementation where the relevant params object is null if no elements are present. Some fields need to override this because of their innate complex behaviour.
parameters | Map of parameters. |
---|
We don't return any default for the TimeTracking field.
fieldValuesHolder | The fieldValuesHolder Map to be populated. |
---|---|
issue | The issue in play. |
This is called to populate the field values holder with the current state of the Issue object. For example this will be called when the issue is edited.
fieldValuesHolder | The fieldValuesHolder Map to be populated. |
---|---|
issue | The issue in play. |
This will populate the field values holder map with the time tracking value contained within the map of (typically but not always web) parameters.
We override this so we can see this happen. This helps for debugging reasons. Damn you class hierarchies, you are confusing me! This will end up callinggetRelevantParams(Map)
by the way.fieldValuesHolder | the writable map of field values in play. |
---|---|
inputParameters | the input parameters. |
This is called by Jelly code to map a value into a field values holder.
fieldValuesHolder | Map of field Values. |
---|---|
stringValue | user friendly string value. |
issue | the issue in play. |
FieldValidationException |
---|
This is called to back update the MutableIssue with the value object we previously stuffed into the field values holder.
This is called prior to the issue being stored on disk.
fieldLayoutItem | FieldLayoutItem in play. |
---|---|
issue | MutableIssue in play. |
fieldValueHolder | Field Value Holder Map. |
This is called after the issue has been stored on disk and allows us a chance to create change records for the update.
fieldLayoutItem | for this field within this context. |
---|---|
issue | Issue this field is part of. |
modifiedValue | new value to set field to. Cannot be null. |
issueChangeHolder | an object to record any changes made to the issue by this method. |
This is implemented in response to use being an AbstractOrderableField. It is actually called via populateFromParams so that we can place our relevant value object into the field values holder map. See above for the code entry point.
inputParameters | the input parameters. |
---|