[webbeans-commits] Webbeans SVN: r771 - in ri/trunk: webbeans-ri/src/main/java/org/jboss/webbeans/bean and 4 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Mon Jan 5 12:22:12 EST 2009


Author: pete.muir at jboss.org
Date: 2009-01-05 12:22:12 -0500 (Mon, 05 Jan 2009)
New Revision: 771

Modified:
   ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java
Log:
WBRI-75

Modified: ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java
===================================================================
--- ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -18,6 +18,7 @@
 package javax.webbeans.manager;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
 import java.util.Set;
 
 /**
@@ -47,7 +48,7 @@
 
    public abstract void destroy(T instance);
 
-   public abstract Set<Class<?>> getTypes();
+   public abstract Set<Type> getTypes();
 
    public abstract Set<Annotation> getBindingTypes();
 

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -102,7 +102,7 @@
    // The type
    protected Class<T> type;
    // The API types
-   protected Set<Class<?>> apiTypes;
+   protected Set<Type> types;
    // The injection points
    protected Set<AnnotatedItem<?, ?>> injectionPoints;
    // If the type a primitive?
@@ -137,15 +137,16 @@
       initDeploymentType();
       checkDeploymentType();
       initScopeType();
-      initApiTypes();
+      initTypes();
    }
 
    /**
     * Initializes the API types
     */
-   protected void initApiTypes()
+   protected void initTypes()
    {
-      apiTypes = Reflections.getTypeHierachy(getType());
+      types = new HashSet<Type>();
+      Reflections.getTypeHierachy(getType(), types);
    }
 
    /**
@@ -501,9 +502,9 @@
     * @see javax.webbeans.manager.Bean#getTypes()
     */
    @Override
-   public Set<Class<?>> getTypes()
+   public Set<Type> getTypes()
    {
-      return apiTypes;
+      return types;
    }
 
    /**

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -21,18 +21,13 @@
 import java.lang.reflect.Type;
 import java.util.HashSet;
 
-import javax.webbeans.BindingType;
 import javax.webbeans.DefinitionException;
 import javax.webbeans.Dependent;
 import javax.webbeans.IllegalProductException;
-import javax.webbeans.UnserializableDependencyException;
-import javax.webbeans.manager.Bean;
 
 import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.MetaDataCache;
 import org.jboss.webbeans.context.DependentContext;
-import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedMember;
 import org.jboss.webbeans.util.Names;
 import org.jboss.webbeans.util.Reflections;
 
@@ -76,22 +71,22 @@
     * Initializes the API types
     */
    @Override
-   protected void initApiTypes()
+   protected void initTypes()
    {
       if (getType().isArray() || getType().isPrimitive())
       {
-         apiTypes = new HashSet<Class<?>>();
-         apiTypes.add(getType());
-         apiTypes.add(Object.class);
+         types = new HashSet<Type>();
+         types.add(getType());
+         types.add(Object.class);
       }
       else if (getType().isInterface())
       {
-         super.initApiTypes();
-         apiTypes.add(Object.class);
+         super.initTypes();
+         types.add(Object.class);
       }
       else
       {
-         super.initApiTypes();
+         super.initTypes();
       }
    }
 

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -18,6 +18,7 @@
 package org.jboss.webbeans.bean;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
 import java.util.Set;
 
 import javax.webbeans.manager.Bean;
@@ -115,7 +116,7 @@
     * @return The API types
     */
    @Override
-   public Set<Class<?>> getTypes()
+   public Set<Type> getTypes()
    {
       return delegate().getTypes();
    }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -18,6 +18,7 @@
 package org.jboss.webbeans.bean.proxy;
 
 import java.io.Serializable;
+import java.lang.reflect.Type;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.Callable;
@@ -76,7 +77,7 @@
       try
       {
          SimpleBeanProxyMethodHandler proxyMethodHandler = new SimpleBeanProxyMethodHandler(bean, beanIndex);
-         Set<Class<?>> classes = new HashSet<Class<?>>(bean.getTypes());
+         Set<Type> classes = new HashSet<Type>(bean.getTypes());
          classes.add(Serializable.class);
          ProxyFactory proxyFactory = Proxies.getProxyFactory(classes);
          proxyFactory.setHandler(proxyMethodHandler);

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -127,7 +127,7 @@
     * @param types The set of types to match
     * @return True if assignable, false otherwise.
     */
-   public boolean isAssignableFrom(Set<Class<?>> types);
+   public boolean isAssignableFrom(Set<Type> types);
 
    /**
     * Gets the actual type arguments for any parameterized types that this

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -123,7 +123,7 @@
    /**
     * @see org.jboss.webbeans.introspector.AnnotatedItem
     */
-   public boolean isAssignableFrom(Set<Class<?>> types)
+   public boolean isAssignableFrom(Set<Type> types)
    {
       return delegate().isAssignableFrom(types);
    }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -390,14 +390,22 @@
     * 
     * @see org.jboss.webbeans.introspector.AnnotatedItem#isAssignableFrom(Set)
     */
-   public boolean isAssignableFrom(Set<Class<?>> types)
+   public boolean isAssignableFrom(Set<Type> types)
    {
-      for (Class<?> type : types)
+      for (Type type : types)
       {
-         if (isAssignableFrom(type, Reflections.getActualTypeArguments(type)))
+         if (type instanceof Class)
          {
-            return true;
+            Class<?> clazz = (Class<?>) type;
+            if (isAssignableFrom(clazz, Reflections.getActualTypeArguments(clazz)))
+            {
+               return true;
+            }
          }
+         else
+         {
+            
+         }
       }
       return false;
    }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -104,9 +104,9 @@
     * @param classes Additional interfaces the proxy should implement
     * @return the proxy factory
     */
-   public static ProxyFactory getProxyFactory(Set<Class<?>> types)
+   public static ProxyFactory getProxyFactory(Set<Type> types)
    {
-      return TypeInfo.ofClasses(types).createProxyFactory();
+      return TypeInfo.ofTypes(types).createProxyFactory();
    }
    
 }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -593,20 +593,33 @@
     * 
     * @param clazz The class to examine
     * @return The set of classes and interfaces in the hierarchy
+    * @see #getTypeHierachy(Class, Set)
     */
    public static Set<Class<?>> getTypeHierachy(Class<?> clazz)
    {
       Set<Class<?>> classes = new HashSet<Class<?>>();
+      getTypeHierachy(clazz, classes);
+      return classes;
+   }
+   
+   /**
+    * Gets the flattened type hierarchy for a class, including all super classes
+    * and the entire interface type hierarchy
+    * 
+    * @param clazz the class to examine
+    * @param classes the set of types
+    */
+   public static void getTypeHierachy(Class<?> clazz, Set<? super Class<?>> classes)
+   {
       if (clazz != null)
       {
          classes.add(clazz);
-         classes.addAll(getTypeHierachy(clazz.getSuperclass()));
+         getTypeHierachy(clazz.getSuperclass(), classes);
          for (Class<?> c : clazz.getInterfaces())
          {
-            classes.addAll(getTypeHierachy(c));
+            getTypeHierachy(c, classes);
          }
       }
-      return classes;
    }
 
    /**

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java	2009-01-05 16:47:09 UTC (rev 770)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java	2009-01-05 17:22:12 UTC (rev 771)
@@ -17,6 +17,7 @@
 
 package org.jboss.webbeans.util;
 
+
 /**
  * Utility class for Types
  * 




More information about the weld-commits mailing list