Class AbstractFieldOperationsHandler<T>

java.lang.Object
com.atlassian.jira.issue.fields.rest.AbstractFieldOperationsHandler<T>
All Implemented Interfaces:
RestFieldOperationsHandler
Direct Known Subclasses:
AbstractVersionsRestFieldOperationsHandler, AssigneeRestFieldOperationsHandler, ComponentsRestFieldOperationsHandler, DescriptionRestFieldOperationsHandler, DueDateRestFieldOperationsHandler, EnvironmentRestFieldOperationsHandler, LabelsRestFieldOperationsHandler, PriorityRestFieldOperationsHandler, ReporterRestFieldOperationsHandler, ResolutionRestFieldOperationsHandler, SecurityLevelRestFieldOperationsHandler, SingleVersionCustomFieldOperationsHandler, SummaryRestFieldOperationsHandler

public abstract class AbstractFieldOperationsHandler<T> extends Object implements RestFieldOperationsHandler
Since:
v5.0
  • Field Details

    • i18nHelper

      protected final I18nHelper i18nHelper
  • Constructor Details

    • AbstractFieldOperationsHandler

      public AbstractFieldOperationsHandler(I18nHelper i18nHelper)
  • Method Details

    • getInitialValue

      protected abstract T getInitialValue(Issue issue, ErrorCollection errors)
      compute the "currentValue" to be passed to applyOperation()
    • getInitialCreateValue

      protected abstract T getInitialCreateValue()
      compute the "currentValue" to be passed to applyOperation()
    • finaliseOperation

      protected abstract void finaliseOperation(T finalValue, IssueInputParameters parameters, ErrorCollection errors)
      takes the valuye returnd by a call to applyOperation() and puts it into the inputparams
    • updateIssueInputParameters

      public ErrorCollection updateIssueInputParameters(IssueContext issueCtx, Issue issue, String fieldId, IssueInputParameters inputParameters, List<FieldOperationHolder> operations)
      Description copied from interface: RestFieldOperationsHandler
      This method has to set the field value(s) in the IssueInputParameters based on the operations. The issue service will validate the new field values in the IssueInputParameters, thus all permission checks are done by the issue service.
      Specified by:
      updateIssueInputParameters in interface RestFieldOperationsHandler
      Parameters:
      issueCtx - the Issue Context , i.e. Project IssueType
      issue - the issue (may be null when creating an issue)
      fieldId - The Id of the field being processed.
      inputParameters - the inputparameters containing all updatd field values.
      operations - the operations to perform for this field. Has to be one of the supported operations.
      Returns:
      contains errors, if there was a problem when setting the field values on the IssueInputParameters. No errors if it was able to update the IssueInputParameters.
    • applyOperation

      protected T applyOperation(IssueContext issueCtx, Issue issue, String fieldId, StandardOperation operation, T currentFieldValue, JsonData operationValue, ErrorCollection errors)
      gets called (perhaps multiple times) to apply the given operation to the given currentValuye, retyrning the new value
    • handleRemoveOperation

      protected T handleRemoveOperation(IssueContext issueCtx, Issue issue, String fieldId, T currentFieldValue, JsonData operationValue, ErrorCollection errors)
    • handleSetOperation

      protected T handleSetOperation(IssueContext issueCtx, Issue issue, String fieldId, T currentFieldValue, JsonData operationValue, ErrorCollection errors)
    • handleAddOperation

      protected T handleAddOperation(IssueContext issueCtx, Issue issue, String fieldId, T currentFieldValue, JsonData operationValue, ErrorCollection errors)
    • toLongIds

      protected Long[] toLongIds(Collection<String> ids, String fieldName, ErrorCollection errors)