From: Sébastien Lesaint Date: Thu, 2 Aug 2018 15:29:56 +0000 (+0200) Subject: SONAR-11031 make ProjectAlmBindingDto return ALM enum X-Git-Tag: 7.5~607 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=cff7fade67be55f52ed6ad3a9aceb9c734e04cc7;p=sonarqube.git SONAR-11031 make ProjectAlmBindingDto return ALM enum --- diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ALM.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ALM.java index 0e5dd4ee2be..a76b362d0e3 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ALM.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ALM.java @@ -25,7 +25,7 @@ public enum ALM { BITBUCKETCLOUD, GITHUB; - String getId() { + public String getId() { return this.name().toLowerCase(Locale.ENGLISH); } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingDto.java index db42d29e607..4de6b287353 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/ProjectAlmBindingDto.java @@ -19,65 +19,48 @@ */ package org.sonar.db.alm; +import java.util.Arrays; +import java.util.Optional; + +/** + * DTO is used only for select, hence no setters (MyBatis populates field by reflection). + */ public class ProjectAlmBindingDto { private String uuid; - private String almId; + private String rawAlmId; private String repoId; private String projectUuid; private String githubSlug; private String url; - public String getAlmId() { - return almId; - } + public Optional getAlm() { + if (rawAlmId == null) { + return Optional.empty(); + } - public ProjectAlmBindingDto setAlmId(String almId) { - this.almId = almId; - return this; + return Arrays.stream(ALM.values()) + .filter(a -> a.getId().equals(rawAlmId)) + .findAny(); } public String getRepoId() { return repoId; } - public ProjectAlmBindingDto setRepoId(String repoId) { - this.repoId = repoId; - return this; - } - public String getProjectUuid() { return projectUuid; } - public ProjectAlmBindingDto setProjectUuid(String projectUuid) { - this.projectUuid = projectUuid; - return this; - } - public String getGithubSlug() { return githubSlug; } - public ProjectAlmBindingDto setGithubSlug(String githubSlug) { - this.githubSlug = githubSlug; - return this; - } - public String getUrl() { return url; } - public ProjectAlmBindingDto setUrl(String url) { - this.url = url; - return this; - } - public String getUuid() { return uuid; } - public ProjectAlmBindingDto setUuid(String uuid) { - this.uuid = uuid; - return this; - } } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/ProjectAlmBindingsMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/ProjectAlmBindingsMapper.xml index 1cb6e67e3b5..27f5d1f720a 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/ProjectAlmBindingsMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/ProjectAlmBindingsMapper.xml @@ -3,6 +3,15 @@ + + uuid, + alm_id as rawAlmId, + repo_id as repoId, + project_uuid as projectUuid, + github_slug as githubSlug, + url + + - INSERT INTO project_alm_bindings + insert into project_alm_bindings ( uuid, alm_id, @@ -25,7 +34,7 @@ created_at, updated_at ) - VALUES ( + values ( #{uuid, jdbcType=VARCHAR}, #{almId, jdbcType=VARCHAR}, #{repoId, jdbcType=VARCHAR}, @@ -38,7 +47,8 @@ - update project_alm_bindings set + update project_alm_bindings + set project_uuid = #{projectUuid, jdbcType=VARCHAR}, github_slug = #{githubSlug, jdbcType=VARCHAR}, url = #{url, jdbcType=VARCHAR}, @@ -50,13 +60,9 @@ select - uuid, - alm_id as almId, - repo_id as repoId, - project_uuid as projectUuid, - github_slug as githubSlug, - url - from project_alm_bindings + + from + project_alm_bindings where - alm_id = #{almId, jdbcType=VARCHAR} - and repo_id = #{repoId, jdbcType=VARCHAR} + alm_id = #{almId, jdbcType=VARCHAR} + and repo_id = #{repoId, jdbcType=VARCHAR}