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 {