You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by st...@apache.org on 2011/05/18 22:38:41 UTC

svn commit: r1124413 - /myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java

Author: struberg
Date: Wed May 18 20:38:41 2011
New Revision: 1124413

URL: http://svn.apache.org/viewvc?rev=1124413&view=rev
Log:
EXTCDI-188 refine typesafe getReference even more

Modified:
    myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java

Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java?rev=1124413&r1=1124412&r2=1124413&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java Wed May 18 20:38:41 2011
@@ -121,11 +121,8 @@ public class BeanManagerProvider impleme
     {
         BeanManager beanManager = getBeanManager();
         Set<Bean<?>> beans = beanManager.getBeans(type, qualifiers);
-        Bean<?> bean = beanManager.resolve(beans);
-        CreationalContext<?> creationalContext = beanManager.createCreationalContext(bean);
 
-        //noinspection unchecked
-        return (T) beanManager.getReference(bean, type, creationalContext);
+        return getReference(type, beanManager, beans);
     }
 
     /**
@@ -141,11 +138,25 @@ public class BeanManagerProvider impleme
     {
         BeanManager beanManager = getBeanManager();
         Set<Bean<?>> beans = beanManager.getBeans(name);
+
+        return getReference(type, beanManager, beans);
+    }
+
+    /**
+     * Internal helper method to resolve the right bean and
+     * resolve the contextual reference.
+     * @param type
+     * @param beanManager
+     * @param beans
+     * @param <T>
+     * @return the contextual reference
+     */
+    private <T> T getReference(Class<T> type, BeanManager beanManager, Set<Bean<?>> beans)
+    {
         Bean<?> bean = beanManager.resolve(beans);
         CreationalContext<?> creationalContext = beanManager.createCreationalContext(bean);
 
-        //noinspection unchecked
-        return (T)beanManager.getReference(bean, Object.class, creationalContext);
+        return (T)beanManager.getReference(bean, type, creationalContext);
     }
 
     /**