Class TimeTrackingSystemField

All Implemented Interfaces:
Field, HideableField, OrderableField<Object>, RequirableField, RestAwareField, RestFieldOperations, SearchableField, Comparable

public class TimeTrackingSystemField extends AbstractOrderableField<Object> implements HideableField, RequirableField, RestAwareField, RestFieldOperations
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 the UpdateIssueFieldFunction 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.