private List migrateSubTask(final Issue originalSubtask, final MutableIssue targetSubtask)
throws GenericEntityException
{
ArrayList subTaskChangeItems = new ArrayList();
if (!isTaskStatusValid(targetSubtask.getIssueTypeId(), targetSubtask.getStatusObject().getId()))
{
String subTaskTypeKey = getPrefixTaskStatusId(targetSubtask.getIssueTypeId(), targetSubtask.getStatusObject().getId());
Map taskTargetStatusMap = getMoveIssueBean().getTaskTargetStatusHolder();
targetSubtask.setStatusId((String) taskTargetStatusMap.get(subTaskTypeKey));
subTaskChangeItems.add(new ChangeItemBean(ChangeItemBean.STATIC_FIELD, IssueFieldConstants.STATUS, originalSubtask.getStatusObject().getId(), originalSubtask.getStatusObject().getName(),
targetSubtask.getStatusObject().getId(), targetSubtask.getStatusObject().getName()));
}
if (!isWorkflowMatch(originalSubtask.getIssueTypeId(), targetSubtask.getIssueTypeId()))
{
migrateIssueToWorkflow(targetSubtask, originalSubtask.getIssueTypeId(),
getWorkflowForType(getTargetPid(), targetSubtask.getIssueTypeId()),
targetSubtask.getStatus());
subTaskChangeItems.add(new ChangeItemBean(ChangeItemBean.STATIC_FIELD, "Workflow",
originalSubtask.getWorkflowId().toString(), getWorkflowManager().getWorkflow(originalSubtask.getGenericValue()).getName(),
targetSubtask.getWorkflowId().toString(), getWorkflowForType(getTargetPid(), targetSubtask.getIssueTypeId()).getName()));
}
return subTaskChangeItems;
}