this.avatarId = input.getAvatarId(); this.lead = ofNullable(input.getLead()).orElse(existingProject.getProjectLead()); this.assigneeType = ofNullable(input.getAssigneeType()).orElse(existingProject.getAssigneeType()); return this;
private Project createProjectInternal(final CreateProjectValidationResult result, final Consumer<Project> projectConsumer) { if (result == null) { throw new IllegalArgumentException("You can not create a project with a null validation result."); } if (!result.isValid()) { throw new IllegalStateException("You can not create a project with an invalid validation result."); } if (result.getExistingProjectId().isPresent()) { ofNullable(projectManager.getProjectObj(result.getExistingProjectId().get())).orElseThrow(() -> new IllegalStateException("Existing project could not be found.")); } final ApplicationUser user = result.getUser(); final ProjectCreationData projectCreationData = result.getProjectCreationData(); final Project newProject = projectManager.createProject(user, new ProjectCreationData.Builder() .from(projectCreationData) .withKey(projectCreationData.getKey().toUpperCase()) .withLead(projectCreationData.getLead()) .withAssigneeType(effectiveAssigneeType(projectCreationData.getAssigneeType())) .build()); projectConsumer.accept(newProject); // Refresh the workflow cache workflowSchemeManager.clearWorkflowCache(); notifyHandlersOfProjectCreated(user, newProject, result); projectEventManager.dispatchProjectCreated(user, newProject); return newProject; }
public Builder from(ProjectCreationData data) { this.name = data.getName(); this.key = data.getKey(); this.description = data.getDescription(); this.projectTypeKey = data.getProjectTypeKey(); this.projectTemplateKey = data.getProjectTemplateKey(); this.lead = data.getLead(); this.url = data.getUrl(); this.assigneeType = data.getAssigneeType(); this.avatarId = data.getAvatarId(); return this; }
@Override public boolean isValidRequiredProjectData(JiraServiceContext serviceContext, ProjectCreationData projectCreationData) { final ErrorCollection errorCollection = ErrorCollections.empty(); final I18nHelper i18nBean = serviceContext.getI18nBean(); validateProjectName(projectCreationData.getName(), errorCollection, i18nBean); validateProjectKey(null, projectCreationData.getKey(), errorCollection, i18nBean); validateProjectLead(Option.option(projectCreationData.getLead()), errorCollection, i18nBean); validateProjectType(serviceContext.getLoggedInApplicationUser(), projectCreationData.getProjectTypeKey(), errorCollection, i18nBean); if (errorCollection.hasAnyErrors()) { serviceContext.getErrorCollection().addErrorCollection(errorCollection); return false; } return true; }
ApplicationUser lead = projectCreationData.getLead(); String url = projectCreationData.getUrl(); String description = projectCreationData.getDescription();