summaryrefslogtreecommitdiffstats
path: root/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java')
-rw-r--r--framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java57
1 files changed, 53 insertions, 4 deletions
diff --git a/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
index 5c8bdf6d..6ce09179 100644
--- a/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
+++ b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
@@ -16,13 +16,36 @@
package org.onap.cli.fw.input.cache;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.utils.OnapCommandUtils;
+
public class OnapCommandParameterCache {
public Map<String, Map<String, String>> paramCache = new HashMap<>();
+ private static OnapCommandParameterCache single = null;
+
+ private String profileName = Constants.PARAM_CACHE_FILE_NAME;
+
+ private OnapCommandParameterCache() {
+
+ }
+
+ public static OnapCommandParameterCache getInstance() {
+ if (single == null) {
+ single = new OnapCommandParameterCache();
+ }
+
+ single.load();
+ return single;
+ }
+
+
public void add(String productVersion, String paramName, String paramValue) {
if (!paramCache.containsKey(productVersion)) {
@@ -30,6 +53,8 @@ public class OnapCommandParameterCache {
}
paramCache.get(productVersion).put(paramName, paramValue);
+
+ this.persist();
}
public void remove(String productVersion, String paramName) {
@@ -38,6 +63,8 @@ public class OnapCommandParameterCache {
paramCache.get(productVersion).remove(paramName);
}
}
+
+ this.persist();
}
public Map<String, String> getParams(String productVersion) {
@@ -48,11 +75,33 @@ public class OnapCommandParameterCache {
}
}
- public void persist() {
- // mrkana add persistence logic
+ private void persist() {
+ List<Param> params = new ArrayList<>();
+ for (String p: this.paramCache.keySet()) {
+ for (String name: this.paramCache.get(p).keySet()) {
+
+ Param param = new Param();
+ param.setProduct(p);
+ param.setName(name);
+ param.setValue(this.paramCache.get(p).get(name));
+
+ params.add(param);
+ }
+ }
+
+ OnapCommandUtils.persistParams(params, this.profileName);
+ }
+
+ private void load() {
+ List<Param> params = OnapCommandUtils.loadParamFromCache(this.profileName);
+
+ for (Param p : params) {
+ this.add(p.getProduct(), p.getName(), p.getValue());
+ }
}
- public void load() {
- // mrkanag add loading cache from persistence
+ public void setProfile(String profileName) {
+ this.profileName = profileName;
+ this.load();
}
}