diff options
Diffstat (limited to 'framework')
3 files changed, 28 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 ee6dbed3..5b00be19 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 @@ -58,6 +58,13 @@ public class OnapCommandParameterCache { return single; } + public void includeProfile(String profile) { + this.load(profile, true); + } + + public void excludeProfile(String profile) { + this.load(profile, false); + } public void add(String productVersion, String paramName, String paramValue) { @@ -111,15 +118,23 @@ public class OnapCommandParameterCache { } private void load() { + this.load(this.profileName, true); + } + + private void load(String profileName, boolean include) { List<OnapCommandParamEntity> params= new ArrayList<>(); try { - params = this.loadParamFromCache(this.profileName); + params = this.loadParamFromCache(profileName); } catch (OnapCommandLoadProfileFailed e) { throw new RuntimeException(e); // NOSONAR } for (OnapCommandParamEntity p : params) { - this.add(p.getProduct(), p.getName(), p.getValue()); + if (include) { + this.add(p.getProduct(), p.getName(), p.getValue()); + } else { + this.remove(p.getProduct(), p.getName()); + } } } diff --git a/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java b/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java index 8ba215e6..6564628d 100644 --- a/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java +++ b/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java @@ -90,8 +90,16 @@ public class OnapCommandRegistrar { paramCache.remove(this.getEnabledProductVersion(), paramName); } - public void setProfile(String profileName) { + public void setProfile(String profileName, List<String> includes, List<String> excludes) { this.paramCache.setProfile(profileName); + + for (String profile: includes) { + this.paramCache.includeProfile(profile); + } + + for (String profile: excludes) { + this.paramCache.excludeProfile(profile); + } } public List<String> getUserProfiles() { diff --git a/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java b/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java index 124b9564..d70c1521 100644 --- a/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java +++ b/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java @@ -23,6 +23,7 @@ import static org.junit.Assert.fail; import java.io.File; import java.net.URL; +import java.util.ArrayList; import org.junit.Before; import org.junit.Test; @@ -90,7 +91,7 @@ public class OnapCommandRegistrarTest { @Test public void testProfile() throws OnapCommandException { try { - OnapCommandRegistrar.getRegistrar().setProfile("test12312"); + OnapCommandRegistrar.getRegistrar().setProfile("test234", new ArrayList<String>(), new ArrayList<String>()); OnapCommandRegistrar.getRegistrar().addParamCache("a", "b"); OnapCommandRegistrar.getRegistrar().getParamCache(); OnapCommandRegistrar.getRegistrar().removeParamCache("a"); |