]> source.dussan.org Git - sonarqube.git/blob
3bac7310762400cf6cd2afd319d2da84e804432a
[sonarqube.git] /
1 /*
2  * SonarQube, open source software quality management tool.
3  * Copyright (C) 2008-2013 SonarSource
4  * mailto:contact AT sonarsource DOT com
5  *
6  * SonarQube is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 3 of the License, or (at your option) any later version.
10  *
11  * SonarQube is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  */
20
21 package org.sonar.api.technicaldebt.server.internal;
22
23 import org.apache.commons.lang.builder.ToStringBuilder;
24 import org.apache.commons.lang.builder.ToStringStyle;
25 import org.sonar.api.rule.RuleKey;
26 import org.sonar.api.technicaldebt.server.Characteristic;
27 import org.sonar.api.utils.WorkUnit;
28
29 import javax.annotation.CheckForNull;
30 import javax.annotation.Nullable;
31
32 /**
33  * @since 4.1
34  */
35 public class DefaultCharacteristic implements Characteristic {
36
37   private Integer id;
38   private String key;
39   private String name;
40   private Integer order;
41   private Integer parentId;
42   private Integer rootId;
43   private RuleKey ruleKey;
44   private String function;
45   private WorkUnit factor;
46   private WorkUnit offset;
47
48   public Integer id() {
49     return id;
50   }
51
52   public DefaultCharacteristic setId(Integer id) {
53     this.id = id;
54     return this;
55   }
56
57   @CheckForNull
58   public String key() {
59     return key;
60   }
61
62   public DefaultCharacteristic setKey(@Nullable String key) {
63     this.key = key;
64     return this;
65   }
66
67   @CheckForNull
68   public String name() {
69     return name;
70   }
71
72   public DefaultCharacteristic setName(@Nullable String name) {
73     this.name = name;
74     return this;
75   }
76
77   @CheckForNull
78   public Integer order() {
79     return order;
80   }
81
82   public DefaultCharacteristic setOrder(@Nullable Integer order) {
83     this.order = order;
84     return this;
85   }
86
87   @CheckForNull
88   public Integer parentId() {
89     return parentId;
90   }
91
92   public DefaultCharacteristic setParentId(@Nullable Integer parentId) {
93     this.parentId = parentId;
94     return this;
95   }
96
97   @CheckForNull
98   public Integer rootId() {
99     return rootId;
100   }
101
102   public DefaultCharacteristic setRootId(@Nullable Integer rootId) {
103     this.rootId = rootId;
104     return this;
105   }
106
107   @CheckForNull
108   public RuleKey ruleKey() {
109     return ruleKey;
110   }
111
112   public DefaultCharacteristic setRuleKey(@Nullable RuleKey ruleKey) {
113     this.ruleKey = ruleKey;
114     return this;
115   }
116
117   @CheckForNull
118   public String function() {
119     return function;
120   }
121
122   public DefaultCharacteristic setFunction(@Nullable String function) {
123     this.function = function;
124     return this;
125   }
126
127   @CheckForNull
128   public WorkUnit factor() {
129     return factor;
130   }
131
132   public DefaultCharacteristic setFactor(@Nullable WorkUnit factor) {
133     this.factor = factor;
134     return this;
135   }
136
137   @CheckForNull
138   public WorkUnit offset() {
139     return offset;
140   }
141
142   public DefaultCharacteristic setOffset(@Nullable WorkUnit offset) {
143     this.offset = offset;
144     return this;
145   }
146
147   public boolean isRoot() {
148     return parentId == null;
149   }
150
151   public boolean isRequirement() {
152     return ruleKey != null;
153   }
154
155   @Override
156   public boolean equals(Object o) {
157     if (this == o) {
158       return true;
159     }
160     if (o == null || getClass() != o.getClass()) {
161       return false;
162     }
163
164     DefaultCharacteristic that = (DefaultCharacteristic) o;
165
166     if (key != null ? !key.equals(that.key) : that.key != null) {
167       return false;
168     }
169     if (ruleKey != null ? !ruleKey.equals(that.ruleKey) : that.ruleKey != null) {
170       return false;
171     }
172
173     return true;
174   }
175
176   @Override
177   public int hashCode() {
178     int result = key != null ? key.hashCode() : 0;
179     result = 31 * result + (ruleKey != null ? ruleKey.hashCode() : 0);
180     return result;
181   }
182
183   @Override
184   public String toString() {
185     return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
186   }
187
188 }