Class AbstractConvertIssue

java.lang.Object
webwork.action.ActionSupport
com.atlassian.jira.web.action.JiraWebActionSupport
com.atlassian.jira.web.action.issue.AbstractConvertIssue
All Implemented Interfaces:
ErrorCollection, I18nHelper, HttpServletVariables, AuthorizationSupport, Serializable, webwork.action.Action, webwork.action.CommandDriven, webwork.action.IllegalArgumentAware
Direct Known Subclasses:
ConvertIssueToSubTask, ConvertSubTaskToIssue

public abstract class AbstractConvertIssue extends JiraWebActionSupport
Abstract class for issue conversion Contains all do* methods and vast majority of logic
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • doDefault

      public String doDefault()
      Overrides:
      doDefault in class webwork.action.ActionSupport
    • doStartWizard

      public String doStartWizard()
      First step of this wizard. Gets the issue by given id. In case of error returns Action.ERROR view. Checks user's permission, if denied returns SECURITY_BREACH view. Checks if given issue is convertable, if not returns Action.ERROR view. Returns Action.SUCCESS view
      Returns:
      view
    • doSetIssueType

      public String doSetIssueType()
      Second step of this wizard. Gets the issue by given id. In case of error returns Action.ERROR view. Checks user's permission, if denied returns SECURITY_BREACH view. Checks if given issue is convertable and validates other values, if not returns Action.ERROR view. Returns view to update workflow or update fields view
      Returns:
      view
    • doSetWorkflowStatus

      public String doSetWorkflowStatus()
      Third step of this wizard. Gets the issue by given id. In case of error returns Action.ERROR view. Checks user's permission, if denied returns SECURITY_BREACH view. Checks if given issue is convertable and valid values were entered, if not returns Action.ERROR view. Returns Action.SUCCESS view
      Returns:
      view
    • doUpdateFields

      public String doUpdateFields()
      Fourth step of this wizard. Gets the issue by given id. In case of error returns Action.ERROR view. Checks user's permission, if denied returns SECURITY_BREACH view. Checks if given issue is convertable and valid values were entered, if not returns Action.ERROR view. Returns Action.SUCCESS view
      Returns:
      view
    • doConvert

      public String doConvert()
      Last step of this wizard. Gets the issue by given id. In case of error returns Action.ERROR view. Checks user's permission, if denied returns SECURITY_BREACH view. Checks if given issue is convertable and valid values were entered, if not returns Action.ERROR view. Executes the conversion. Returns to the issue
      Returns:
      view
    • doCancel

      public String doCancel()
      Handles the request to cancel the issue conversion wizard. Clears the session and redirects to the view issue page for the issue in play.
      Returns:
      Redirects to the view issue page.
    • initRequest

      protected void initRequest(JiraServiceContext context)
      Checks for valid state, populates the bean with values from parameters and updates bean with new GUID
      Parameters:
      context - jira service context
    • validateStep1

      protected void validateStep1(JiraServiceContextImpl context)
      Validates the first step of the wizard, subclasses can override to extend validation
      Parameters:
      context - jira service context
    • getIssue

      public Issue getIssue()
      Retrieves the worked on issue based on the Issue id.
      Returns:
      Current Issue
    • wasPassed

      protected boolean wasPassed(String param)
      Returns true is the specified parameter was passed via request parameter value
      Parameters:
      param - parameter to check
      Returns:
      true if value passed via request, false otherwise
    • getBean

      protected ConvertIssueBean getBean()
      Retrieves the wizard bean from the session. Never returns null, if no bean is found new one is created and stored in the session.
      Returns:
      wizard bean
    • getTargetIssue

      public MutableIssue getTargetIssue()
      Get Target Issue with Security Level set to null if it is needed. JRA-11605 - we need this method so that the display can prompt the user with values from system fields that are unencumbered by security level permission checks.
      Returns:
      Target Issue with nullified Security Level
    • getTargetIssueObjectWithSecurityLevel

      protected MutableIssue getTargetIssueObjectWithSecurityLevel()
      Get the issue with updated Issue type and status. Subclasses can over-ride if they need to set their own fields. E.g Issue to sub-task conversion sets the new parent issue. Security level remains intact.
      Returns:
      Cloned issue with updated issue ype and status
    • isStatusChangeRequired

      public boolean isStatusChangeRequired()
      Whether or not the issue's status is valid in the workflow
      Returns:
      true if status needs updating, false otherwise
    • getUpdatedIssue

      public MutableIssue getUpdatedIssue()
      Gets the target issue with new values set on issue
      Returns:
      Issue with all fields updated and hidden field removed
    • getConvertFieldLayoutItems

      public Collection<FieldLayoutItem> getConvertFieldLayoutItems()
      Returns a list of FieldLayoutItem that need values for conversion.
      Returns:
      list of FieldLayoutItem
    • getRemoveFields

      public Collection getRemoveFields()
      Returns a list of OrderableFields that should be removed from the target issue.
      Returns:
      a list of OrderableFields that should be removed from the target issue.
    • getTargetWorkflow

      public JiraWorkflow getTargetWorkflow()
      Utility method used by convertissuetosubtask-confirm.jsp and convertissuetosubtask-confirm-part1.jsp
      Retrieve and return workflow for selected issue's project and new (target) issue type.
      Returns:
      target workflow
      Throws:
      DataAccessException - if WorkflowException occured during retrieval
    • getFieldName

      public String getFieldName(Field field)
      Utility method used by convertissuetosubtask-confirm.jsp
      Parameters:
      field - filed
      Returns:
      field name
    • getOldViewHtml

      public String getOldViewHtml(OrderableField field)
      Gets the old view of the field before update
      Parameters:
      field - Field to display
      Returns:
      HTML to insert
    • getNewViewHtml

      public String getNewViewHtml(OrderableField field)
      Gets the ne view of the field after values have been updated
      Parameters:
      field - Field to display
      Returns:
      HTML to insert
    • getFieldHtml

      public String getFieldHtml(FieldLayoutItem fieldLayoutItem)
      Gets the create HTML for the given FieldLayoutItem.
      Parameters:
      fieldLayoutItem - Layoutitem describing field to display
      Returns:
      HTML to insert
    • getCurrentWorkflow

      public JiraWorkflow getCurrentWorkflow()
      Utility method used by convertissuetosubtask-updateworkflow.jsp and convertissuetosubtask-confirm-part1.jsp
      Retrieve and return current workflow for selected issue
      Returns:
      current workflow
      Throws:
      DataAccessException - if WorkflowException occured during retrieval
    • getId

      public String getId()
    • setId

      public void setId(String id)
    • getParentIssueKey

      public String getParentIssueKey()
    • getTargetStatusId

      public String getTargetStatusId()
    • setTargetStatusId

      public void setTargetStatusId(String targetStatusId)
    • getIssuetype

      public String getIssuetype()
    • setIssuetype

      public void setIssuetype(String subTaskType)
    • getGuid

      public String getGuid()
    • setGuid

      public void setGuid(String guid)
    • getCurrentStep

      public int getCurrentStep()
    • setCurrentStep

      protected void setCurrentStep(int step)
    • addI18nErrorMessage

      protected void addI18nErrorMessage(JiraServiceContext context, String i18nKey)
      Conveniece method for adding internationalized error messages to the error collection
      Parameters:
      context - jira service context
      i18nKey - message key
    • addI18nErrorMessage

      protected void addI18nErrorMessage(JiraServiceContext context, String i18nKey, String param)
      Convenience method for adding internationalized error messages to the error collection
      Parameters:
      context - jira service context
      i18nKey - message key
      param - parameter value
    • addI18nError

      protected void addI18nError(JiraServiceContext context, String fieldName, String i18nKey)
      Convenience method for adding internationalized errors to the error collection
      Parameters:
      context - jira service context
      fieldName - field name
      i18nKey - message key
    • addI18nError

      protected void addI18nError(JiraServiceContext context, String fieldName, String i18nKey, String param)
      Convenience method for adding internationalized errors to the error collection
      Parameters:
      context - jira service context
      fieldName - field name
      i18nKey - message key
      param - parameter value
    • getTextKey

      public String getTextKey(String key)
      Utility method to get appropriate key for property.
      Parameters:
      key - to get
      Returns:
      key prefixed with action specific prefix.
    • getIssuePath

      public String getIssuePath()
    • getActionPrefix

      public abstract String getActionPrefix()
      Prefix used for jsps Actions. Allows the same jsp to be used for different actions
      Returns:
      subclass specific action prefix
    • getPropertiesPrefix

      public abstract String getPropertiesPrefix()
      Prefix used for i18n properties. Allows the same jsp to be used for different actions
      Returns:
      subclass specific properties prefix
    • getAvailableIssueTypes

      public abstract Collection getAvailableIssueTypes()
      Gets a collection of IssueType that are the available target Issue Types.
      Returns:
      a collection of IssueType
    • initExtraFields

      protected abstract void initExtraFields(ConvertIssueBean bean, JiraServiceContext context)
      Allows subclasses to set and init own fields. E.g. ConvertIssueToSubTask sets parent id.
      Parameters:
      bean - bean that holds params.
      context - jira service context.