aboutsummaryrefslogtreecommitdiffstats
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.java62
1 files changed, 53 insertions, 9 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 0b70b5c1..55833167 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,15 +16,24 @@
package org.onap.cli.fw.input.cache;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DATA_DIRECTORY;
+import static org.onap.cli.fw.conf.OnapCommandConstants.DATA_PATH_JSON_PATTERN;
+
+import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.conf.OnapCommandConstants;
import org.onap.cli.fw.error.OnapCommandLoadProfileFailed;
import org.onap.cli.fw.error.OnapCommandPersistProfileFailed;
-import org.onap.cli.fw.utils.OnapCommandProfileUtils;
+import org.onap.cli.fw.utils.OnapCommandDiscoveryUtils;
+import org.springframework.core.io.Resource;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
public class OnapCommandParameterCache {
@@ -32,7 +41,7 @@ public class OnapCommandParameterCache {
private static OnapCommandParameterCache single = null;
- private String profileName = Constants.PARAM_CACHE_FILE_NAME;
+ private String profileName = OnapCommandConstants.PARAM_CACHE_FILE_NAME;
private OnapCommandParameterCache() {
@@ -78,12 +87,12 @@ public class OnapCommandParameterCache {
}
private void persist() {
- List<Param> params = new ArrayList<>();
+ List<OnapCommandParamEntity> params = new ArrayList<>();
for (String p: this.paramCache.keySet()) {
for (String name: this.paramCache.get(p).keySet()) {
- Param param = new Param();
+ OnapCommandParamEntity param = new OnapCommandParamEntity();
param.setProduct(p);
param.setName(name);
param.setValue(this.paramCache.get(p).get(name));
@@ -93,21 +102,21 @@ public class OnapCommandParameterCache {
}
try {
- OnapCommandProfileUtils.persistProfile(params, this.profileName);
+ this.persistProfile(params, this.profileName);
} catch (OnapCommandPersistProfileFailed e) {
throw new RuntimeException(e); // NOSONAR
}
}
private void load() {
- List<Param> params= new ArrayList<>();
+ List<OnapCommandParamEntity> params= new ArrayList<>();
try {
- params = OnapCommandProfileUtils.loadParamFromCache(this.profileName);
+ params = this.loadParamFromCache(this.profileName);
} catch (OnapCommandLoadProfileFailed e) {
throw new RuntimeException(e); // NOSONAR
}
- for (Param p : params) {
+ for (OnapCommandParamEntity p : params) {
this.add(p.getProduct(), p.getName(), p.getValue());
}
}
@@ -116,4 +125,39 @@ public class OnapCommandParameterCache {
this.profileName = profileName;
this.load();
}
+
+ private void persistProfile(List<OnapCommandParamEntity> params, String profileName) throws OnapCommandPersistProfileFailed {
+ if (params != null) {
+ try {
+ Resource[] resources = OnapCommandDiscoveryUtils.findResources(DATA_DIRECTORY);
+ if (resources != null && resources.length == 1) {
+ String path = resources[0].getURI().getPath();
+ File file = new File(path + File.separator + profileName + ".json");
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.writerWithDefaultPrettyPrinter().writeValue(file, params);
+ }
+ } catch (IOException e1) {
+ throw new OnapCommandPersistProfileFailed(e1);
+ }
+ }
+ }
+
+ private List<OnapCommandParamEntity> loadParamFromCache(String profileName) throws OnapCommandLoadProfileFailed {
+ List<OnapCommandParamEntity> params = new ArrayList<>();
+
+ try {
+ Resource resource = OnapCommandDiscoveryUtils.findResource(profileName + ".json",
+ DATA_PATH_JSON_PATTERN);
+ if (resource != null) {
+ File file = new File(resource.getURI().getPath());
+ ObjectMapper mapper = new ObjectMapper();
+ OnapCommandParamEntity[] list = mapper.readValue(file, OnapCommandParamEntity[].class);
+ params.addAll(Arrays.asList(list));
+ }
+ } catch (IOException e) {
+ throw new OnapCommandLoadProfileFailed(e);
+ }
+
+ return params;
+ }
}