Enhanced application name completer to consider the command context.
Change-Id: Ib77a53830d4b6d14ef99115309ea25707a8281b4
diff --git a/cli/src/main/java/org/onosproject/cli/cfg/ComponentPropertyNameCompleter.java b/cli/src/main/java/org/onosproject/cli/cfg/ComponentPropertyNameCompleter.java
index 5b72493..4c6e5e9 100644
--- a/cli/src/main/java/org/onosproject/cli/cfg/ComponentPropertyNameCompleter.java
+++ b/cli/src/main/java/org/onosproject/cli/cfg/ComponentPropertyNameCompleter.java
@@ -15,41 +15,35 @@
*/
package org.onosproject.cli.cfg;
-import java.util.List;
-import java.util.Set;
-import java.util.SortedSet;
-
-import org.apache.felix.service.command.CommandSession;
-import org.apache.karaf.shell.console.CommandSessionHolder;
-import org.apache.karaf.shell.console.Completer;
import org.apache.karaf.shell.console.completer.ArgumentCompleter;
import org.apache.karaf.shell.console.completer.StringsCompleter;
import org.onosproject.cfg.ComponentConfigService;
import org.onosproject.cfg.ConfigProperty;
-import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.cli.net.AbstractCompleter;
+
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+
+import static org.onosproject.cli.AbstractShellCommand.get;
/**
* Component property name completer.
*/
-public class ComponentPropertyNameCompleter implements Completer {
+public class ComponentPropertyNameCompleter extends AbstractCompleter {
@Override
public int complete(String buffer, int cursor, List<String> candidates) {
// Delegate string completer
StringsCompleter delegate = new StringsCompleter();
- CommandSession session = CommandSessionHolder.getSession();
- ArgumentCompleter.ArgumentList list =
- (ArgumentCompleter.ArgumentList) session.get(
- ArgumentCompleter.ARGUMENTS_LIST);
-
// Component name is the previous argument.
+ ArgumentCompleter.ArgumentList list = getArgumentList();
String componentName = list.getArguments()[list.getCursorArgumentIndex() - 1];
- ComponentConfigService service =
- AbstractShellCommand.get(ComponentConfigService.class);
+ ComponentConfigService service = get(ComponentConfigService.class);
SortedSet<String> strings = delegate.getStrings();
Set<ConfigProperty> properties =
- service.getProperties(componentName);
+ service.getProperties(componentName);
if (properties != null) {
properties.forEach(property -> strings.add(property.name()));
}