You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2011/02/22 17:04:28 UTC

svn commit: r1073374 - /felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/annotation/Util.java

Author: cziegeler
Date: Tue Feb 22 16:04:27 2011
New Revision: 1073374

URL: http://svn.apache.org/viewvc?rev=1073374&view=rev
Log:
Use current generator project.

Modified:
    felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/annotation/Util.java

Modified: felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/annotation/Util.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/annotation/Util.java?rev=1073374&r1=1073373&r2=1073374&view=diff
==============================================================================
--- felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/annotation/Util.java (original)
+++ felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/annotation/Util.java Tue Feb 22 16:04:27 2011
@@ -308,6 +308,38 @@ public abstract class Util {
         }
     }
 
+    public static Class<?>[] getClassArrayValue(Annotation annotation, String name, final Class<?> clazz) {
+        final Object obj = annotation.getNamedParameter(name);
+        if ( obj != null ) {
+            if ( obj instanceof Class<?> ) {
+                return new Class<?>[] {(Class<?>)obj};
+            }
+            if ( obj.getClass().isArray() ) {
+                final Object[] objArray = (Object[])obj;
+                final Class<?>[] result = new Class<?>[objArray.length];
+                for(int i=0; i<objArray.length;i++) {
+                    if ( objArray[i] instanceof Class<?>) {
+                        result[i] = (Class<?>)objArray[i];
+                    } else {
+                        result[i] = ClassUtil.getClass(objArray[i].toString());
+                    }
+                }
+                return result;
+            }
+            return new Class<?>[] {ClassUtil.getClass(obj.toString())};
+        }
+        try {
+            final Object val = clazz.getMethod(name).getDefaultValue();
+            if ( val instanceof Class<?> ) {
+                return new Class<?>[] {(Class<?>)val};
+            }
+            return (Class<?>[])val;
+        } catch( NoSuchMethodException mnfe) {
+            // we ignore this
+            return null;
+        }
+    }
+
     public static <T extends Enum<T>> T getEnumValue(Annotation annotation,
                                                   String name,
                                                   final Class<T> enumClass,