Add properties get/setters to TaskConfig.Task
Move these small low level details to the TaskConfig.Task class so that
the Properties class tells a simpler story. This also helps pave the way
for re-using this functionality more easily when refreshing a Task.
Change-Id: I2484a27d6911b8b9348c2c544e843e098459f2bb
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java b/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java
index 51887a7..ff8dfad 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/Properties.java
@@ -38,14 +38,9 @@
throws OrmException {
Map<String, String> expanded = new HashMap<>(parentProperties);
expanded.putAll(getInternalProperties(definition, changeData));
- Map<String, String> unexpanded = definition.properties;
- unexpanded.putAll(definition.exported);
- new RecursiveExpander(expanded).expand(unexpanded);
+ new RecursiveExpander(expanded).expand(definition.getAllProperties());
- definition.properties = expanded;
- for (String property : definition.exported.keySet()) {
- definition.exported.put(property, expanded.get(property));
- }
+ definition.setExpandedProperties(expanded);
new Expander(expanded).expandFieldValues(definition, Collections.emptySet());
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
index e0fec78..80effb5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
@@ -139,6 +139,20 @@
protected Task(TaskBase base) {
super(base);
}
+
+ protected Map<String, String> getAllProperties() {
+ Map<String, String> all = new HashMap<>(properties);
+ all.putAll(exported);
+ return all;
+ }
+
+ protected void setExpandedProperties(Map<String, String> expanded) {
+ properties.clear();
+ properties.putAll(expanded);
+ for (String property : exported.keySet()) {
+ exported.put(property, properties.get(property));
+ }
+ }
}
public class TasksFactory extends TaskBase {