geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ga...@apache.org
Subject svn commit: r794785 - /geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/GenericType.java
Date Thu, 16 Jul 2009 19:12:59 GMT
Author: gawor
Date: Thu Jul 16 19:12:59 2009
New Revision: 794785

URL: http://svn.apache.org/viewvc?rev=794785&view=rev
Log:
support WildcardType and TypeVariable

Modified:
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/GenericType.java

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/GenericType.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/GenericType.java?rev=794785&r1=794784&r2=794785&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/GenericType.java
(original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/GenericType.java
Thu Jul 16 19:12:59 2009
@@ -142,8 +142,8 @@
         return cl.getName();
     }
 
-    static GenericType[] parametersOf(Type type ) {
-		if ( type instanceof Class ) {
+    static GenericType[] parametersOf(Type type) {
+		if (type instanceof Class) {
 		    Class clazz = (Class) type;
 		    if (clazz.isArray()) {
                 GenericType t = new GenericType(clazz.getComponentType());
@@ -156,7 +156,7 @@
 		        return EMPTY;
 		    }
 		}
-        if ( type instanceof ParameterizedType ) {
+        if (type instanceof ParameterizedType) {
             ParameterizedType pt = (ParameterizedType) type;
             Type [] parameters = pt.getActualTypeArguments();
             GenericType[] gts = new GenericType[parameters.length];
@@ -165,9 +165,27 @@
             }
             return gts;
         }
-        if ( type instanceof GenericArrayType ) {
+        if (type instanceof GenericArrayType) {
             return new GenericType[] { new GenericType(((GenericArrayType) type).getGenericComponentType())
};
         }
+        if (type instanceof WildcardType) {
+            WildcardType wildcard = (WildcardType) type;
+            Type[] types = null;
+            if (wildcard.getLowerBounds() == null || wildcard.getLowerBounds().length ==
0) {
+                types = wildcard.getUpperBounds();
+            } else {
+                types = wildcard.getLowerBounds();
+            }
+            GenericType[] gts = new GenericType[types.length];
+            for (int i = 0; i < gts.length; i++) {
+                gts[i] = new GenericType(types[i]);
+            }
+            return gts;
+        }
+        if (type instanceof TypeVariable) {
+            TypeVariable typeVariable = (TypeVariable) type;
+            return new GenericType[] { new GenericType(typeVariable.getBounds()[0]) };
+        }
         throw new IllegalStateException();
 	}
 



Mime
View raw message