Class DefaultIssueToSubTaskConversionService

java.lang.Object
com.atlassian.jira.bc.subtask.conversion.DefaultIssueConversionService
com.atlassian.jira.bc.subtask.conversion.DefaultIssueToSubTaskConversionService
All Implemented Interfaces:
IssueConversionService, IssueToSubTaskConversionService

public class DefaultIssueToSubTaskConversionService extends DefaultIssueConversionService implements IssueToSubTaskConversionService
Default implementation of IssueToSubTaskConversionService.
  • Constructor Details

  • Method Details

    • canConvertIssue

      public boolean canConvertIssue(JiraServiceContext context, Issue issue)
      As per the IssueToSubTaskConversionService interface.

      NOTE: We also considered a check for number of issues in the project and returning false if project has only one issue. This was not implemented as it would impair the performance of this method.

      Specified by:
      canConvertIssue in interface IssueConversionService
      Parameters:
      context - JIRA Service Context
      issue - issue to convert
      Returns:
      true if user can convert issue to a sub-task
      Throws:
      IllegalArgumentException - if context or issue is null
    • validateTargetIssueType

      public void validateTargetIssueType(JiraServiceContext context, Issue issue, IssueType issueType, String fieldNameIssueTypeId)
      Description copied from interface: IssueConversionService
      Validates that the issue can be converted to given issue type. Any errors are communicated back via error collection in the context.
      Specified by:
      validateTargetIssueType in interface IssueConversionService
      Parameters:
      context - jira service context
      issue - issue to convert
      issueType - target issue type
      fieldNameIssueTypeId - form field name of the issue type id
    • canIssueSecurityFieldIgnore

      protected boolean canIssueSecurityFieldIgnore()
      For an issue to subtask conversion, we can safely ignore the issue security field since the subtask will always take the security level of the parent issue.
      Specified by:
      canIssueSecurityFieldIgnore in class DefaultIssueConversionService
      Returns:
      true if it is safe to ignore the security field.
    • validateParentIssue

      public void validateParentIssue(JiraServiceContext context, Issue issue, Issue parentIssue, String fieldNameParentIssueKey)
      Description copied from interface: IssueToSubTaskConversionService
      Validates the given parent issue key for issue key. Any errors are communicated back via error collection in the context.
      Specified by:
      validateParentIssue in interface IssueToSubTaskConversionService
      Parameters:
      context - jira service context
      issue - issue to convert
      parentIssue - possible parrent issue to check
      fieldNameParentIssueKey - form field name of the parrent issue key
    • preStoreUpdates

      public void preStoreUpdates(JiraServiceContext context, IssueChangeHolder changeHolder, Issue currentIssue, MutableIssue targetIssue)
      Description copied from interface: IssueConversionService
      Allows for a plugin point to extra updates specific to that sub class
      Specified by:
      preStoreUpdates in interface IssueConversionService
      Parameters:
      context - jira service context
      changeHolder - holds all the change items
      currentIssue - original issue with no updates
      targetIssue - target issue with all fields updated
    • isNotNullAndNotEqualTo

      protected static boolean isNotNullAndNotEqualTo(Long id1, Long id2)
      Returns true if id1 is not null and not equal to id2, false otherwise.
      Parameters:
      id1 - id1
      id2 - id2
      Returns:
      true if id1 is not null and not equal to id2, false otherwise
    • getLongToStringNullSafe

      protected static String getLongToStringNullSafe(Long aLong)
      Returns a String as a result of toString() call or null if aLong was null.
      Parameters:
      aLong - long
      Returns:
      String as a result of toString() call or null if aLong was null
    • projectHasSubTasks

      protected boolean projectHasSubTasks(Project project)
      Returns true if given project has sub-task Issue Types in its Issue Type scheme
      Parameters:
      project - to to test
      Returns:
      true if project has sub-task Issue Types in its Issue Type Scheme