You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/02/14 13:44:20 UTC

[10/15] git commit: [KARAF-2756] Allow simple StringsCompleter definitions using @Completer

[KARAF-2756] Allow simple StringsCompleter definitions using @Completer


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/334121ea
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/334121ea
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/334121ea

Branch: refs/heads/master
Commit: 334121ead51a45cd61c8bbd932c24b18825d892f
Parents: bdb8f07
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Feb 13 15:06:38 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100

----------------------------------------------------------------------
 .../apache/karaf/shell/commands/Completer.java    |  4 ++++
 .../console/completer/ArgumentCompleter.java      | 18 ++++++++++++++----
 2 files changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/334121ea/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
index 6724dc6..ece3e1d 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
@@ -27,4 +27,8 @@ public @interface Completer {
 
     Class<? extends org.apache.karaf.shell.console.Completer> value();
 
+    String[] values() default { };
+
+    boolean caseSensitive() default false;
+
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/334121ea/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
index 1424bd6..ea6a5d4 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
@@ -122,9 +122,14 @@ public class ArgumentCompleter implements Completer {
                         org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
                         if (ann != null) {
                             Class clazz = ann.value();
+                            String[] values = ann.values();
                             if (clazz != null) {
-                                BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
-                                completer = new ProxyServiceCompleter(context, clazz);
+                                if (values.length > 0 && clazz == StringsCompleter.class) {
+                                    completer = new StringsCompleter(values, ann.caseSensitive());
+                                } else {
+                                    BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
+                                    completer = new ProxyServiceCompleter(context, clazz);
+                                }
                             }
                         }
                     }
@@ -144,9 +149,14 @@ public class ArgumentCompleter implements Completer {
                         org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
                         if (ann != null) {
                             Class clazz = ann.value();
+                            String[] values = ann.values();
                             if (clazz != null) {
-                                BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
-                                completer = new ProxyServiceCompleter(context, clazz);
+                                if (values.length > 0 && clazz == StringsCompleter.class) {
+                                    completer = new StringsCompleter(values, ann.caseSensitive());
+                                } else {
+                                    BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
+                                    completer = new ProxyServiceCompleter(context, clazz);
+                                }
                             }
                         }
                     }