Fix support for Velocity and Soy comments
So far, when trying to support both types of comments, if one was read
it was immediately overwritten by a new assignment which could be empty.
Change-Id: If47185e9bf66468b9fcc25faff8c460c2d2c4c7a
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/action/AddStandardComment.java b/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/action/AddStandardComment.java
index 813fec1..8a7a09f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/action/AddStandardComment.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/action/AddStandardComment.java
@@ -41,25 +41,14 @@
this.its = its;
}
- private String formatPerson(String prefix, Map<String, String> map) {
- String ret = Strings.nullToEmpty(map.get(prefix + "-name"));
- ret = Strings.nullToEmpty(map.get(prefix + "Name"));
- if (ret.isEmpty()) {
- ret = Strings.nullToEmpty(map.get(prefix + "-username"));
- ret = Strings.nullToEmpty(map.get(prefix + "Username"));
- }
- return ret;
- }
-
private String getCommentChangeEvent(String action, String prefix, Map<String, String> map) {
String ret = "";
- String changeNumber = Strings.nullToEmpty(map.get("change-number"));
- changeNumber = Strings.nullToEmpty(map.get("changeNumber"));
+ String changeNumber = getValueFromMap(map, "", "change-number", "changeNumber");
if (!changeNumber.isEmpty()) {
changeNumber += " ";
}
ret += "Change " + changeNumber + action;
- String submitter = formatPerson(prefix, map);
+ String submitter = getValueFromMap(map, prefix, "-name", "Name", "-username", "Username");
if (!submitter.isEmpty()) {
ret += " by " + submitter;
}
@@ -71,14 +60,23 @@
if (!reason.isEmpty()) {
ret += "\n\nReason:\n" + reason;
}
- String url = Strings.nullToEmpty(map.get("change-url"));
- url = Strings.nullToEmpty(map.get("changeUrl"));
+ String url = getValueFromMap(map, "", "change-url", "changeUrl");
if (!url.isEmpty()) {
ret += "\n\n" + its.createLinkForWebui(url, url);
}
return ret;
}
+ private String getValueFromMap(Map<String, String> map, String keyPrefix, String... keyOptions) {
+ for (String key : keyOptions) {
+ String ret = Strings.nullToEmpty(map.get(keyPrefix + key));
+ if (!ret.isEmpty()) {
+ return ret;
+ }
+ }
+ return "";
+ }
+
private String getCommentChangeAbandoned(Map<String, String> map) {
return getCommentChangeEvent("abandoned", "abandoner", map);
}