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; }
.withLead(userManager.getUserByName(externalProject.getLead())) .withUrl(externalProject.getUrl()) .withAssigneeType(new Long(externalProject.getAssigneeType())) .withType(externalProject.getProjectTypeKey()) .build()
@Override public ProjectCreationData apply(final ProjectInputBean projectInputBean) { ProjectCreationData.Builder builder = new ProjectCreationData.Builder() .withName(projectInputBean.getName()) .withKey(projectInputBean.getKey()) .withDescription(projectInputBean.getDescription()) .withLead(userManager.getUserByName(projectInputBean.getLead())) .withUrl(projectInputBean.getUrl()) .withAssigneeType(projectInputBean.getAssigneeType().getId()) .withAvatarId(projectInputBean.getAvatarId()) .withProjectTemplateKey(projectInputBean.getProjectTemplateKey()) .withType(projectInputBean.getProjectTypeKey()); return builder.build(); } };