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 2010/09/03 22:22:31 UTC

svn commit: r992450 - in /karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands: Argument.java basic/DefaultActionPreparator.java

Author: gnodet
Date: Fri Sep  3 20:22:30 2010
New Revision: 992450

URL: http://svn.apache.org/viewvc?rev=992450&view=rev
Log:
KARAF-152: when using the @Argument annotation, if there is no name specified it would be nice to reuse the name of the field, rather than use VAL

Modified:
    karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java
    karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/DefaultActionPreparator.java

Modified: karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java?rev=992450&r1=992449&r2=992450&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/Argument.java Fri Sep  3 20:22:30 2010
@@ -30,7 +30,10 @@ import java.lang.annotation.ElementType;
 @Target({ElementType.FIELD})
 public @interface Argument
 {
-    String name() default "VAL";
+
+    String DEFAULT = "##default";
+
+    String name() default DEFAULT;
 
     String description() default "";
 

Modified: karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/DefaultActionPreparator.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/DefaultActionPreparator.java?rev=992450&r1=992449&r2=992450&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/DefaultActionPreparator.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/DefaultActionPreparator.java Fri Sep  3 20:22:30 2010
@@ -84,6 +84,30 @@ public class DefaultActionPreparator imp
                 }
                 Argument argument = field.getAnnotation(Argument.class);
                 if (argument != null) {
+                    if (Argument.DEFAULT.equals(argument.name())) {
+                        final Argument delegate = argument;
+                        final String name = field.getName();
+                        argument = new Argument() {
+                            public String name() {
+                                return name;
+                            }
+                            public String description() {
+                                return delegate.description();
+                            }
+                            public boolean required() {
+                                return delegate.required();
+                            }
+                            public int index() {
+                                return delegate.index();
+                            }
+                            public boolean multiValued() {
+                                return delegate.multiValued();
+                            }
+                            public Class<? extends Annotation> annotationType() {
+                                return delegate.annotationType();
+                            }
+                        };
+                    }
                     arguments.put(argument, field);
                     int index = argument.index();
                     while (orderedArguments.size() <= index) {