aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/main')
-rw-r--r--framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java15
-rw-r--r--framework/src/main/java/org/onap/cli/fw/conf/Constants.java1
-rw-r--r--framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java5
-rw-r--r--framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java58
-rw-r--r--framework/src/main/resources/onap.properties2
5 files changed, 79 insertions, 2 deletions
diff --git a/framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java b/framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java
index 424d26ca..019eb824 100644
--- a/framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java
+++ b/framework/src/main/java/org/onap/cli/fw/OnapCommandRegistrar.java
@@ -34,6 +34,7 @@ import org.onap.cli.fw.error.OnapCommandNotFound;
import org.onap.cli.fw.error.OnapCommandProductVersionInvalid;
import org.onap.cli.fw.error.OnapCommandRegistrationFailed;
import org.onap.cli.fw.error.OnapCommandRegistrationVersionMissing;
+import org.onap.cli.fw.input.cache.OnapCommandParameterCache;
import org.onap.cli.fw.output.OnapCommandResult;
import org.onap.cli.fw.output.OnapCommandResultAttribute;
import org.onap.cli.fw.output.OnapCommandResultAttributeScope;
@@ -57,6 +58,8 @@ public class OnapCommandRegistrar {
private boolean isInteractiveMode = false;
+ private OnapCommandParameterCache paramCache = new OnapCommandParameterCache();
+
public boolean isInteractiveMode() {
return isInteractiveMode;
}
@@ -65,6 +68,18 @@ public class OnapCommandRegistrar {
this.isInteractiveMode = isInteractiveMode;
}
+ public Map<String, String> getParamCache() {
+ return paramCache.getParams(this.getEnabledProductVersion());
+ }
+
+ public void addParamCache(String paramName, String paramValue) {
+ paramCache.add(this.getEnabledProductVersion(), paramName, paramValue);
+ }
+
+ public void removeParamCache(String paramName) {
+ paramCache.remove(this.getEnabledProductVersion(), paramName);
+ }
+
private static OnapCommandRegistrar registrar = null;
/**
diff --git a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java b/framework/src/main/java/org/onap/cli/fw/conf/Constants.java
index d27649b0..23dfbbbe 100644
--- a/framework/src/main/java/org/onap/cli/fw/conf/Constants.java
+++ b/framework/src/main/java/org/onap/cli/fw/conf/Constants.java
@@ -194,6 +194,7 @@ public class Constants {
public static final String HTTP_SAMPLE_RESPONSE_FAILED_PARSING = "The http Sample response json is failed to parse.";
public static final String USE_DIRECTIVE = "use";
+ public static final String PARAM_CACHE_FILE_NAME = "cli.parameter.cache.file";
private Constants() {
}
diff --git a/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java
index 5ca0589f..35461a05 100644
--- a/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java
+++ b/framework/src/main/java/org/onap/cli/fw/conf/OnapCommandConfg.java
@@ -16,8 +16,6 @@
package org.onap.cli.fw.conf;
-import org.onap.cli.fw.input.OnapCommandParameter;
-
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
@@ -163,4 +161,7 @@ public final class OnapCommandConfg {
return Arrays.stream(prps.getProperty(key).split(",")).map(String::trim).collect(Collectors.toList()); // NOSONAR
}
+ public static String getParamCacheFileName() {
+ return prps.getProperty(Constants.PARAM_CACHE_FILE_NAME);
+ }
}
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
new file mode 100644
index 00000000..5c8bdf6d
--- /dev/null
+++ b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.cli.fw.input.cache;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class OnapCommandParameterCache {
+
+ public Map<String, Map<String, String>> paramCache = new HashMap<>();
+
+ public void add(String productVersion, String paramName, String paramValue) {
+
+ if (!paramCache.containsKey(productVersion)) {
+ paramCache.put(productVersion, new HashMap<String, String>());
+ }
+
+ paramCache.get(productVersion).put(paramName, paramValue);
+ }
+
+ public void remove(String productVersion, String paramName) {
+ if (paramCache.containsKey(productVersion)) {
+ if (paramCache.get(productVersion).containsKey(paramName)) {
+ paramCache.get(productVersion).remove(paramName);
+ }
+ }
+ }
+
+ public Map<String, String> getParams(String productVersion) {
+ if (paramCache.containsKey(productVersion)) {
+ return this.paramCache.get(productVersion);
+ } else {
+ return new HashMap<String, String>();
+ }
+ }
+
+ public void persist() {
+ // mrkana add persistence logic
+ }
+
+ public void load() {
+ // mrkanag add loading cache from persistence
+ }
+}
diff --git a/framework/src/main/resources/onap.properties b/framework/src/main/resources/onap.properties
index 9e6b34bd..6df5682a 100644
--- a/framework/src/main/resources/onap.properties
+++ b/framework/src/main/resources/onap.properties
@@ -54,3 +54,5 @@ cli.schema.mode_values=direct,catalog
#product version
cli.product.version=cli-1.0
+
+cli.parameter.cache.file=param-cache.json