aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ProjectAlmSettingDto.java
blob: 2d0e5766eb905ee693c4a82c7fc27798be1fdc32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
/*
 * SonarQube
 * Copyright (C) 2009-2025 SonarSource SA
 * mailto:info AT sonarsource DOT com
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */
package org.sonar.db.alm.setting;

import java.util.Objects;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;

public class ProjectAlmSettingDto {

  /**
   * Not empty. Max size is 40. Obviously it is unique.
   */
  private String uuid;

  /**
   * Non-null UUID of project. Max size is 40.
   * @see org.sonar.db.entity.EntityDto#getUuid()
   */
  private String projectUuid;

  /**
   * Non-null UUID of the ALM Setting UUID. Max size is 40.
   * @see AlmSettingDto#getUuid()
   */
  private String almSettingUuid;

  /**
   * Identifier of the repository in the ALM. Max size is 256.
   * This column will only be fed when alm is GitHub or Bitbucket.
   * It will be null when the ALM is Azure DevOps.
   */
  private String almRepo;

  /**
   * Slug of the repository in the ALM. Max size is 256.
   * This column will only be fed when alm is Bitbucket.
   * It will be null when the ALM is Azure DevOps, or GitHub.
   */
  private String almSlug;

  /**
   * Boolean flag which enable/disable inserting summary of analysis as a comment
   * It will be null when the ALM is other than GitHub
   */
  private Boolean summaryCommentEnabled;

  /**
   * Boolean flag which enable/disable adding inline comments to files
   * It will be null when the ALM is other than Azure DevOps
   */
  private Boolean inlineAnnotationsEnabled;

  /**
   * Boolean to know if this SonarQube project is part of a monorepo
   * default value is false
   */
  private Boolean monorepo;

  private long updatedAt;
  private long createdAt;

  public String getUuid() {
    return uuid;
  }

  void setUuid(String uuid) {
    this.uuid = uuid;
  }

  public String getProjectUuid() {
    return projectUuid;
  }

  public ProjectAlmSettingDto setProjectUuid(String projectUuid) {
    this.projectUuid = projectUuid;
    return this;
  }

  public String getAlmSettingUuid() {
    return almSettingUuid;
  }

  public ProjectAlmSettingDto setAlmSettingUuid(String almSettingUuid) {
    this.almSettingUuid = almSettingUuid;
    return this;
  }

  @CheckForNull
  public String getAlmRepo() {
    return almRepo;
  }

  public ProjectAlmSettingDto setAlmRepo(@Nullable String almRepo) {
    this.almRepo = almRepo;
    return this;
  }

  @CheckForNull
  public String getAlmSlug() {
    return almSlug;
  }

  public ProjectAlmSettingDto setAlmSlug(@Nullable String almSlug) {
    this.almSlug = almSlug;
    return this;
  }

  public Boolean getSummaryCommentEnabled() {
    return summaryCommentEnabled;
  }

  public ProjectAlmSettingDto setSummaryCommentEnabled(@Nullable Boolean summaryCommentEnabled) {
    this.summaryCommentEnabled = summaryCommentEnabled;
    return this;
  }

  public Boolean getInlineAnnotationsEnabled() {
    return inlineAnnotationsEnabled;
  }

  public ProjectAlmSettingDto setInlineAnnotationsEnabled(@Nullable Boolean inlineAnnotationsEnabled) {
    this.inlineAnnotationsEnabled = inlineAnnotationsEnabled;
    return this;
  }

  public Boolean getMonorepo() {
    return monorepo;
  }

  public ProjectAlmSettingDto setMonorepo(Boolean monorepo) {
    this.monorepo = monorepo;
    return this;
  }

  long getUpdatedAt() {
    return updatedAt;
  }

  void setUpdatedAt(long updatedAt) {
    this.updatedAt = updatedAt;
  }

  long getCreatedAt() {
    return createdAt;
  }

  void setCreatedAt(long createdAt) {
    this.createdAt = createdAt;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ProjectAlmSettingDto that = (ProjectAlmSettingDto) o;
    return Objects.equals(uuid, that.uuid);
  }

  @Override
  public int hashCode() {
    return Objects.hash(uuid);
  }

}