com.atlassian.jira.web.action.issue
Class MoveIssueUpdateFields

java.lang.Object
  extended by webwork.action.ActionSupport
      extended by com.atlassian.jira.action.JiraActionSupport
          extended by com.atlassian.jira.web.action.JiraWebActionSupport
              extended by com.atlassian.jira.web.action.ProjectActionSupport
                  extended by com.atlassian.jira.web.action.IssueActionSupport
                      extended by com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
                          extended by com.atlassian.jira.web.action.issue.AbstractViewIssue
                              extended by com.atlassian.jira.web.action.issue.AbstractCommentableIssue
                                  extended by com.atlassian.jira.web.action.issue.AbstractCommentableAssignableIssue
                                      extended by com.atlassian.jira.web.action.issue.MoveIssue
                                          extended by com.atlassian.jira.web.action.issue.MoveIssueUpdateFields
All Implemented Interfaces:
OperationContext, ErrorCollection, I18nHelper, Assignable, IssueSummaryAware, Serializable, webwork.action.Action, webwork.action.CommandDriven, webwork.action.IllegalArgumentAware
Direct Known Subclasses:
MoveIssueConfirm

public class MoveIssueUpdateFields
extends MoveIssue
implements OperationContext

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.atlassian.jira.web.action.issue.MoveIssue
constantsManager, fieldLayoutManager, fieldManager, issueFactory, SUBTASK_STATUS_PREFIX, workflowManager
 
Fields inherited from class com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
id
 
Fields inherited from class com.atlassian.jira.web.action.IssueActionSupport
attachmentManager
 
Fields inherited from class com.atlassian.jira.web.action.ProjectActionSupport
projectManager
 
Fields inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
ISSUE_NOT_FOUND_RESULT, PERMISSION_VIOLATION_RESULT, request, savedFilters, selectedProject
 
Fields inherited from class com.atlassian.jira.action.JiraActionSupport
log
 
Fields inherited from class webwork.action.ActionSupport
command, errorMap, errorMessages
 
Fields inherited from interface com.atlassian.jira.util.I18nHelper
DEFAULT_RESOURCE_BUNDLE
 
Fields inherited from interface webwork.action.Action
ERROR, INPUT, LOGIN, NONE, SUCCESS
 
Constructor Summary
MoveIssueUpdateFields(IssueLinkManager issueLinkManager, SubTaskManager subTaskManager, ConstantsManager constantsManager, WorkflowManager workflowManager, FieldManager fieldManager, FieldLayoutManager fieldLayoutManager, IssueFactory issueFactory, FieldScreenRendererFactory fieldScreenRendererFactory, CommentService commentService, IssueSecurityHelper issueSecurityHelper)
           
 
Method Summary
 String doDefault()
           
 String doExecute()
           
protected  void doValidation()
           
protected  Collection getCurrentCustomFieldObjects(String issueTypeId)
           
 Map getCustomFieldValuesHolder()
           
 String getFieldHtml(FieldLayoutItem fieldLayoutItem)
           
 String getFieldName(Field field)
           
protected  Collection getInvalidCustomFields(String currentIssueTypeId, String targetIssueTypeId)
           
 Collection getMoveFieldLayoutItems()
           
protected  Collection getTargetCustomFieldObjects(String targetIssueTypeId)
           
 Collection getTargetCustomFields()
           
protected  FieldLayout getTargetFieldLayout()
           
protected  Collection getTargetHiddenFields()
           
protected  MutableIssue getTargetIssueObject()
          Retrieves the issue from the IssueManager and updates the Project and IssueType, and possibly clears the security.
protected  MutableIssue getTargetIssueObjectWithSecurityLevel()
          Retrieves the issue from the IssueManager and updates the Project and IssueType.
protected  boolean isShouldCheckFieldValue(Issue origIssue, Field field)
          JRA-12671 - need to determine if we should call hasValue on the field.
protected  void popluateDefault(OrderableField orderableField)
           
protected  void populateFromParams(OrderableField orderableField)
           
 
Methods inherited from class com.atlassian.jira.web.action.issue.MoveIssue
getAllowedProjects, getBeanTargetStatusId, getConstantsManager, getCurrentIssueType, getCurrentStatusGV, getCurrentWorkflow, getFieldHtml, getFieldLayoutManager, getFieldManager, getIssueObject, getMoveIssueBean, getPrefixTaskStatusId, getSubTasks, getSubTaskTargetStatus, getSubTaskTypesUsed, getTargetIssueType, getTargetIssueTypeGV, getTargetPid, getTargetProject, getTargetStatusId, getTargetWorkflow, getTargetWorkflowStatuses, getTaskInvalidStatuses, getTasksWithStatus, getViewHtmlParams, getWorkflowForType, getWorkflowManager, isHasSubTasks, isIssueStatusValid, isStatusChangeRequired, isSubTask, isTaskStatusChangeRequired, isTaskStatusValid, isWorkflowMatch, redirectToSessionTimeoutPage, setBeanTargetStatusId, validateAttachmentMove, validateCreateIssue
 
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractCommentableAssignableIssue
assigneeChanged, getAssignee, getAssignIn, hasAssigneePermission, setAssignee
 
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractCommentableIssue
createComment, doCommentValidation, getComment, getCommentLevel, getFieldScreenRendererLayoutItemForField, getFieldScreenRendererWithAllFields, getGroupLevel, getGroupLevels, getIssueOperation, getRoleLevels, setComment, setCommentLevel, setCustomFieldValuesHolder, setGroupLevel
 
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractViewIssue
getAttachments, getIssueLinkManager, getLinkCollection, getLinkCollection, getPossibleComponents, getPossibleVersions, getPossibleVersionsReleasedFirst, getSubTaskManager, isSubTaskCreatable
 
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
getDefaultSecurityLevel, getId, getIssue, getIssueObject, getIssueObjectNoSecurityCheck, getIssuePath, getKey, getLayoutBean, getProject, getSecurityLevel, getSecurityLevel, getSecurityLevelName, getSecurityLevels, getSecurityLevels, getSummaryIssue, getViewIssueKey, getViewUrl, isEditable, isEditable, isHasEditIssuePermission, isIssueExists, isWorkflowAllowsEdit, redirectToView, resetIssue, setId, setIssue, setKey, setViewIssueKey
 
Methods inherited from class com.atlassian.jira.web.action.IssueActionSupport
getAttachmentManager, getCustomFieldManager, getDaysPerWeek, getHoursPerDay, getIssueManager, getPossibleVersions, getPossibleVersionsReleasedFirst, getPrettyDuration, getSearchRequest, getUrlEncoded, getWorkflow, getWorkflowTransitionDescription, getWorkflowTransitionDisplayName, isCustomFieldHidden, isFieldHidden, isFieldHidden, isFieldHidden, setCurrentIssue, setSearchRequest, updateSearchRequest
 
Methods inherited from class com.atlassian.jira.web.action.ProjectActionSupport
getBrowseableProjects, getBrowseableProjectsInCategory, getSelectedProjectId, setSelectedProject, setSelectedProject
 
Methods inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
addErrorCollection, forceRedirect, getAssignableUsers, getAssignableUsers, getCachedGroups, getComponentManager, getDateFormat, getDateTimeFormat, getDescTranslation, getExternalLinkUtils, getField, getFlushedErrorMessages, getGlobalPermissionManager, getJiraServiceContext, getLanguage, getNameTranslation, getOutlookDate, getPermissionManager, getProjectManager, getPropertySet, getRedirect, getRemoteUser, getReturnUrl, getSelectedProject, getSelectedProjectObject, getServerId, getText, getTimeFormat, getUserFullName, getVersionManager, getWebworkStack, getWebworkStack, htmlEncode, isHasIssuePermission, isHasIssuePermission, isHasPermission, isHasPermission, isHasPermission, isHasProjectPermission, isHasProjectPermission, isSystemAdministrator, isUserExists, setReturnUrl, setSelectedProjectId
 
Methods inherited from class com.atlassian.jira.action.JiraActionSupport
addErrorMessages, addErrorMessages, addErrors, addIllegalArgumentException, execute, getActionName, getApplicationProperties, getDefaultResourceBundle, getDelegator, getJiraLocaleUtils, getLocale, getResult, getText, getText, getText, getText, getText, getText, getUnescapedText, getUserPreferences, getWatcherManager, hasAnyErrors, isEnterprise, isIndexing, isProfessional, isProfessionalOrEnterprise, isStandard, removeKeyOrAddError
 
Methods inherited from class webwork.action.ActionSupport
addError, addErrorMessage, getErrorMessages, getErrors, getHasErrorMessages, getHasErrors, getPropertyEditorMessage, getTexts, getTexts, getTimezone, invalidInput, invokeCommand, isCommand, setCommand, setErrorMessages, setErrors, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atlassian.jira.issue.customfields.OperationContext
getIssueOperation
 
Methods inherited from interface com.atlassian.jira.web.action.issue.IssueSummaryAware
getRemoteUser
 
Methods inherited from interface com.atlassian.jira.util.ErrorCollection
addError, addErrorMessage, addErrorMessages, addErrors, getErrorMessages, getErrors, hasAnyErrors, setErrorMessages
 
Methods inherited from interface webwork.action.CommandDriven
setCommand
 

Constructor Detail

MoveIssueUpdateFields

public MoveIssueUpdateFields(IssueLinkManager issueLinkManager,
                             SubTaskManager subTaskManager,
                             ConstantsManager constantsManager,
                             WorkflowManager workflowManager,
                             FieldManager fieldManager,
                             FieldLayoutManager fieldLayoutManager,
                             IssueFactory issueFactory,
                             FieldScreenRendererFactory fieldScreenRendererFactory,
                             CommentService commentService,
                             IssueSecurityHelper issueSecurityHelper)
Method Detail

doDefault

public String doDefault()
                 throws Exception
Overrides:
doDefault in class MoveIssue
Throws:
Exception

getMoveFieldLayoutItems

public Collection getMoveFieldLayoutItems()

getTargetIssueObject

protected MutableIssue getTargetIssueObject()
Retrieves the issue from the IssueManager and updates the Project and IssueType, and possibly clears the security.

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. It will set security level to null if the issue is moving somewhere that the old security level is no relevant.

Returns:
Target Issue Object with required Project and Issue Type added in.
See Also:
getTargetIssueObjectWithSecurityLevel()

getTargetIssueObjectWithSecurityLevel

protected MutableIssue getTargetIssueObjectWithSecurityLevel()
Retrieves the issue from the IssueManager and updates the Project and IssueType. The security level setting is left in place - see getTargetIssueObject() for an alternative method.

Returns:
Issue Object with required Project and Issue Type added in.
See Also:
getTargetIssueObject()

getTargetFieldLayout

protected FieldLayout getTargetFieldLayout()

getFieldHtml

public String getFieldHtml(FieldLayoutItem fieldLayoutItem)

getFieldName

public String getFieldName(Field field)

doValidation

protected void doValidation()
Overrides:
doValidation in class MoveIssue

popluateDefault

protected void popluateDefault(OrderableField orderableField)

populateFromParams

protected void populateFromParams(OrderableField orderableField)

doExecute

public String doExecute()
                 throws Exception
Overrides:
doExecute in class MoveIssue
Throws:
Exception

isShouldCheckFieldValue

protected boolean isShouldCheckFieldValue(Issue origIssue,
                                          Field field)
JRA-12671 - need to determine if we should call hasValue on the field. For calculated custom fields, that are not in scope this isn't the case. This should prevent us from calling hasValue on calculated custom fields. protected to make it testable.

Parameters:
origIssue - The original issue in which we'll check the context
field - The field in question.
Returns:
true, if the field is not a custom value, or it is in scope in the original issue.

getTargetHiddenFields

protected Collection getTargetHiddenFields()

getCustomFieldValuesHolder

public Map getCustomFieldValuesHolder()
Specified by:
getCustomFieldValuesHolder in interface OperationContext
Overrides:
getCustomFieldValuesHolder in class AbstractCommentableIssue

getCurrentCustomFieldObjects

protected Collection getCurrentCustomFieldObjects(String issueTypeId)

getTargetCustomFieldObjects

protected Collection getTargetCustomFieldObjects(String targetIssueTypeId)

getTargetCustomFields

public Collection getTargetCustomFields()

getInvalidCustomFields

protected Collection getInvalidCustomFields(String currentIssueTypeId,
                                            String targetIssueTypeId)


Copyright © 2002-2008 Atlassian. All Rights Reserved.