[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