Skip to content

Commit d76fa67

Browse files
andras-petres-ullinkgc-itiviti
authored andcommitted
Add support for custom vote labels
1 parent 40761a0 commit d76fa67

File tree

26 files changed

+1295
-466
lines changed

26 files changed

+1295
-466
lines changed

build-config/swe_checkstyle.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<property name="severity" value="error"/>
1212
<module name="FileLength">
1313
<!-- TODO: Need refactoring -->
14-
<property name="max" value="2500"/>
14+
<property name="max" value="2550"/>
1515
</module>
1616
<module name="FileTabCharacter">
1717
<property name="fileExtensions" value="java,groovy,jelly,xml,html,js,css"/>
@@ -43,7 +43,7 @@
4343
<module name="RedundantImport"/>
4444
<module name="UnusedImports"/>
4545
<module name="LineLength">
46-
<property name="max" value="121"/>
46+
<property name="max" value="144"/>
4747
</module>
4848
<module name="MethodLength"/>
4949
<module name="EmptyForIteratorPad"/>
@@ -74,15 +74,13 @@
7474
<module name="LeftCurly"/>
7575
<module name="NeedBraces"/>
7676
<module name="RightCurly"/>
77-
<module name="AvoidInlineConditionals"/>
7877
<module name="EmptyStatement"/>
7978
<module name="EqualsHashCode"/>
8079
<module name="HiddenField">
8180
<property name="ignoreSetter" value="true"/>
8281
<property name="ignoreConstructorParameter" value="true"/>
8382
</module>
8483
<module name="IllegalInstantiation"/>
85-
<module name="InnerAssignment"/>
8684
<module name="MagicNumber"/>
8785
<module name="MissingSwitchDefault"/>
8886
<module name="SimplifyBooleanExpression"/>

src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritServer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,8 @@ public void start() {
432432
categories = new LinkedList<VerdictCategory>();
433433
}
434434
if (categories.isEmpty()) {
435-
categories.add(new VerdictCategory("Code-Review", "Code Review"));
436-
categories.add(new VerdictCategory("Verified", "Verified"));
435+
categories.add(new VerdictCategory(Config.CODE_REVIEW, Config.CODE_REVIEW));
436+
categories.add(new VerdictCategory(Config.VERIFIED, Config.VERIFIED));
437437
}
438438
config.setCategories(categories);
439439
gerritEventManager = PluginImpl.getHandler_();

src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/VerdictCategory.java

Lines changed: 176 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@
2323
*/
2424
package com.sonyericsson.hudson.plugins.gerrit.trigger;
2525

26+
import java.util.Objects;
2627
import hudson.Extension;
2728
import hudson.model.AbstractDescribableImpl;
2829
import hudson.model.Descriptor;
2930
import net.sf.json.JSONObject;
31+
import com.sonyericsson.hudson.plugins.gerrit.trigger.config.Config;
3032

3133
/**
3234
* A verdict category for setting comments in Gerrit, i.e. code-review, verify
@@ -36,15 +38,78 @@ public class VerdictCategory extends AbstractDescribableImpl<VerdictCategory> {
3638

3739
private String verdictValue;
3840
private String verdictDescription;
41+
private Integer defaultBuildStartedReportingValue;
42+
private Integer defaultBuildSuccessfulReportingValue;
43+
private Integer defaultBuildFailedReportingValue;
44+
private Integer defaultBuildUnstableReportingValue;
45+
private Integer defaultBuildNotBuiltReportingValue;
3946

4047
/**
4148
* Standard constructor.
49+
*
4250
* @param value the value in Gerrit for the verdict category.
4351
* @param description the text describing the verdict category.
4452
*/
4553
public VerdictCategory(String value, String description) {
4654
verdictValue = value;
4755
verdictDescription = description;
56+
defaultBuildStartedReportingValue = 0;
57+
defaultBuildSuccessfulReportingValue = 0;
58+
defaultBuildFailedReportingValue = 0;
59+
defaultBuildUnstableReportingValue = 0;
60+
defaultBuildNotBuiltReportingValue = 0;
61+
}
62+
63+
/**
64+
* Standard constructor with custom reporting votes.
65+
*
66+
* @param verdictValue name of VerdictCategory.
67+
* @param verdictDescription description of VerdictCategory.
68+
* @param defaultBuildStartedReportingValue Default build started vote value of VerdictCategory
69+
* @param defaultBuildSuccessfulReportingValue Default build successful vote value of VerdictCategory
70+
* @param defaultBuildFailedReportingValue Default build failed vote value of VerdictCategory
71+
* @param defaultBuildUnstableReportingValue Default build unstable vote value of VerdictCategory
72+
* @param defaultBuildNotBuiltReportingValue Default build not built vote value of VerdictCategory
73+
*/
74+
public VerdictCategory(String verdictValue, String verdictDescription,
75+
Integer defaultBuildStartedReportingValue,
76+
Integer defaultBuildSuccessfulReportingValue,
77+
Integer defaultBuildFailedReportingValue,
78+
Integer defaultBuildUnstableReportingValue,
79+
Integer defaultBuildNotBuiltReportingValue) {
80+
this.verdictValue = verdictValue;
81+
this.verdictDescription = verdictDescription;
82+
this.defaultBuildStartedReportingValue = defaultBuildStartedReportingValue;
83+
this.defaultBuildSuccessfulReportingValue = defaultBuildSuccessfulReportingValue;
84+
this.defaultBuildFailedReportingValue = defaultBuildFailedReportingValue;
85+
this.defaultBuildUnstableReportingValue = defaultBuildUnstableReportingValue;
86+
this.defaultBuildNotBuiltReportingValue = defaultBuildNotBuiltReportingValue;
87+
}
88+
89+
/**
90+
* Creates a VerdictCategory from a JSONObject.
91+
*
92+
* @param obj the JSONObject.
93+
* @param topLevelObj the outer JSONObject.
94+
* @return a VerdictCategory.
95+
*/
96+
public static VerdictCategory fromJSON(JSONObject obj, JSONObject topLevelObj) {
97+
String value = obj.getString("verdictValue");
98+
String description = obj.getString("verdictDescription");
99+
Integer defaultBuildStartedReportingValue = topLevelObj.containsKey(value + "Started")
100+
? Config.getIntegerFromString(topLevelObj.getString(value + "Started")) : null;
101+
Integer defaultBuildSuccessfulReportingValue = topLevelObj.containsKey(value + "Successful")
102+
? Config.getIntegerFromString(topLevelObj.getString(value + "Successful")) : null;
103+
Integer defaultBuildFailedReportingValue = topLevelObj.containsKey(value + "Failed")
104+
? Config.getIntegerFromString(topLevelObj.getString(value + "Failed")) : null;
105+
Integer defaultBuildUnstableReportingValue = topLevelObj.containsKey(value + "Unstable")
106+
? Config.getIntegerFromString(topLevelObj.getString(value + "Unstable")) : null;
107+
Integer defaultBuildNotBuiltReportingValue = topLevelObj.containsKey(value + "Not Built")
108+
? Config.getIntegerFromString(topLevelObj.getString(value + "Not Built")) : null;
109+
110+
return new VerdictCategory(value, description, defaultBuildStartedReportingValue,
111+
defaultBuildSuccessfulReportingValue, defaultBuildFailedReportingValue,
112+
defaultBuildUnstableReportingValue, defaultBuildNotBuiltReportingValue);
48113
}
49114

50115
/**
@@ -64,14 +129,118 @@ public String getVerdictDescription() {
64129
}
65130

66131
/**
67-
* Creates a VerdictCategory from a JSONObject.
68-
* @param obj the JSONObject.
69-
* @return a VerdictCategory.
132+
* Standard getter for the build started reporting value.
133+
*
134+
* @return the description.
70135
*/
71-
public static VerdictCategory createVerdictCategoryFromJSON(JSONObject obj) {
72-
String value = obj.getString("verdictValue");
73-
String description = obj.getString("verdictDescription");
74-
return new VerdictCategory(value, description);
136+
public Integer getDefaultBuildStartedReportingValue() {
137+
return defaultBuildStartedReportingValue;
138+
}
139+
140+
/**
141+
* Standard setter for the build started reporting value.
142+
*
143+
* @param defaultBuildStartedReportingValue the default build started reporting value
144+
*/
145+
public void setDefaultBuildStartedReportingValue(Integer defaultBuildStartedReportingValue) {
146+
this.defaultBuildStartedReportingValue = defaultBuildStartedReportingValue;
147+
}
148+
149+
/**
150+
* Standard getter for the build successful reporting value.
151+
*
152+
* @return the description.
153+
*/
154+
public Integer getDefaultBuildSuccessfulReportingValue() {
155+
return defaultBuildSuccessfulReportingValue;
156+
}
157+
158+
/**
159+
* Standard setter for the build successful reporting value.
160+
*
161+
* @param defaultBuildSuccessfulReportingValue the default build successful reporting value
162+
*/
163+
public void setDefaultBuildSuccessfulReportingValue(Integer defaultBuildSuccessfulReportingValue) {
164+
this.defaultBuildSuccessfulReportingValue = defaultBuildSuccessfulReportingValue;
165+
}
166+
167+
/**
168+
* Standard getter for the build failed reporting value.
169+
*
170+
* @return the description.
171+
*/
172+
public Integer getDefaultBuildFailedReportingValue() {
173+
return defaultBuildFailedReportingValue;
174+
}
175+
176+
/**
177+
* Standard setter for the build failed reporting value.
178+
*
179+
* @param defaultBuildFailedReportingValue the default build failed reporting value
180+
*/
181+
public void setDefaultBuildFailedReportingValue(Integer defaultBuildFailedReportingValue) {
182+
this.defaultBuildFailedReportingValue = defaultBuildFailedReportingValue;
183+
}
184+
185+
/**
186+
* Standard getter for the build unstable reporting value.
187+
*
188+
* @return the description.
189+
*/
190+
public Integer getDefaultBuildUnstableReportingValue() {
191+
return defaultBuildUnstableReportingValue;
192+
}
193+
194+
/**
195+
* Standard setter for the build unstable reporting value.
196+
*
197+
* @param defaultBuildUnstableReportingValue the default build unstable reporting value
198+
*/
199+
public void setDefaultBuildUnstableReportingValue(Integer defaultBuildUnstableReportingValue) {
200+
this.defaultBuildUnstableReportingValue = defaultBuildUnstableReportingValue;
201+
}
202+
203+
/**
204+
* Standard getter for the build not built reporting value.
205+
*
206+
* @return the description.
207+
*/
208+
public Integer getDefaultBuildNotBuiltReportingValue() {
209+
return defaultBuildNotBuiltReportingValue;
210+
}
211+
212+
/**
213+
* Standard setter for the build not built reporting value.
214+
*
215+
* @param defaultBuildNotBuiltReportingValue the default build not built reporting value
216+
*/
217+
public void setDefaultBuildNotBuiltReportingValue(Integer defaultBuildNotBuiltReportingValue) {
218+
this.defaultBuildNotBuiltReportingValue = defaultBuildNotBuiltReportingValue;
219+
}
220+
221+
@Override
222+
public boolean equals(Object o) {
223+
if (this == o) {
224+
return true;
225+
}
226+
if (o == null || getClass() != o.getClass()) {
227+
return false;
228+
}
229+
230+
VerdictCategory category = (VerdictCategory)o;
231+
232+
return verdictValue != null ? verdictValue.equals(category.verdictValue) : category.verdictValue == null;
233+
}
234+
235+
@Override public int hashCode() {
236+
return Objects
237+
.hash(verdictValue,
238+
verdictDescription,
239+
defaultBuildStartedReportingValue,
240+
defaultBuildSuccessfulReportingValue,
241+
defaultBuildFailedReportingValue,
242+
defaultBuildUnstableReportingValue,
243+
defaultBuildNotBuiltReportingValue);
75244
}
76245

77246
/**

0 commit comments

Comments
 (0)