[jboss-cvs] JBossAS SVN: r102428 - in projects/jboss-reflect/trunk/src: test/java/org/jboss/test/classinfo/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 15 14:58:19 EDT 2010


Author: kabir.khan at jboss.com
Date: 2010-03-15 14:58:18 -0400 (Mon, 15 Mar 2010)
New Revision: 102428

Modified:
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java
   projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/ClassInfoGenericClassTest.java
Log:
[JBREFLECT-5] TypeVariable support

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java	2010-03-15 18:23:26 UTC (rev 102427)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfoFactoryImpl.java	2010-03-15 18:58:18 UTC (rev 102428)
@@ -26,6 +26,7 @@
 import java.lang.reflect.GenericArrayType;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
 import java.lang.reflect.WildcardType;
 import java.util.Map;
 
@@ -549,6 +550,8 @@
          return getWildcardType((WildcardType)type);
       else if (type instanceof GenericArrayType)
          return getGenericArrayType((GenericArrayType)type);
+      else if (type instanceof TypeVariable)
+         return getTypeVariable((TypeVariable<?>) type);
 
       throw new org.jboss.util.NotImplementedException("getTypeInfo");
    }
@@ -852,4 +855,9 @@
       
       throw new IllegalArgumentException(componentType + " is not a JavassistType info or a JavassistParameterizedType");
    }
+   
+   protected TypeInfo getTypeVariable(TypeVariable<?> type)
+   {
+      return getTypeInfo(type.getBounds()[0]);
+   }
 }

Modified: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/ClassInfoGenericClassTest.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/ClassInfoGenericClassTest.java	2010-03-15 18:23:26 UTC (rev 102427)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/classinfo/test/ClassInfoGenericClassTest.java	2010-03-15 18:58:18 UTC (rev 102428)
@@ -300,11 +300,37 @@
       assertSame(infoB, info);
    }
 
-   public static Collection<Boolean> signatureCollectionBoolean() 
+   public static <T> T signatureSimpleTypeVariable()
    {
       return null;
    }
    
+   public void testSimpleTypeVariable() throws Throwable
+   {
+      Type type = getGenericReturnType("signatureSimpleTypeVariable");
+      TypeInfo info = getTypeInfoFactory().getTypeInfo(type);
+      assertNotNull(info);
+      assertEquals(Object.class.getName(), info.getName());
+   }
+   
+   public static <T extends Boolean> T signatureBoundedTypeVariable()
+   {
+      return null;
+   }
+   
+   public void testUpperBoundedTypeVariable() throws Throwable
+   {
+      Type type = getGenericReturnType("signatureBoundedTypeVariable");
+      TypeInfo info = getTypeInfoFactory().getTypeInfo(type);
+      assertNotNull(info);
+      assertEquals(Boolean.class, info.getType());
+   }
+   
+   public static Collection<Boolean> signatureCollectionBoolean()
+   {
+      return null;
+   }
+   
    public void testComponentTypeCollectionBoolean() throws Throwable
    {
       assertComponentType("signatureCollectionBoolean", Boolean.class);




More information about the jboss-cvs-commits mailing list