public class DefaultProjectImportPersister extends Object implements ProjectImportPersister
Constructor and Description |
---|
DefaultProjectImportPersister(ExternalUtils externalUtils,
IssueFactory issueFactory,
OfBizDelegator ofBizDelegator,
IssueIndexManager issueIndexManager,
IssueManager issueManager,
ProjectManager projectManager,
VersionManager versionManager,
NodeAssociationStore nodeAssociationStore,
UserAssociationStore userAssociationStore,
ProjectComponentManager projectComponentManager,
AttachmentManager attachmentManager,
ChangeHistoryManager changeHistoryManager,
IssueLinkTypeManager issueLinkTypeManager,
UserManager userManager,
UserService userService,
ApplicationProperties applicationProperties,
UserPropertyManager userPropertyManager,
OnboardingStore onboardingStore,
ProjectPropertiesManager projectPropertiesManager) |
Modifier and Type | Method and Description |
---|---|
boolean |
createAssociation(ExternalNodeAssociation nodeAssociation)
Creates a NodeAssocation which is used to link the issue to external values such as versions and components.
|
Attachment |
createAttachment(ExternalAttachment externalAttachment)
Creates an attachment specified by the ExternalAttachment.
|
String |
createChangeItemForIssueLinkIfNeeded(String issueId,
String issueLinkTypeId,
String linkedIssueKey,
boolean isSource,
ApplicationUser importAuthor)
This will look at the issue specified by issueId and add a changeItem for the issue link if it needs to.
|
Map<String,ProjectComponent> |
createComponents(BackupProject backupProject,
ProjectImportMapper projectImportMapper)
Creates the components, specified by
BackupProject.getProjectComponents()
for the named backup project. |
Long |
createEntity(EntityRepresentation entityRepresentation)
This will store the provided entity in the database.
|
Issue |
createIssue(ExternalIssue externalIssue,
Date importDate,
ApplicationUser importAuthor)
Creates an issue based off of the provided ExternalIssue.
|
Project |
createProject(ExternalProject project)
Creates a project, with details based off of the ExternalProject.
|
boolean |
createUser(UserMapper userMapper,
ExternalUser externalUser)
Creates a User in JIRA from the given ExternalUser object.
|
Map<String,Version> |
createVersions(BackupProject backupProject)
Creates the versions, specified by
BackupProject.getProjectVersions()
for the named backup project. |
boolean |
createVoter(ExternalVoter voter)
Creates a UserAssociation which is used to link the user to the issue as a voter.
|
boolean |
createWatcher(ExternalWatcher watcher)
Creates a UserAssociation which is used to link the user to the issue as a watcher.
|
void |
reIndexProject(ProjectImportMapper projectImportMapper,
TaskProgressInterval taskProgressInterval,
I18nHelper i18n)
Re-indexes all the new Issues that have just been created in this Project Import.
|
Project |
updateProjectDetails(ExternalProject externalProject)
Updates the details of an existing Project in JIRA from the given ExternalProject object.
|
void |
updateProjectIssueCounter(BackupProject backupProject,
long counter)
Updates a projects issue counter, which is used to determine the numeric portion of the issue key.
|
public DefaultProjectImportPersister(ExternalUtils externalUtils, IssueFactory issueFactory, OfBizDelegator ofBizDelegator, IssueIndexManager issueIndexManager, IssueManager issueManager, ProjectManager projectManager, VersionManager versionManager, NodeAssociationStore nodeAssociationStore, UserAssociationStore userAssociationStore, ProjectComponentManager projectComponentManager, AttachmentManager attachmentManager, ChangeHistoryManager changeHistoryManager, IssueLinkTypeManager issueLinkTypeManager, UserManager userManager, UserService userService, ApplicationProperties applicationProperties, UserPropertyManager userPropertyManager, OnboardingStore onboardingStore, ProjectPropertiesManager projectPropertiesManager)
public Issue createIssue(ExternalIssue externalIssue, Date importDate, ApplicationUser importAuthor)
ProjectImportPersister
NOTE: If you are using this method you will, at a later time, need to fix the projects pcounter to be correct in relation to the manually stored issue keys.
createIssue
in interface ProjectImportPersister
externalIssue
- contains the issue details that will be persisted and the project id that the issue will
be persisted against.importDate
- a date that will be used as the value of the marker change item that is added to the issue
to indicate that the issue was created via a project import.importAuthor
- the user who is performing the project import, this is used as the author of the change item marker for created issuespublic Long createEntity(EntityRepresentation entityRepresentation)
ProjectImportPersister
null
id.createEntity
in interface ProjectImportPersister
entityRepresentation
- the data that will be persisted.null
if the Entity could not be created.public String createChangeItemForIssueLinkIfNeeded(String issueId, String issueLinkTypeId, String linkedIssueKey, boolean isSource, ApplicationUser importAuthor)
ProjectImportPersister
Please note: this method will add the change item but it does not re-index the issue, this should be handled elsewhere.
createChangeItemForIssueLinkIfNeeded
in interface ProjectImportPersister
issueId
- the id of the issue that should exist in JIRA. This is the issue that will have the change item
added to it if it does not already have one.issueLinkTypeId
- the id of the issue link type in JIRA, this must exist.linkedIssueKey
- the issue key that is part of the created link.isSource
- true if the issue specified by issueId is the source of the issue link, false if it is the
destination.importAuthor
- the user who is performing the project import, this is used as the author of the change item marker for created issues.public void reIndexProject(ProjectImportMapper projectImportMapper, TaskProgressInterval taskProgressInterval, I18nHelper i18n) throws IndexException
ProjectImportPersister
ProjectImportIdMapper.getAllMappedIds()
.reIndexProject
in interface ProjectImportPersister
projectImportMapper
- ProjectImportMapper which is used to get the new Issue IDtaskProgressInterval
- Used to provide progress feedback, can be null.i18n
- used to i18n the task progress messages.IndexException
- If an error occurs in the IndexManager.public boolean createAssociation(ExternalNodeAssociation nodeAssociation)
ProjectImportPersister
createAssociation
in interface ProjectImportPersister
nodeAssociation
- the externalObject that contains the correct values to be persisted to the datastore.public boolean createVoter(ExternalVoter voter)
ProjectImportPersister
createVoter
in interface ProjectImportPersister
voter
- contains the issue and user informationpublic boolean createWatcher(ExternalWatcher watcher)
ProjectImportPersister
createWatcher
in interface ProjectImportPersister
watcher
- contains the issue and user informationpublic Project updateProjectDetails(ExternalProject externalProject)
ProjectImportPersister
updateProjectDetails
in interface ProjectImportPersister
externalProject
- ExternalProject containing the data to use to update.public Project createProject(ExternalProject project) throws ExternalException
ProjectImportPersister
createProject
in interface ProjectImportPersister
project
- holds the details the project will be created with.ExternalException
- if there is an error creating the project.public Map<String,Version> createVersions(BackupProject backupProject)
ProjectImportPersister
BackupProject.getProjectVersions()
for the named backup project.createVersions
in interface ProjectImportPersister
backupProject
- specifies the name of the project to create the versions for and the versions to createVersion
's that represent the newly created
versions keyed by the old version id they were created from.public Map<String,ProjectComponent> createComponents(BackupProject backupProject, ProjectImportMapper projectImportMapper)
ProjectImportPersister
BackupProject.getProjectComponents()
for the named backup project.createComponents
in interface ProjectImportPersister
backupProject
- specifies the name of the project to create the components for and the components to createprojectImportMapper
- ProjectImportMapper used to map the component leads user keyProjectComponent
's that represent the newly created
components keyed by the old component id they were created from.public void updateProjectIssueCounter(BackupProject backupProject, long counter)
ProjectImportPersister
updateProjectIssueCounter
in interface ProjectImportPersister
backupProject
- contains the ExternalProject
that holds the detailscounter
- this is a long that the value will be set to in the stored project.public boolean createUser(UserMapper userMapper, ExternalUser externalUser)
ProjectImportPersister
createUser
in interface ProjectImportPersister
userMapper
- contains mapping between old and new user keysexternalUser
- ExternalUser containing the data to use to create the new User.public Attachment createAttachment(ExternalAttachment externalAttachment)
ProjectImportPersister
ExternalAttachment.getAttachedFile()
to the JIRA attachment directory.createAttachment
in interface ProjectImportPersister
externalAttachment
- specifies the issue id and attachment details for the attachment to create.Copyright © 2002-2022 Atlassian. All Rights Reserved.