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

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Fri Jun 12 18:38:33 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-06-12 18:38:33 -0400 (Fri, 12 Jun 2009)
New Revision: 2828

Added:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/WBInjectionPoint.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotated.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotation.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBConstructor.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBField.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMember.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMethod.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBParameter.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBType.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotated.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotation.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBConstructor.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBField.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMember.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMethod.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBParameter.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBType.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBAnnotated.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBMember.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java
Removed:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedInjectionPoint.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedAnnotation.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java
Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ee/AbstractJavaEEResourceBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverFactory.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/event/TransactionalObserverImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedAdaptor.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ConstructorInjectionPoint.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/FieldInjectionPoint.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/MethodInjectionPoint.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ParameterInjectionPoint.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/ConstructorSignatureImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/newsimple/NewSimpleBeanTest.java
Log:
Rename Annotated*

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -80,10 +80,10 @@
 import org.jboss.webbeans.event.EventObserver;
 import org.jboss.webbeans.event.ObserverImpl;
 import org.jboss.webbeans.injection.NonContextualInjector;
-import org.jboss.webbeans.injection.resolution.ResolvableAnnotatedClass;
+import org.jboss.webbeans.injection.resolution.ResolvableWBClass;
 import org.jboss.webbeans.injection.resolution.ResolvableFactory;
 import org.jboss.webbeans.injection.resolution.Resolver;
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.WBAnnotated;
 import org.jboss.webbeans.log.Log;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.manager.api.WebBeansManager;
@@ -450,10 +450,10 @@
    
    public Set<Bean<?>> getBeans(Type beanType, Annotation... bindings)
    {
-      return getBeans(ResolvableAnnotatedClass.of(beanType, bindings, this), bindings);
+      return getBeans(ResolvableWBClass.of(beanType, bindings, this), bindings);
    }
    
-   public Set<Bean<?>> getBeans(AnnotatedItem<?, ?> element, Annotation... bindings)
+   public Set<Bean<?>> getBeans(WBAnnotated<?, ?> element, Annotation... bindings)
    {
       for (Annotation annotation : element.getAnnotations())
       {
@@ -490,7 +490,7 @@
             currentInjectionPoint.get().push(injectionPoint);
          }
          // TODO Do this properly
-         return getBeans(ResolvableAnnotatedClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0]), this));
+         return getBeans(ResolvableWBClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0]), this));
       }
       finally
       {
@@ -743,7 +743,7 @@
          {
             currentInjectionPoint.get().push(injectionPoint);
          }
-         AnnotatedItem<?, ?> element = ResolvableAnnotatedClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0]), this);
+         WBAnnotated<?, ?> element = ResolvableWBClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0]), this);
          Bean<?> resolvedBean = getBean(element, element.getBindingsAsArray());
          if (getServices().get(MetaDataCache.class).getScopeModel(resolvedBean.getScopeType()).isNormal() && !Proxies.isTypeProxyable(injectionPoint.getType()))
          {
@@ -788,11 +788,11 @@
    @Deprecated
    public <T> T getInstanceByType(Class<T> type, Annotation... bindings)
    {
-      AnnotatedItem<T, ?> element = ResolvableAnnotatedClass.of(type, bindings, this);
+      WBAnnotated<T, ?> element = ResolvableWBClass.of(type, bindings, this);
       return (T) getReference(getBean(element, bindings), type);
    }
 
-   public <T> Bean<T> getBean(AnnotatedItem<T, ?> element, Annotation... bindings)
+   public <T> Bean<T> getBean(WBAnnotated<T, ?> element, Annotation... bindings)
    {
       Set<Bean<?>> beans = getBeans(element, bindings);
       if (beans.size() == 0)

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -45,8 +45,8 @@
 import org.jboss.webbeans.bean.NewEnterpriseBean;
 import org.jboss.webbeans.bean.NewSimpleBean;
 import org.jboss.webbeans.bean.RIBean;
-import org.jboss.webbeans.injection.resolution.ResolvableAnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.injection.resolution.ResolvableWBClass;
+import org.jboss.webbeans.introspector.WBAnnotated;
 import org.jboss.webbeans.metadata.MetaDataCache;
 import org.jboss.webbeans.util.Beans;
 import org.jboss.webbeans.util.ListComparator;
@@ -104,7 +104,7 @@
             checkFacadeInjectionPoint(injectionPoint, Obtains.class, Instance.class);
             checkFacadeInjectionPoint(injectionPoint, Any.class, Event.class);
             Annotation[] bindings = injectionPoint.getBindings().toArray(new Annotation[0]);
-            AnnotatedItem<?, ?> annotatedItem = ResolvableAnnotatedClass.of(injectionPoint.getType(), bindings, manager);
+            WBAnnotated<?, ?> annotatedItem = ResolvableWBClass.of(injectionPoint.getType(), bindings, manager);
             Set<?> resolvedBeans = manager.getBeans(injectionPoint);
             if (resolvedBeans.isEmpty())
             {

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -24,7 +24,7 @@
 import javax.enterprise.inject.Instance;
 import javax.enterprise.inject.spi.Bean;
 
-import org.jboss.webbeans.injection.resolution.ResolvableAnnotatedClass;
+import org.jboss.webbeans.injection.resolution.ResolvableWBClass;
 
 /**
  * Helper implementation for Instance for getting instances
@@ -51,7 +51,7 @@
    public T get(Annotation... bindings) 
    {
       Annotation[] annotations = mergeInBindings(bindings);
-      Bean<T> bean = getManager().getBean(ResolvableAnnotatedClass.<T>of(getType(), annotations, getManager()), annotations);
+      Bean<T> bean = getManager().getBean(ResolvableWBClass.<T>of(getType(), annotations, getManager()), annotations);
       
       @SuppressWarnings("unchecked")
       T instance = (T) getManager().getReference(bean, getType());

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -39,10 +39,10 @@
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
 import org.jboss.webbeans.context.DependentInstancesStore;
 import org.jboss.webbeans.conversation.ConversationImpl;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.injection.WBInjectionPoint;
+import org.jboss.webbeans.introspector.WBField;
+import org.jboss.webbeans.introspector.WBAnnotated;
+import org.jboss.webbeans.introspector.WBParameter;
 import org.jboss.webbeans.literal.AnyLiteral;
 import org.jboss.webbeans.literal.CurrentLiteral;
 import org.jboss.webbeans.log.LogProvider;
@@ -112,7 +112,7 @@
    // The API types
    protected Set<Type> types;
    // The injection points
-   protected Set<AnnotatedInjectionPoint<?, ?>> injectionPoints;
+   protected Set<WBInjectionPoint<?, ?>> injectionPoints;
    // If the type a primitive?
    private boolean primitive;
    // The Web Beans manager
@@ -122,7 +122,7 @@
    
    private boolean initialized;
    
-   private Set<AnnotatedInjectionPoint<?, ?>> decoratesInjectionPoint;
+   private Set<WBInjectionPoint<?, ?>> decoratesInjectionPoint;
    
    protected boolean isInitialized()
    {
@@ -138,7 +138,7 @@
    {
       super(manager);
       this.manager = manager;
-      injectionPoints = new HashSet<AnnotatedInjectionPoint<?, ?>>();
+      injectionPoints = new HashSet<WBInjectionPoint<?, ?>>();
       dependentInstancesStore = new DependentInstancesStore();      
    }
 
@@ -181,8 +181,8 @@
 
    protected void initDecorates()
    {
-      this.decoratesInjectionPoint = new HashSet<AnnotatedInjectionPoint<?,?>>();
-      for (AnnotatedInjectionPoint<?, ?> injectionPoint : getAnnotatedInjectionPoints())
+      this.decoratesInjectionPoint = new HashSet<WBInjectionPoint<?,?>>();
+      for (WBInjectionPoint<?, ?> injectionPoint : getAnnotatedInjectionPoints())
       {
          if (injectionPoint.isAnnotationPresent(Decorates.class))
          {
@@ -191,7 +191,7 @@
       }
    }
    
-   protected Set<AnnotatedInjectionPoint<?, ?>> getDecoratesInjectionPoint()
+   protected Set<WBInjectionPoint<?, ?>> getDecoratesInjectionPoint()
    {
       return decoratesInjectionPoint;
    }
@@ -297,13 +297,13 @@
    private boolean checkInjectionPointsAreSerializable()
    {
       boolean passivating = manager.getServices().get(MetaDataCache.class).getScopeModel(this.getScopeType()).isPassivating();
-      for (AnnotatedInjectionPoint<?, ?> injectionPoint : getAnnotatedInjectionPoints())
+      for (WBInjectionPoint<?, ?> injectionPoint : getAnnotatedInjectionPoints())
       {
          Annotation[] bindings = injectionPoint.getMetaAnnotationsAsArray(BindingType.class);
          Bean<?> resolvedBean = manager.getBeans(injectionPoint.getRawType(), bindings).iterator().next();
          if (passivating)
          {
-            if (Dependent.class.equals(resolvedBean.getScopeType()) && !resolvedBean.isSerializable() && (((injectionPoint instanceof AnnotatedField) && !((AnnotatedField<?>) injectionPoint).isTransient()) || (injectionPoint instanceof AnnotatedParameter)) )
+            if (Dependent.class.equals(resolvedBean.getScopeType()) && !resolvedBean.isSerializable() && (((injectionPoint instanceof WBField) && !((WBField<?>) injectionPoint).isTransient()) || (injectionPoint instanceof WBParameter)) )
             {
                return false;
             }
@@ -398,7 +398,7 @@
     * 
     * @return The annotated item
     */
-   protected abstract AnnotatedItem<T, E> getAnnotatedItem();
+   protected abstract WBAnnotated<T, E> getAnnotatedItem();
 
    /**
     * Gets the binding types
@@ -435,7 +435,7 @@
    }
 
    @Override
-   public Set<AnnotatedInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
+   public Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
    {
       return injectionPoints;
    }
@@ -504,7 +504,7 @@
     * @param annotatedItem The other annotation to check
     * @return True if assignable, otherwise false
     */
-   public boolean isAssignableFrom(AnnotatedItem<?, ?> annotatedItem)
+   public boolean isAssignableFrom(WBAnnotated<?, ?> annotatedItem)
    {
       return this.getAnnotatedItem().isAssignableFrom(annotatedItem);
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -37,9 +37,9 @@
 import org.jboss.webbeans.injection.FieldInjectionPoint;
 import org.jboss.webbeans.injection.MethodInjectionPoint;
 import org.jboss.webbeans.injection.ParameterInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WBParameter;
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.util.Beans;
@@ -58,7 +58,7 @@
    // Logger
    private static final LogProvider log = Logging.getLogProvider(AbstractClassBean.class);
    // The item representation
-   protected AnnotatedClass<T> annotatedItem;
+   protected WBClass<T> annotatedItem;
    // The injectable fields
    private Set<FieldInjectionPoint<?>> injectableFields;
    // The initializer methods
@@ -73,7 +73,7 @@
     * @param type The type
     * @param manager The Web Beans manager
     */
-   protected AbstractClassBean(AnnotatedClass<T> type, BeanManagerImpl manager)
+   protected AbstractClassBean(WBClass<T> type, BeanManagerImpl manager)
    {
       super(manager);
       this.annotatedItem = type;
@@ -139,9 +139,9 @@
    {
       injectableFields = new HashSet<FieldInjectionPoint<?>>(Beans.getFieldInjectionPoints(annotatedItem, this));
       super.injectionPoints.addAll(injectableFields);
-      for (AnnotatedMethod<?> initializer : getInitializerMethods())
+      for (WBMethod<?> initializer : getInitializerMethods())
       {
-         for (AnnotatedParameter<?> parameter : initializer.getParameters())
+         for (WBParameter<?> parameter : initializer.getParameters())
          {
             injectionPoints.add(ParameterInjectionPoint.of(this, parameter));
          }
@@ -154,7 +154,7 @@
    protected void initInitializerMethods()
    {
       initializerMethods = new HashSet<MethodInjectionPoint<?>>();
-      for (AnnotatedMethod<?> method : annotatedItem.getAnnotatedMethods(Initializer.class))
+      for (WBMethod<?> method : annotatedItem.getAnnotatedMethods(Initializer.class))
       {
          if (method.isStatic())
          {
@@ -182,7 +182,7 @@
    @Override
    protected void initScopeType()
    {
-      for (AnnotatedClass<?> clazz = getAnnotatedItem(); clazz != null; clazz = clazz.getSuperclass())
+      for (WBClass<?> clazz = getAnnotatedItem(); clazz != null; clazz = clazz.getSuperclass())
       {
          Set<Annotation> scopeTypes = clazz.getDeclaredMetaAnnotations(ScopeType.class);
          scopeTypes = clazz.getDeclaredMetaAnnotations(ScopeType.class);
@@ -216,7 +216,7 @@
    @Override
    protected void initDeploymentType()
    {
-      for (AnnotatedClass<?> clazz = getAnnotatedItem(); clazz != null; clazz = clazz.getSuperclass())
+      for (WBClass<?> clazz = getAnnotatedItem(); clazz != null; clazz = clazz.getSuperclass())
       {
          Set<Annotation> deploymentTypes = clazz.getDeclaredMetaAnnotations(DeploymentType.class);
          if (deploymentTypes.size() == 1)
@@ -284,7 +284,7 @@
     * @return The annotated item
     */
    @Override
-   public AnnotatedClass<T> getAnnotatedItem()
+   public WBClass<T> getAnnotatedItem()
    {
       return annotatedItem;
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -43,7 +43,7 @@
 import org.jboss.webbeans.context.CreationalContextImpl;
 import org.jboss.webbeans.context.DependentContext;
 import org.jboss.webbeans.context.DependentStorageRequest;
-import org.jboss.webbeans.introspector.AnnotatedMember;
+import org.jboss.webbeans.introspector.WBMember;
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.metadata.MetaDataCache;
@@ -79,7 +79,7 @@
    }
    
    @Override
-   protected abstract AnnotatedMember<T, S> getAnnotatedItem();
+   protected abstract WBMember<T, S> getAnnotatedItem();
 
    /**
     * Gets the deployment types

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DecoratorBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -14,10 +14,10 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.injection.WBInjectionPoint;
 import org.jboss.webbeans.injection.MethodInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBAnnotated;
 
 public class DecoratorBean<T> extends SimpleBean<T> implements Decorator<T>
 {
@@ -56,17 +56,17 @@
     * @param manager the current manager
     * @return a Bean
     */
-   public static <T> DecoratorBean<T> of(AnnotatedClass<T> clazz, BeanManagerImpl manager)
+   public static <T> DecoratorBean<T> of(WBClass<T> clazz, BeanManagerImpl manager)
    {
       return new DecoratorBean<T>(clazz, manager);
    }
 
-   private AnnotatedItem<?, ?> decorates;
+   private WBAnnotated<?, ?> decorates;
    private Set<Annotation> delegateBindings;
    private Type delegateType;
    private Set<Type> decoratedTypes;
 
-   protected DecoratorBean(AnnotatedClass<T> type, BeanManagerImpl manager)
+   protected DecoratorBean(WBClass<T> type, BeanManagerImpl manager)
    {
       super(type, manager);
    }
@@ -99,7 +99,7 @@
    @Override
    protected void checkDecorates()
    {
-      for (AnnotatedInjectionPoint<?, ?> injectionPoint : getDecoratesInjectionPoint())
+      for (WBInjectionPoint<?, ?> injectionPoint : getDecoratesInjectionPoint())
       {
          if (injectionPoint instanceof MethodInjectionPoint && !injectionPoint.isAnnotationPresent(Initializer.class))
          {

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -35,11 +35,11 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.injection.WBInjectionPoint;
 import org.jboss.webbeans.injection.MethodInjectionPoint;
 import org.jboss.webbeans.injection.ParameterInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WBParameter;
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
 
@@ -50,10 +50,10 @@
    protected AbstractClassBean<?> declaringBean;
    private DisposalMethodBean<?> specializedBean;
    protected MethodInjectionPoint<T> disposalMethodInjectionPoint;
-   protected Set<AnnotatedInjectionPoint<?, ?>> disposalInjectionPoints;
+   protected Set<WBInjectionPoint<?, ?>> disposalInjectionPoints;
    private final String id;
 
-   protected DisposalMethodBean(BeanManagerImpl manager, AnnotatedMethod<T> disposalMethod, AbstractClassBean<?> declaringBean)
+   protected DisposalMethodBean(BeanManagerImpl manager, WBMethod<T> disposalMethod, AbstractClassBean<?> declaringBean)
    {
       super(manager);
       this.disposalMethodInjectionPoint = MethodInjectionPoint.of(this, disposalMethod);
@@ -73,28 +73,28 @@
    }
 
    @Override
-   public AnnotatedMethod<T> getAnnotatedItem()
+   public WBMethod<T> getAnnotatedItem()
    {
       return disposalMethodInjectionPoint;
    }
 
-   public static <T> DisposalMethodBean<T> of(BeanManagerImpl manager, AnnotatedMethod<T> disposalMethod, AbstractClassBean<?> declaringBean)
+   public static <T> DisposalMethodBean<T> of(BeanManagerImpl manager, WBMethod<T> disposalMethod, AbstractClassBean<?> declaringBean)
    {
       return new DisposalMethodBean<T>(manager, disposalMethod, declaringBean);
    }
 
    protected void initInjectionPoints()
    {
-      disposalInjectionPoints = new HashSet<AnnotatedInjectionPoint<?, ?>>();
+      disposalInjectionPoints = new HashSet<WBInjectionPoint<?, ?>>();
 
-      List<? extends AnnotatedParameter<?>> disposalMethodParameters = disposalMethodInjectionPoint.getParameters();
+      List<? extends WBParameter<?>> disposalMethodParameters = disposalMethodInjectionPoint.getParameters();
 
       // First one must be @Disposes, if more, register injectionpoints
       if (disposalMethodParameters.size() > 1)
       {
          for (int i = 1; i < disposalMethodParameters.size(); i++)
          {
-            AnnotatedParameter<?> parameter = disposalMethodParameters.get(i);
+            WBParameter<?> parameter = disposalMethodParameters.get(i);
             disposalInjectionPoints.add(ParameterInjectionPoint.of(declaringBean, parameter));
          }
       }
@@ -133,7 +133,7 @@
    }
 
    @Override
-   public Set<AnnotatedInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
+   public Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
    {
       return injectionPoints;
    }
@@ -253,7 +253,7 @@
    @Override
    protected void specialize(BeanDeployerEnvironment environment)
    {
-      AnnotatedMethod<?> superClassMethod = declaringBean.getAnnotatedItem().getSuperclass().getMethod(getAnnotatedItem().getAnnotatedMethod());
+      WBMethod<?> superClassMethod = declaringBean.getAnnotatedItem().getSuperclass().getMethod(getAnnotatedItem().getAnnotatedMethod());
       if (environment.getProducerMethod(superClassMethod) == null)
       {
          throw new IllegalStateException(toString() + " does not specialize a bean");

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -45,8 +45,8 @@
 import org.jboss.webbeans.ejb.api.SessionObjectReference;
 import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
 import org.jboss.webbeans.ejb.spi.EjbServices;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBMethod;
 import org.jboss.webbeans.log.Log;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.util.Proxies;
@@ -77,7 +77,7 @@
     * @param manager the current manager
     * @return An Enterprise Web Bean
     */
-   public static <T> EnterpriseBean<T> of(AnnotatedClass<T> clazz, BeanManagerImpl manager, BeanDeployerEnvironment environment)
+   public static <T> EnterpriseBean<T> of(WBClass<T> clazz, BeanManagerImpl manager, BeanDeployerEnvironment environment)
    {
       return new EnterpriseBean<T>(clazz, manager, environment);
    }
@@ -88,7 +88,7 @@
     * @param type The type of the bean
     * @param manager The Web Beans manager
     */
-   protected EnterpriseBean(AnnotatedClass<T> type, BeanManagerImpl manager, BeanDeployerEnvironment environment)
+   protected EnterpriseBean(WBClass<T> type, BeanManagerImpl manager, BeanDeployerEnvironment environment)
    {
       super(type, manager);
       initType();
@@ -370,7 +370,7 @@
     */
    protected void checkObserverMethods()
    {
-      for (AnnotatedMethod<?> method : this.annotatedItem.getDeclaredMethodsWithAnnotatedParameters(Observes.class))
+      for (WBMethod<?> method : this.annotatedItem.getDeclaredMethodsWithAnnotatedParameters(Observes.class))
       {
          if (!method.isStatic())
          {
@@ -383,7 +383,7 @@
    }
    
    // TODO must be a nicer way to do this!
-   public boolean isMethodExistsOnTypes(AnnotatedMethod<?> method)
+   public boolean isMethodExistsOnTypes(WBMethod<?> method)
    {
       for (Type type : getTypes())
       {

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -26,7 +26,7 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.introspector.AnnotatedClass;
+import org.jboss.webbeans.introspector.WBClass;
 import org.jboss.webbeans.literal.NewLiteral;
 
 /**
@@ -45,7 +45,7 @@
     * @param manager The Web Beans manager
     * @return a new NewEnterpriseBean instance
     */
-   public static <T> NewEnterpriseBean<T> of(AnnotatedClass<T> clazz, BeanManagerImpl manager, BeanDeployerEnvironment environment)
+   public static <T> NewEnterpriseBean<T> of(WBClass<T> clazz, BeanManagerImpl manager, BeanDeployerEnvironment environment)
    {
       return new NewEnterpriseBean<T>(clazz, manager, environment);
    }
@@ -56,7 +56,7 @@
     * @param type An annotated class
     * @param manager The Web Beans manager
     */
-   protected NewEnterpriseBean(AnnotatedClass<T> type, BeanManagerImpl manager, BeanDeployerEnvironment environment)
+   protected NewEnterpriseBean(WBClass<T> type, BeanManagerImpl manager, BeanDeployerEnvironment environment)
    {
       super(type, manager, environment);
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -25,7 +25,7 @@
 import javax.enterprise.inject.deployment.Standard;
 
 import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedClass;
+import org.jboss.webbeans.introspector.WBClass;
 import org.jboss.webbeans.literal.NewLiteral;
 
 /**
@@ -44,7 +44,7 @@
     * @param manager The Web Beans manager
     * @return a new NewSimpleBean instance
     */
-   public static <T> NewSimpleBean<T> of(AnnotatedClass<T> clazz, BeanManagerImpl manager)
+   public static <T> NewSimpleBean<T> of(WBClass<T> clazz, BeanManagerImpl manager)
    {
       return new NewSimpleBean<T>(clazz, manager);
    }
@@ -55,7 +55,7 @@
     * @param type An annotated class
     * @param manager The Web Beans manager
     */
-   protected NewSimpleBean(AnnotatedClass<T> type, BeanManagerImpl manager)
+   protected NewSimpleBean(WBClass<T> type, BeanManagerImpl manager)
    {
       super(type, manager);
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -22,7 +22,7 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.introspector.WBField;
 import org.jboss.webbeans.util.Names;
 
 /**
@@ -35,7 +35,7 @@
 public class ProducerFieldBean<T> extends AbstractProducerBean<T, Field>
 {
    // The underlying field
-   private AnnotatedField<T> field;
+   private WBField<T> field;
    private final String id;
    
    /**
@@ -46,7 +46,7 @@
     * @param manager the current manager
     * @return A producer Web Bean
     */
-   public static <T> ProducerFieldBean<T> of(AnnotatedField<T> field, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
+   public static <T> ProducerFieldBean<T> of(WBField<T> field, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
    {
       return new ProducerFieldBean<T>(field, declaringBean, manager);
    }
@@ -58,7 +58,7 @@
     * @param declaringBean The declaring bean
     * @param manager The Web Beans manager
     */
-   protected ProducerFieldBean(AnnotatedField<T> field, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
+   protected ProducerFieldBean(WBField<T> field, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
    {
       super(declaringBean, manager);
       this.field = field;
@@ -97,7 +97,7 @@
     * @return The annotated item
     */
    @Override
-   protected AnnotatedField<T> getAnnotatedItem()
+   protected WBField<T> getAnnotatedItem()
    {
       return field;
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -32,8 +32,8 @@
 import org.jboss.webbeans.context.DependentStorageRequest;
 import org.jboss.webbeans.injection.MethodInjectionPoint;
 import org.jboss.webbeans.injection.ParameterInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WBParameter;
 import org.jboss.webbeans.util.Names;
 
 /**
@@ -62,12 +62,12 @@
     * @param manager the current manager
     * @return A producer Web Bean
     */
-   public static <T> ProducerMethodBean<T> of(AnnotatedMethod<T> method, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
+   public static <T> ProducerMethodBean<T> of(WBMethod<T> method, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
    {
       return new ProducerMethodBean<T>(method, declaringBean, manager);
    }
 
-   protected ProducerMethodBean(AnnotatedMethod<T> method, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
+   protected ProducerMethodBean(WBMethod<T> method, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
    {
       super(declaringBean, manager);
       this.method = MethodInjectionPoint.of(this, method);
@@ -109,7 +109,7 @@
     */
    protected void initInjectionPoints()
    {
-      for (AnnotatedParameter<?> parameter : method.getParameters())
+      for (WBParameter<?> parameter : method.getParameters())
       {
          injectionPoints.add(ParameterInjectionPoint.of(this, parameter));
       }
@@ -205,7 +205,7 @@
     * @return The annotated item
     */
    @Override
-   public AnnotatedMethod<T> getAnnotatedItem()
+   public WBMethod<T> getAnnotatedItem()
    {
       return method;
    }
@@ -272,7 +272,7 @@
    @Override
    protected void specialize(BeanDeployerEnvironment environment)
    {
-      AnnotatedMethod<?> superClassMethod = declaringBean.getAnnotatedItem().getSuperclass().getMethod(getAnnotatedItem().getAnnotatedMethod());
+      WBMethod<?> superClassMethod = declaringBean.getAnnotatedItem().getSuperclass().getMethod(getAnnotatedItem().getAnnotatedMethod());
       if (environment.getProducerMethod(superClassMethod) == null)
       {
          throw new IllegalStateException(toString() + " does not specialize a bean");

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -27,7 +27,7 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.injection.WBInjectionPoint;
 
 /**
  * Abstract base class with functions specific to RI built-in beans
@@ -73,7 +73,7 @@
 
    public abstract boolean isPrimitive();
 
-   public abstract Set<AnnotatedInjectionPoint<?, ?>> getAnnotatedInjectionPoints();
+   public abstract Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints();
    
    public Set<InjectionPoint> getInjectionPoints()
    {

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/SimpleBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -32,16 +32,16 @@
 import org.jboss.webbeans.context.DependentStorageRequest;
 import org.jboss.webbeans.ejb.EJBApiAbstraction;
 import org.jboss.webbeans.ejb.spi.EjbServices;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.injection.WBInjectionPoint;
 import org.jboss.webbeans.injection.ConstructorInjectionPoint;
 import org.jboss.webbeans.injection.FieldInjectionPoint;
 import org.jboss.webbeans.injection.MethodInjectionPoint;
 import org.jboss.webbeans.injection.ParameterInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedConstructor;
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBConstructor;
+import org.jboss.webbeans.introspector.WBField;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WBParameter;
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.metadata.MetaDataCache;
@@ -66,13 +66,13 @@
    // The constructor
    private ConstructorInjectionPoint<T> constructor;
    // The post-construct method
-   private AnnotatedMethod<?> postConstruct;
+   private WBMethod<?> postConstruct;
    // The pre-destroy method
-   private AnnotatedMethod<?> preDestroy;
+   private WBMethod<?> preDestroy;
 
-   private Set<AnnotatedInjectionPoint<?, ?>> ejbInjectionPoints;
-   private Set<AnnotatedInjectionPoint<?, ?>> persistenceUnitInjectionPoints;
-   private Set<AnnotatedInjectionPoint<?, ?>> resourceInjectionPoints;
+   private Set<WBInjectionPoint<?, ?>> ejbInjectionPoints;
+   private Set<WBInjectionPoint<?, ?>> persistenceUnitInjectionPoints;
+   private Set<WBInjectionPoint<?, ?>> resourceInjectionPoints;
 
    private SimpleBean<?> specializedBean;
 
@@ -84,7 +84,7 @@
     * @param manager the current manager
     * @return A Web Bean
     */
-   public static <T> SimpleBean<T> of(AnnotatedClass<T> clazz, BeanManagerImpl manager)
+   public static <T> SimpleBean<T> of(WBClass<T> clazz, BeanManagerImpl manager)
    {
       return new SimpleBean<T>(clazz, manager);
    }
@@ -95,7 +95,7 @@
     * @param type The type of the bean
     * @param manager The Web Beans manager
     */
-   protected SimpleBean(AnnotatedClass<T> type, BeanManagerImpl manager)
+   protected SimpleBean(WBClass<T> type, BeanManagerImpl manager)
    {
       super(type, manager);
       initType();
@@ -168,7 +168,7 @@
     */
    protected void callPreDestroy(T instance)
    {
-      AnnotatedMethod<?> preDestroy = getPreDestroy();
+      WBMethod<?> preDestroy = getPreDestroy();
       if (preDestroy != null)
       {
          try
@@ -190,7 +190,7 @@
     */
    protected void callPostConstruct(T instance)
    {
-      AnnotatedMethod<?> postConstruct = getPostConstruct();
+      WBMethod<?> postConstruct = getPostConstruct();
       if (postConstruct != null)
       {
          try
@@ -207,13 +207,13 @@
    protected void initEjbInjectionPoints()
    {
       Class<? extends Annotation> ejbAnnotationType = manager.getServices().get(EJBApiAbstraction.class).EJB_ANNOTATION_CLASS;
-      this.ejbInjectionPoints = new HashSet<AnnotatedInjectionPoint<?, ?>>();
-      for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(ejbAnnotationType))
+      this.ejbInjectionPoints = new HashSet<WBInjectionPoint<?, ?>>();
+      for (WBField<?> field : annotatedItem.getAnnotatedFields(ejbAnnotationType))
       {
          this.ejbInjectionPoints.add(FieldInjectionPoint.of(this, field));
       }
 
-      for (AnnotatedMethod<?> method : annotatedItem.getAnnotatedMethods(ejbAnnotationType))
+      for (WBMethod<?> method : annotatedItem.getAnnotatedMethods(ejbAnnotationType))
       {
          this.ejbInjectionPoints.add(MethodInjectionPoint.of(this, method));
       }
@@ -221,11 +221,11 @@
 
    protected void initPersistenceUnitInjectionPoints()
    {
-      this.persistenceUnitInjectionPoints = new HashSet<AnnotatedInjectionPoint<?, ?>>();
+      this.persistenceUnitInjectionPoints = new HashSet<WBInjectionPoint<?, ?>>();
       Class<? extends Annotation> persistenceContextAnnotationType = manager.getServices().get(PersistenceApiAbstraction.class).PERSISTENCE_CONTEXT_ANNOTATION_CLASS;
       Object extendedPersistenceContextEnum = manager.getServices().get(PersistenceApiAbstraction.class).EXTENDED_PERSISTENCE_CONTEXT_ENUM_VALUE;
       
-      for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(persistenceContextAnnotationType))
+      for (WBField<?> field : annotatedItem.getAnnotatedFields(persistenceContextAnnotationType))
       {
          if (extendedPersistenceContextEnum.equals(Reflections.invokeAndWrap("type", field.getAnnotation(persistenceContextAnnotationType))))
          {
@@ -234,7 +234,7 @@
          this.persistenceUnitInjectionPoints.add(FieldInjectionPoint.of(this, field));
       }
 
-      for (AnnotatedMethod<?> method : annotatedItem.getAnnotatedMethods(persistenceContextAnnotationType))
+      for (WBMethod<?> method : annotatedItem.getAnnotatedMethods(persistenceContextAnnotationType))
       {
          if (extendedPersistenceContextEnum.equals(Reflections.invokeAndWrap("type", method.getAnnotation(persistenceContextAnnotationType))))
          {
@@ -247,8 +247,8 @@
    protected void initResourceInjectionPoints()
    {
       Class<? extends Annotation> resourceAnnotationType = manager.getServices().get(EJBApiAbstraction.class).RESOURCE_ANNOTATION_CLASS;
-      this.resourceInjectionPoints = new HashSet<AnnotatedInjectionPoint<?, ?>>();
-      for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(resourceAnnotationType))
+      this.resourceInjectionPoints = new HashSet<WBInjectionPoint<?, ?>>();
+      for (WBField<?> field : annotatedItem.getAnnotatedFields(resourceAnnotationType))
       {
          this.resourceInjectionPoints.add(FieldInjectionPoint.of(this, field));
       }
@@ -265,7 +265,7 @@
       
       if (ejbServices != null)
       {
-         for (AnnotatedInjectionPoint<?, ?> injectionPoint : ejbInjectionPoints)
+         for (WBInjectionPoint<?, ?> injectionPoint : ejbInjectionPoints)
          {
             Object ejbInstance = ejbServices.resolveEjb(injectionPoint);
             injectionPoint.inject(beanInstance, ejbInstance);
@@ -274,7 +274,7 @@
 
       if (jpaServices != null)
       {
-         for (AnnotatedInjectionPoint<?, ?> injectionPoint : persistenceUnitInjectionPoints)
+         for (WBInjectionPoint<?, ?> injectionPoint : persistenceUnitInjectionPoints)
          {
             Object puInstance = jpaServices.resolvePersistenceContext(injectionPoint);
             injectionPoint.inject(beanInstance, puInstance);
@@ -283,7 +283,7 @@
 
       if (resourceServices != null)
       {
-         for (AnnotatedInjectionPoint<?, ?> injectionPoint : resourceInjectionPoints)
+         for (WBInjectionPoint<?, ?> injectionPoint : resourceInjectionPoints)
          {
             Object resourceInstance = resourceServices.resolveResource(injectionPoint);
             injectionPoint.inject(beanInstance, resourceInstance);
@@ -326,7 +326,7 @@
    protected void initInjectionPoints()
    {
       super.initInjectionPoints();
-      for (AnnotatedParameter<?> parameter : constructor.getParameters())
+      for (WBParameter<?> parameter : constructor.getParameters())
       {
          injectionPoints.add(ParameterInjectionPoint.of(this, parameter));
       }
@@ -358,7 +358,7 @@
       super.checkBeanImplementation();
       if (!isDependent())
       {
-         for (AnnotatedField<?> field : getAnnotatedItem().getFields())
+         for (WBField<?> field : getAnnotatedItem().getFields())
          {
             if (field.isPublic() && !field.isStatic())
             {
@@ -402,7 +402,7 @@
     */
    protected void initConstructor()
    {
-      Set<AnnotatedConstructor<T>> initializerAnnotatedConstructors = getAnnotatedItem().getAnnotatedConstructors(Initializer.class);
+      Set<WBConstructor<T>> initializerAnnotatedConstructors = getAnnotatedItem().getAnnotatedConstructors(Initializer.class);
       log.trace("Found " + initializerAnnotatedConstructors + " constructors annotated with @Initializer for " + getType());
       if (initializerAnnotatedConstructors.size() > 1)
       {
@@ -434,7 +434,7 @@
     */
    protected void initPostConstruct()
    {
-      Set<AnnotatedMethod<?>> postConstructMethods = getAnnotatedItem().getAnnotatedMethods(PostConstruct.class);
+      Set<WBMethod<?>> postConstructMethods = getAnnotatedItem().getAnnotatedMethods(PostConstruct.class);
       log.trace("Found " + postConstructMethods + " constructors annotated with @Initializer for " + getType());
       if (postConstructMethods.size() > 1)
       {
@@ -456,7 +456,7 @@
     */
    protected void initPreDestroy()
    {
-      Set<AnnotatedMethod<?>> preDestroyMethods = getAnnotatedItem().getAnnotatedMethods(PreDestroy.class);
+      Set<WBMethod<?>> preDestroyMethods = getAnnotatedItem().getAnnotatedMethods(PreDestroy.class);
       log.trace("Found " + preDestroyMethods + " constructors annotated with @Initializer for " + getType());
       if (preDestroyMethods.size() > 1)
       {
@@ -477,7 +477,7 @@
     * 
     * @return The constructor
     */
-   public AnnotatedConstructor<T> getConstructor()
+   public WBConstructor<T> getConstructor()
    {
       return constructor;
    }
@@ -487,7 +487,7 @@
     * 
     * @return The post-construct method
     */
-   public AnnotatedMethod<?> getPostConstruct()
+   public WBMethod<?> getPostConstruct()
    {
       return postConstruct;
    }
@@ -497,7 +497,7 @@
     * 
     * @return The pre-destroy method
     */
-   public AnnotatedMethod<?> getPreDestroy()
+   public WBMethod<?> getPreDestroy()
    {
       return preDestroy;
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ee/AbstractJavaEEResourceBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ee/AbstractJavaEEResourceBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ee/AbstractJavaEEResourceBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -34,7 +34,7 @@
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bean.RIBean;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.injection.WBInjectionPoint;
 import org.jboss.webbeans.literal.CurrentLiteral;
 import org.jboss.webbeans.util.Proxies;
 
@@ -165,7 +165,7 @@
    }
    
    @Override
-   public Set<AnnotatedInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
+   public Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
    {
       return Collections.emptySet();
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -28,7 +28,7 @@
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bean.RIBean;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.injection.WBInjectionPoint;
 import org.jboss.webbeans.literal.AnyLiteral;
 import org.jboss.webbeans.literal.CurrentLiteral;
 
@@ -80,7 +80,7 @@
    }
    
    @Override
-   public Set<AnnotatedInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
+   public Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
    {
       return Collections.emptySet();
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -46,11 +46,11 @@
 import org.jboss.webbeans.ejb.EjbDescriptorCache;
 import org.jboss.webbeans.event.ObserverFactory;
 import org.jboss.webbeans.event.ObserverImpl;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.WrappedAnnotatedField;
-import org.jboss.webbeans.introspector.WrappedAnnotatedMethod;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBField;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WrappedWBField;
+import org.jboss.webbeans.introspector.WrappedWBMethod;
 import org.jboss.webbeans.jsf.JsfApiAbstraction;
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
@@ -64,7 +64,7 @@
    private static final LogProvider log = Logging.getLogProvider(BeanDeployer.class);
    
    private final BeanDeployerEnvironment environment;
-   private final Set<AnnotatedClass<?>> classes;
+   private final Set<WBClass<?>> classes;
    private final BeanManagerImpl manager;
    private final ClassTransformer classTransformer;
    
@@ -73,7 +73,7 @@
    {
       this.manager = manager;
       this.environment = new BeanDeployerEnvironment(ejbDescriptors, manager);
-      this.classes = new HashSet<AnnotatedClass<?>>();
+      this.classes = new HashSet<WBClass<?>>();
       this.classTransformer = new ClassTransformer();
    }
    
@@ -110,7 +110,7 @@
       return this;
    }
    
-   public BeanDeployer addClasses(Collection<AnnotatedClass<?>> classes)
+   public BeanDeployer addClasses(Collection<WBClass<?>> classes)
    {
       classes.addAll(classes);
       return this;
@@ -118,7 +118,7 @@
    
    public BeanDeployer createBeans()
    {
-      for (AnnotatedClass<?> clazz : classes)
+      for (WBClass<?> clazz : classes)
       {
          if (environment.getEjbDescriptors().containsKey(clazz.getRawType()))
          {
@@ -191,7 +191,7 @@
     * @param bean
     *           The bean representation
     */
-   protected <T> void createBean(AbstractClassBean<T> bean, final AnnotatedClass<T> annotatedClass)
+   protected <T> void createBean(AbstractClassBean<T> bean, final WBClass<T> annotatedClass)
    {
       
       addBean(bean);
@@ -211,95 +211,95 @@
       }
    }
    
-   private void createProducerMethods(AbstractClassBean<?> declaringBean, AnnotatedClass<?> annotatedClass)
+   private void createProducerMethods(AbstractClassBean<?> declaringBean, WBClass<?> annotatedClass)
    {
-      for (AnnotatedMethod<?> method : annotatedClass.getDeclaredAnnotatedMethods(Produces.class))
+      for (WBMethod<?> method : annotatedClass.getDeclaredAnnotatedMethods(Produces.class))
       {
          createProducerMethod(declaringBean, method);         
       }
    }
    
-   private void createDisposalMethods(AbstractClassBean<?> declaringBean, AnnotatedClass<?> annotatedClass)
+   private void createDisposalMethods(AbstractClassBean<?> declaringBean, WBClass<?> annotatedClass)
    {
-      for (AnnotatedMethod<?> method : annotatedClass.getDeclaredMethodsWithAnnotatedParameters(Disposes.class))
+      for (WBMethod<?> method : annotatedClass.getDeclaredMethodsWithAnnotatedParameters(Disposes.class))
       {
          DisposalMethodBean<?> disposalBean = DisposalMethodBean.of(manager, method, declaringBean);
          environment.addDisposalBean(disposalBean);
       }
    }
    
-   private <T> void createProducerMethod(AbstractClassBean<?> declaringBean, AnnotatedMethod<T> annotatedMethod)
+   private <T> void createProducerMethod(AbstractClassBean<?> declaringBean, WBMethod<T> annotatedMethod)
    {
       ProducerMethodBean<T> bean = ProducerMethodBean.of(annotatedMethod, declaringBean, manager);
       addBean(bean);
       manager.getResolver().addInjectionPoints(bean.getAnnotatedInjectionPoints());
    }
    
-   private void createRealizedProducerMethods(AbstractClassBean<?> declaringBean, AnnotatedClass<?> realizingClass)
+   private void createRealizedProducerMethods(AbstractClassBean<?> declaringBean, WBClass<?> realizingClass)
    {
-      AnnotatedClass<?> realizedClass = realizingClass.getSuperclass();
-      for (AnnotatedMethod<?> realizedMethod : realizedClass.getDeclaredAnnotatedMethods(Produces.class))
+      WBClass<?> realizedClass = realizingClass.getSuperclass();
+      for (WBMethod<?> realizedMethod : realizedClass.getDeclaredAnnotatedMethods(Produces.class))
       {
          createProducerMethod(declaringBean, realizeProducerMethod(realizedMethod, realizingClass));
       }
    }
    
-   private void createRealizedProducerFields(AbstractClassBean<?> declaringBean, AnnotatedClass<?> realizingClass)
+   private void createRealizedProducerFields(AbstractClassBean<?> declaringBean, WBClass<?> realizingClass)
    {
-      AnnotatedClass<?> realizedClass = realizingClass.getSuperclass();
-      for (final AnnotatedField<?> realizedField : realizedClass.getDeclaredAnnotatedFields(Produces.class))
+      WBClass<?> realizedClass = realizingClass.getSuperclass();
+      for (final WBField<?> realizedField : realizedClass.getDeclaredAnnotatedFields(Produces.class))
       {
          createProducerField(declaringBean, realizeProducerField(realizedField, realizingClass));
       }
    }
    
-   private <T> void createProducerField(AbstractClassBean<?> declaringBean, AnnotatedField<T> field)
+   private <T> void createProducerField(AbstractClassBean<?> declaringBean, WBField<T> field)
    {
       ProducerFieldBean<T> bean = ProducerFieldBean.of(field, declaringBean, manager);
       addBean(bean);
    }
    
-   private void createProducerFields(AbstractClassBean<?> declaringBean, AnnotatedClass<?> annotatedClass)
+   private void createProducerFields(AbstractClassBean<?> declaringBean, WBClass<?> annotatedClass)
    {
-      for (AnnotatedField<?> field : annotatedClass.getDeclaredAnnotatedFields(Produces.class))
+      for (WBField<?> field : annotatedClass.getDeclaredAnnotatedFields(Produces.class))
       {
          createProducerField(declaringBean, field);
       }
    }
    
-   private void createObserverMethods(AbstractClassBean<?> declaringBean, AnnotatedClass<?> annotatedClass)
+   private void createObserverMethods(AbstractClassBean<?> declaringBean, WBClass<?> annotatedClass)
    {
-      for (AnnotatedMethod<?> method : annotatedClass.getDeclaredMethodsWithAnnotatedParameters(Observes.class))
+      for (WBMethod<?> method : annotatedClass.getDeclaredMethodsWithAnnotatedParameters(Observes.class))
       {
          createObserverMethod(declaringBean, method);
       }
    }
    
-   private void createRealizedObserverMethods(AbstractClassBean<?> declaringBean, AnnotatedClass<?> realizingClass)
+   private void createRealizedObserverMethods(AbstractClassBean<?> declaringBean, WBClass<?> realizingClass)
    {
       createObserverMethods(declaringBean, realizingClass.getSuperclass());
    }
    
-   private void createObserverMethod(AbstractClassBean<?> declaringBean, AnnotatedMethod<?> method)
+   private void createObserverMethod(AbstractClassBean<?> declaringBean, WBMethod<?> method)
    {
       ObserverImpl<?> observer = ObserverFactory.create(method, declaringBean, manager);
       environment.getObservers().add(observer);
    }
    
-   private <T> void createSimpleBean(AnnotatedClass<T> annotatedClass)
+   private <T> void createSimpleBean(WBClass<T> annotatedClass)
    {
       SimpleBean<T> bean = SimpleBean.of(annotatedClass, manager);
       createBean(bean, annotatedClass);
       addBean(NewSimpleBean.of(annotatedClass, manager));
    }
    
-   private <T> void createDecorator(AnnotatedClass<T> annotatedClass)
+   private <T> void createDecorator(WBClass<T> annotatedClass)
    {
       DecoratorBean<T> bean = DecoratorBean.of(annotatedClass, manager);
       addBean(bean);
    }
    
-   private <T> void createEnterpriseBean(AnnotatedClass<T> annotatedClass)
+   private <T> void createEnterpriseBean(WBClass<T> annotatedClass)
    {
       // TODO Don't create enterprise bean if it has no local interfaces!
       EnterpriseBean<T> bean = EnterpriseBean.of(annotatedClass, manager, environment);
@@ -314,7 +314,7 @@
     *           The type to inspect
     * @return True if simple Web Bean, false otherwise
     */
-   private boolean isTypeManagedBeanOrDecorator(AnnotatedClass<?> clazz)
+   private boolean isTypeManagedBeanOrDecorator(WBClass<?> clazz)
    {
       Class<?> rawType = clazz.getRawType();
       EJBApiAbstraction ejbApiAbstraction = manager.getServices().get(EJBApiAbstraction.class);
@@ -332,14 +332,14 @@
              hasSimpleWebBeanConstructor(clazz);
    }
    
-   private static boolean hasSimpleWebBeanConstructor(AnnotatedClass<?> type)
+   private static boolean hasSimpleWebBeanConstructor(WBClass<?> type)
    {
       return type.getNoArgsConstructor() != null || type.getAnnotatedConstructors(Initializer.class).size() > 0;
    }
    
-   private static <T> AnnotatedMethod<T> realizeProducerMethod(final AnnotatedMethod<T> method, final AnnotatedClass<?> realizingClass)
+   private static <T> WBMethod<T> realizeProducerMethod(final WBMethod<T> method, final WBClass<?> realizingClass)
    {
-      return new WrappedAnnotatedMethod<T>(method, realizingClass.getMetaAnnotations(BindingType.class))
+      return new WrappedWBMethod<T>(method, realizingClass.getMetaAnnotations(BindingType.class))
       {
          
          @Override
@@ -371,9 +371,9 @@
       };
    }
    
-   private static <T> AnnotatedField<T> realizeProducerField(final AnnotatedField<T> field, final AnnotatedClass<?> realizingClass)
+   private static <T> WBField<T> realizeProducerField(final WBField<T> field, final WBClass<?> realizingClass)
    {
-      return new WrappedAnnotatedField<T>(field, realizingClass.getMetaAnnotations(BindingType.class))
+      return new WrappedWBField<T>(field, realizingClass.getMetaAnnotations(BindingType.class))
       {
          
          @Override

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -36,16 +36,16 @@
 import org.jboss.webbeans.event.ObserverImpl;
 import org.jboss.webbeans.injection.resolution.ResolvableFactory;
 import org.jboss.webbeans.injection.resolution.Resolver;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBAnnotated;
+import org.jboss.webbeans.introspector.WBMethod;
 
 public class BeanDeployerEnvironment
 {
 
-   private final Map<AnnotatedClass<?>, AbstractClassBean<?>> classBeanMap;
-   private final Map<AnnotatedMethod<?>, ProducerMethodBean<?>> producerMethodBeanMap;
-   private final Map<AnnotatedMethod<?>, DisposalMethodBean<?>> disposalMethodBeanMap;
+   private final Map<WBClass<?>, AbstractClassBean<?>> classBeanMap;
+   private final Map<WBMethod<?>, ProducerMethodBean<?>> producerMethodBeanMap;
+   private final Map<WBMethod<?>, DisposalMethodBean<?>> disposalMethodBeanMap;
    private final Set<RIBean<?>> beans;
    private final Set<ObserverImpl<?>> observers;
    private final List<DisposalMethodBean<?>> allDisposalBeans;
@@ -56,9 +56,9 @@
 
    public BeanDeployerEnvironment(EjbDescriptorCache ejbDescriptors, BeanManagerImpl manager)
    {
-      this.classBeanMap = new HashMap<AnnotatedClass<?>, AbstractClassBean<?>>();
-      this.producerMethodBeanMap = new HashMap<AnnotatedMethod<?>, ProducerMethodBean<?>>();
-      this.disposalMethodBeanMap = new HashMap<AnnotatedMethod<?>, DisposalMethodBean<?>>();
+      this.classBeanMap = new HashMap<WBClass<?>, AbstractClassBean<?>>();
+      this.producerMethodBeanMap = new HashMap<WBMethod<?>, ProducerMethodBean<?>>();
+      this.disposalMethodBeanMap = new HashMap<WBMethod<?>, DisposalMethodBean<?>>();
       this.allDisposalBeans = new ArrayList<DisposalMethodBean<?>>();
       this.resolvedDisposalBeans = new HashSet<DisposalMethodBean<?>>();
       this.beans = new HashSet<RIBean<?>>();
@@ -68,7 +68,7 @@
       this.manager = manager;
    }
 
-   public ProducerMethodBean<?> getProducerMethod(AnnotatedMethod<?> method)
+   public ProducerMethodBean<?> getProducerMethod(WBMethod<?> method)
    {
       if (!producerMethodBeanMap.containsKey(method))
       {
@@ -83,7 +83,7 @@
    }
 
    
-   public DisposalMethodBean<?> getDisposalMethod(AnnotatedMethod<?> method)
+   public DisposalMethodBean<?> getDisposalMethod(WBMethod<?> method)
    {
       if (!producerMethodBeanMap.containsKey(method))
       {
@@ -97,7 +97,7 @@
       }
    }
    
-   public AbstractClassBean<?> getClassBean(AnnotatedClass<?> clazz)
+   public AbstractClassBean<?> getClassBean(WBClass<?> clazz)
    {
       if (!classBeanMap.containsKey(clazz))
       {
@@ -175,7 +175,7 @@
     * @param bindings The binding types to match
     * @return The set of matching disposal methods
     */
-   public <T> Set<DisposalMethodBean<T>> resolveDisposalBeans(AnnotatedItem<T, ?> annotatedItem)
+   public <T> Set<DisposalMethodBean<T>> resolveDisposalBeans(WBAnnotated<T, ?> annotatedItem)
    {
       // Correct?
       Set<Bean<?>> beans = disposalMethodResolver.get(ResolvableFactory.of(annotatedItem));

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverFactory.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverFactory.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverFactory.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -18,7 +18,7 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bean.AbstractClassBean;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.WBMethod;
 import org.jboss.webbeans.transaction.spi.TransactionServices;
 
 /**
@@ -37,7 +37,7 @@
     * @param manager The Web Beans manager
     * @return An observer implementation built from the method abstraction
     */
-   public static <T> ObserverImpl<T> create(AnnotatedMethod<?> method, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
+   public static <T> ObserverImpl<T> create(WBMethod<?> method, AbstractClassBean<?> declaringBean, BeanManagerImpl manager)
    {
       ObserverImpl<T> result = null;
       if (manager.getServices().contains(TransactionServices.class) && TransactionalObserverImpl.isObserverMethodTransactional(method))

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -41,8 +41,8 @@
 import org.jboss.webbeans.context.DependentInstancesStore;
 import org.jboss.webbeans.context.DependentStorageRequest;
 import org.jboss.webbeans.injection.MethodInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WBParameter;
 import org.jboss.webbeans.util.Names;
 
 /**
@@ -74,7 +74,7 @@
     * @param observerBean The observer bean
     * @param manager The Web Beans manager
     */
-   protected ObserverImpl(final AnnotatedMethod<?> observer, final RIBean<?> observerBean, final BeanManagerImpl manager)
+   protected ObserverImpl(final WBMethod<?> observer, final RIBean<?> observerBean, final BeanManagerImpl manager)
    {
       this.manager = manager;
       this.observerBean = observerBean;
@@ -102,7 +102,7 @@
    private void checkObserverMethod()
    {
       // Make sure exactly one and only one parameter is annotated with Observes
-      List<AnnotatedParameter<?>> eventObjects = this.observerMethod.getAnnotatedParameters(Observes.class);
+      List<WBParameter<?>> eventObjects = this.observerMethod.getAnnotatedParameters(Observes.class);
       if (eventObjects.size() > 1)
       {
          throw new DefinitionException(this + " is invalid because it contains more than event parameter annotated @Observes");
@@ -111,7 +111,7 @@
       // variable or wildcard
       if (eventObjects.size() > 0)
       {
-         AnnotatedParameter<?> eventParam = eventObjects.iterator().next();
+         WBParameter<?> eventParam = eventObjects.iterator().next();
          if (eventParam.isParameterizedType())
          {
             for (Type type : eventParam.getActualTypeArguments())
@@ -128,7 +128,7 @@
          }
       }
       // Check for parameters annotated with @Disposes
-      List<AnnotatedParameter<?>> disposeParams = this.observerMethod.getAnnotatedParameters(Disposes.class);
+      List<WBParameter<?>> disposeParams = this.observerMethod.getAnnotatedParameters(Disposes.class);
       if (disposeParams.size() > 0)
       {
          throw new DefinitionException(this + " cannot have any parameters annotated with @Disposes");

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/TransactionalObserverImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/TransactionalObserverImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/TransactionalObserverImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -29,7 +29,7 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bean.RIBean;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.WBMethod;
 import org.jboss.webbeans.transaction.spi.TransactionServices;
 
 /**
@@ -55,7 +55,7 @@
     * @param observer The observer method
     * @return true if the observer method is annotated as transactional
     */
-   public static boolean isObserverMethodTransactional(AnnotatedMethod<?> observer)
+   public static boolean isObserverMethodTransactional(WBMethod<?> observer)
    {
       boolean transactional = true;
       if ((observer.getAnnotatedParameters(BeforeTransactionCompletion.class).isEmpty()) && (observer.getAnnotatedParameters(AfterTransactionCompletion.class).isEmpty()) && (observer.getAnnotatedParameters(AfterTransactionSuccess.class).isEmpty()) && (observer.getAnnotatedParameters(AfterTransactionFailure.class).isEmpty()))
@@ -72,7 +72,7 @@
     * @param observerBean The bean declaring the observer method
     * @param manager The JCDI manager in use
     */
-   protected TransactionalObserverImpl(AnnotatedMethod<?> observer, RIBean<?> observerBean, BeanManagerImpl manager)
+   protected TransactionalObserverImpl(WBMethod<?> observer, RIBean<?> observerBean, BeanManagerImpl manager)
    {
       super(observer, observerBean, manager);
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedAdaptor.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedAdaptor.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedAdaptor.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -6,14 +6,14 @@
 
 import javax.enterprise.inject.spi.Annotated;
 
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.WBAnnotated;
 
 public class AnnotatedAdaptor implements Annotated
 {
 
-   private final AnnotatedItem<?, ?> annotatedItem;
+   private final WBAnnotated<?, ?> annotatedItem;
    
-   public AnnotatedAdaptor(AnnotatedItem<?, ?> annotatedItem)
+   public AnnotatedAdaptor(WBAnnotated<?, ?> annotatedItem)
    {
       this.annotatedItem = annotatedItem;
    }

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedInjectionPoint.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedInjectionPoint.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedInjectionPoint.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,35 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.injection;
-
-import javax.enterprise.inject.spi.InjectionPoint;
-
-import org.jboss.webbeans.introspector.AnnotatedItem;
-
-public interface AnnotatedInjectionPoint<T, S> extends InjectionPoint, AnnotatedItem<T, S>
-{
-   
-   /**
-    * Injects an instance
-    * 
-    * 
-    * @param declaringInstance The instance to inject into
-    * @param value The value to inject
-    */
-   public void inject(Object declaringInstance, Object value);
-   
-}

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ConstructorInjectionPoint.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ConstructorInjectionPoint.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ConstructorInjectionPoint.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -32,17 +32,17 @@
 import javax.enterprise.inject.spi.Bean;
 
 import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedConstructor;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-import org.jboss.webbeans.introspector.ForwardingAnnotatedConstructor;
+import org.jboss.webbeans.introspector.WBConstructor;
+import org.jboss.webbeans.introspector.WBParameter;
+import org.jboss.webbeans.introspector.ForwardingWBConstructor;
 
-public class ConstructorInjectionPoint<T> extends ForwardingAnnotatedConstructor<T> implements AnnotatedInjectionPoint<T, Constructor<T>>
+public class ConstructorInjectionPoint<T> extends ForwardingWBConstructor<T> implements WBInjectionPoint<T, Constructor<T>>
 {
    
    private abstract class ForwardingParameterInjectionPointList extends AbstractList<ParameterInjectionPoint<?>>
    {
       
-      protected abstract List<? extends AnnotatedParameter<?>> delegate();
+      protected abstract List<? extends WBParameter<?>> delegate();
       
       protected abstract Bean<?> declaringBean();;
 
@@ -63,21 +63,21 @@
    private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
    
    private final Bean<?> declaringBean;
-   private final AnnotatedConstructor<T> constructor;
+   private final WBConstructor<T> constructor;
 
-   public static <T> ConstructorInjectionPoint<T> of(Bean<?> declaringBean, AnnotatedConstructor<T> constructor)
+   public static <T> ConstructorInjectionPoint<T> of(Bean<?> declaringBean, WBConstructor<T> constructor)
    {
       return new ConstructorInjectionPoint<T>(declaringBean, constructor);
    }
    
-   protected ConstructorInjectionPoint(Bean<?> declaringBean, AnnotatedConstructor<T> constructor)
+   protected ConstructorInjectionPoint(Bean<?> declaringBean, WBConstructor<T> constructor)
    {
       this.declaringBean = declaringBean;
       this.constructor = constructor;
    }
    
    @Override
-   protected AnnotatedConstructor<T> delegate()
+   protected WBConstructor<T> delegate()
    {
       return constructor;
    }
@@ -120,7 +120,7 @@
    @Override
    public List<ParameterInjectionPoint<?>> getParameters()
    {
-      final List<? extends AnnotatedParameter<?>> delegate = super.getParameters();
+      final List<? extends WBParameter<?>> delegate = super.getParameters();
       return new ForwardingParameterInjectionPointList()
       {
 
@@ -131,7 +131,7 @@
          }
 
          @Override
-         protected List<? extends AnnotatedParameter<?>> delegate()
+         protected List<? extends WBParameter<?>> delegate()
          {
             return delegate;
          }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/FieldInjectionPoint.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/FieldInjectionPoint.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/FieldInjectionPoint.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -27,30 +27,30 @@
 import javax.enterprise.inject.spi.Bean;
 
 import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.ForwardingAnnotatedField;
+import org.jboss.webbeans.introspector.WBField;
+import org.jboss.webbeans.introspector.ForwardingWBField;
 
-public class FieldInjectionPoint<T> extends ForwardingAnnotatedField<T> implements AnnotatedInjectionPoint<T, Field>
+public class FieldInjectionPoint<T> extends ForwardingWBField<T> implements WBInjectionPoint<T, Field>
 {
 
    private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
 
    private final Bean<?> declaringBean;
-   private final AnnotatedField<T> field;
+   private final WBField<T> field;
 
-   public static <T> FieldInjectionPoint<T> of(Bean<?> declaringBean, AnnotatedField<T> field)
+   public static <T> FieldInjectionPoint<T> of(Bean<?> declaringBean, WBField<T> field)
    {
       return new FieldInjectionPoint<T>(declaringBean, field);
    }
 
-   protected FieldInjectionPoint(Bean<?> declaringBean, AnnotatedField<T> field)
+   protected FieldInjectionPoint(Bean<?> declaringBean, WBField<T> field)
    {
       this.declaringBean = declaringBean;
       this.field = field;
    }
 
    @Override
-   protected AnnotatedField<T> delegate()
+   protected WBField<T> delegate()
    {
       return field;
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/MethodInjectionPoint.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/MethodInjectionPoint.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/MethodInjectionPoint.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -31,17 +31,17 @@
 import javax.enterprise.inject.spi.Bean;
 
 import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-import org.jboss.webbeans.introspector.ForwardingAnnotatedMethod;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WBParameter;
+import org.jboss.webbeans.introspector.ForwardingWBMethod;
 
-public class MethodInjectionPoint<T> extends ForwardingAnnotatedMethod<T> implements AnnotatedInjectionPoint<T, Method>
+public class MethodInjectionPoint<T> extends ForwardingWBMethod<T> implements WBInjectionPoint<T, Method>
 {
    
    private abstract class ForwardingParameterInjectionPointList extends AbstractList<ParameterInjectionPoint<?>>
    {
       
-      protected abstract List<? extends AnnotatedParameter<?>> delegate();
+      protected abstract List<? extends WBParameter<?>> delegate();
       
       protected abstract Bean<?> declaringBean();;
 
@@ -62,21 +62,21 @@
    private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
    
    private final Bean<?> declaringBean;
-   private final AnnotatedMethod<T> method;
+   private final WBMethod<T> method;
 
-   public static <T> MethodInjectionPoint<T> of(Bean<?> declaringBean, AnnotatedMethod<T> method)
+   public static <T> MethodInjectionPoint<T> of(Bean<?> declaringBean, WBMethod<T> method)
    {
       return new MethodInjectionPoint<T>(declaringBean, method);
    }
    
-   protected MethodInjectionPoint(Bean<?> declaringBean, AnnotatedMethod<T> method)
+   protected MethodInjectionPoint(Bean<?> declaringBean, WBMethod<T> method)
    {
       this.declaringBean = declaringBean;
       this.method = method;
    }
    
    @Override
-   protected AnnotatedMethod<T> delegate()
+   protected WBMethod<T> delegate()
    {
       return method;
    }
@@ -196,7 +196,7 @@
    @Override
    public List<ParameterInjectionPoint<?>> getParameters()
    {
-      final List<? extends AnnotatedParameter<?>> delegate = super.getParameters();
+      final List<? extends WBParameter<?>> delegate = super.getParameters();
       return new ForwardingParameterInjectionPointList()
       {
 
@@ -207,7 +207,7 @@
          }
 
          @Override
-         protected List<? extends AnnotatedParameter<?>> delegate()
+         protected List<? extends WBParameter<?>> delegate()
          {
             return delegate;
          }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ParameterInjectionPoint.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ParameterInjectionPoint.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/ParameterInjectionPoint.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -25,30 +25,30 @@
 import javax.enterprise.inject.spi.Bean;
 
 import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-import org.jboss.webbeans.introspector.ForwardingAnnotatedParameter;
+import org.jboss.webbeans.introspector.WBParameter;
+import org.jboss.webbeans.introspector.ForwardingWBParameter;
 
-public class ParameterInjectionPoint<T> extends ForwardingAnnotatedParameter<T> implements AnnotatedInjectionPoint<T, Object>
+public class ParameterInjectionPoint<T> extends ForwardingWBParameter<T> implements WBInjectionPoint<T, Object>
 {
    
    private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
    
-   public static <T> ParameterInjectionPoint<T> of(Bean<?> declaringBean, AnnotatedParameter<T> parameter)
+   public static <T> ParameterInjectionPoint<T> of(Bean<?> declaringBean, WBParameter<T> parameter)
    {
       return new ParameterInjectionPoint<T>(declaringBean, parameter);
    }
    
    private final Bean<?> declaringBean;
-   private final AnnotatedParameter<T> parameter;
+   private final WBParameter<T> parameter;
 
-   private ParameterInjectionPoint(Bean<?> declaringBean, AnnotatedParameter<T> parameter)
+   private ParameterInjectionPoint(Bean<?> declaringBean, WBParameter<T> parameter)
    {
       this.declaringBean = declaringBean;
       this.parameter = parameter;
    }
 
    @Override
-   protected AnnotatedParameter<T> delegate()
+   protected WBParameter<T> delegate()
    {
       return parameter;
    }

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/WBInjectionPoint.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/AnnotatedInjectionPoint.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/WBInjectionPoint.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/WBInjectionPoint.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.injection;
+
+import javax.enterprise.inject.spi.InjectionPoint;
+
+import org.jboss.webbeans.introspector.WBAnnotated;
+
+public interface WBInjectionPoint<T, S> extends InjectionPoint, WBAnnotated<T, S>
+{
+   
+   /**
+    * Injects an instance
+    * 
+    * 
+    * @param declaringInstance The instance to inject into
+    * @param value The value to inject
+    */
+   public void inject(Object declaringInstance, Object value);
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/WBInjectionPoint.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,211 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.injection.resolution;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Member;
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.enterprise.inject.TypeLiteral;
-import javax.enterprise.inject.spi.InjectionPoint;
-
-import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedItem;
-import org.jboss.webbeans.util.Names;
-import org.jboss.webbeans.util.Reflections;
-
-public class ResolvableAnnotatedClass<T> extends AbstractAnnotatedItem<T, Class<T>> implements Resolvable
-{
-   
-   private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
-   private static final Set<Annotation> EMPTY_ANNOTATION_SET = Collections.emptySet();
-   
-   private final Class<T> rawType;
-   private final Set<Type> types;
-   private final Type[] actualTypeArguments;
-   
-   private final String _string;
-   
-   private final BeanManagerImpl manager;
-   
-   public static <T> AnnotatedItem<T, Class<T>> of(TypeLiteral<T> typeLiteral, Annotation[] annotations, BeanManagerImpl manager)
-   {
-      return new ResolvableAnnotatedClass<T>(typeLiteral.getType(), annotations, manager);
-   }
-   
-   public static <T> AnnotatedItem<T, Class<T>> of(Type type, Annotation[] annotations, BeanManagerImpl manager)
-   {
-      return new ResolvableAnnotatedClass<T>(type, annotations, manager);
-   }
-
-   public static <T> AnnotatedItem<T, Class<T>> of(InjectionPoint injectionPoint, BeanManagerImpl manager)
-   {
-      if (injectionPoint instanceof AnnotatedInjectionPoint)
-      {
-         @SuppressWarnings("unchecked")
-         AnnotatedItem<T, Class<T>> ip = (AnnotatedItem<T, Class<T>>) injectionPoint;
-         return ip;
-      }
-      else
-      {
-         return new ResolvableAnnotatedClass<T>(injectionPoint.getType(), injectionPoint.getAnnotated().getAnnotations(), manager);
-      }
-   }
-   
-   public static <T> AnnotatedItem<T, Class<T>> of(Member member, Annotation[] annotations, BeanManagerImpl manager)
-   {
-      if (member instanceof Field)
-      {
-         return new ResolvableAnnotatedClass<T>(((Field) member).getGenericType(), annotations, manager);
-      }
-      else if (member instanceof Method)
-      {
-         return new ResolvableAnnotatedClass<T>(((Method) member).getGenericReturnType(), annotations, manager);
-      }
-      else
-      {
-         throw new IllegalStateException();
-      }
-   }
-   
-   private ResolvableAnnotatedClass(Type type, AnnotationStore annotationStore, BeanManagerImpl manager)
-   {
-      super(annotationStore);
-      
-      this.manager = manager;
-      
-      if (type instanceof ParameterizedType)
-      {
-         ParameterizedType parameterizedType = (ParameterizedType) type;
-         if (parameterizedType.getRawType() instanceof Class)
-         {
-            this.rawType = (Class<T>) parameterizedType.getRawType();
-         }
-         else
-         {
-            throw new IllegalArgumentException("Cannot extract rawType from " + type);
-         }
-         this.actualTypeArguments = ((ParameterizedType) type).getActualTypeArguments();
-         this._string = rawType.toString() + "<" + Arrays.asList(actualTypeArguments).toString() + ">; binding types = " + Names.annotationsToString(annotationStore.getBindings());
-      }
-      else if (type instanceof Class)
-      {
-         this.rawType = (Class<T>) type;
-         this.actualTypeArguments = new Type[0];
-         this._string = rawType.toString() +"; binding types = " + Names.annotationsToString(annotationStore.getBindings());
-      }
-      else
-      {
-         throw new IllegalArgumentException("Unable to extract type information from " + type);
-      }
-      this.types = new HashSet<Type>();
-      types.add(type);
-   }
-   
-   private ResolvableAnnotatedClass(Type type, Annotation[] annotations, BeanManagerImpl manager)
-   {
-      this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_ARRAY), manager);
-   }
-   
-   private ResolvableAnnotatedClass(Type type, Set<Annotation>annotations, BeanManagerImpl manager)
-   {
-      this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_SET), manager);
-   }
-
-   @Override
-   public String toString()
-   {
-      return _string;
-   }
-
-   @Override
-   public Class<T> getDelegate()
-   {
-      return rawType;
-   }
-
-   @Override
-   public Type[] getActualTypeArguments()
-   {
-      return actualTypeArguments;
-   }
-
-   public String getName()
-   {
-      throw new UnsupportedOperationException();
-   }
-
-   @Override
-   public Class<T> getRawType()
-   {
-      return rawType;
-   }
-   
-   @Override
-   public Type getType()
-   {
-      return getRawType();
-   }
-
-   public boolean isFinal()
-   {
-      throw new UnsupportedOperationException();
-   }
-
-   public boolean isPublic()
-   {
-      throw new UnsupportedOperationException();
-   }
-
-   public boolean isStatic()
-   {
-      throw new UnsupportedOperationException();
-   }
-   
-   @Override
-   public Set<Type> getFlattenedTypeHierarchy()
-   {
-      throw new UnsupportedOperationException();
-   }
-   
-   @Override
-   public boolean isProxyable()
-   {
-      throw new UnsupportedOperationException();
-   }
-
-   public Set<Type> getTypes()
-   {
-      return types;
-   }
-
-   public boolean isAssignableTo(Class<?> clazz)
-   {
-      return Reflections.isAssignableFrom(clazz, getType());
-   }
-
-}
\ No newline at end of file

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableFactory.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -5,13 +5,13 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.WBAnnotated;
 import org.jboss.webbeans.util.Reflections;
 
 public class ResolvableFactory
 {
    
-   public static Resolvable of(AnnotatedItem<?, ?> element)
+   public static Resolvable of(WBAnnotated<?, ?> element)
    {
       if (element instanceof Resolvable)
       {

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,211 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.injection.resolution;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.enterprise.inject.TypeLiteral;
+import javax.enterprise.inject.spi.InjectionPoint;
+
+import org.jboss.webbeans.BeanManagerImpl;
+import org.jboss.webbeans.injection.WBInjectionPoint;
+import org.jboss.webbeans.introspector.WBAnnotated;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.introspector.jlr.AbstractWBAnnotated;
+import org.jboss.webbeans.util.Names;
+import org.jboss.webbeans.util.Reflections;
+
+public class ResolvableWBClass<T> extends AbstractWBAnnotated<T, Class<T>> implements Resolvable
+{
+   
+   private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
+   private static final Set<Annotation> EMPTY_ANNOTATION_SET = Collections.emptySet();
+   
+   private final Class<T> rawType;
+   private final Set<Type> types;
+   private final Type[] actualTypeArguments;
+   
+   private final String _string;
+   
+   private final BeanManagerImpl manager;
+   
+   public static <T> WBAnnotated<T, Class<T>> of(TypeLiteral<T> typeLiteral, Annotation[] annotations, BeanManagerImpl manager)
+   {
+      return new ResolvableWBClass<T>(typeLiteral.getType(), annotations, manager);
+   }
+   
+   public static <T> WBAnnotated<T, Class<T>> of(Type type, Annotation[] annotations, BeanManagerImpl manager)
+   {
+      return new ResolvableWBClass<T>(type, annotations, manager);
+   }
+
+   public static <T> WBAnnotated<T, Class<T>> of(InjectionPoint injectionPoint, BeanManagerImpl manager)
+   {
+      if (injectionPoint instanceof WBInjectionPoint)
+      {
+         @SuppressWarnings("unchecked")
+         WBAnnotated<T, Class<T>> ip = (WBAnnotated<T, Class<T>>) injectionPoint;
+         return ip;
+      }
+      else
+      {
+         return new ResolvableWBClass<T>(injectionPoint.getType(), injectionPoint.getAnnotated().getAnnotations(), manager);
+      }
+   }
+   
+   public static <T> WBAnnotated<T, Class<T>> of(Member member, Annotation[] annotations, BeanManagerImpl manager)
+   {
+      if (member instanceof Field)
+      {
+         return new ResolvableWBClass<T>(((Field) member).getGenericType(), annotations, manager);
+      }
+      else if (member instanceof Method)
+      {
+         return new ResolvableWBClass<T>(((Method) member).getGenericReturnType(), annotations, manager);
+      }
+      else
+      {
+         throw new IllegalStateException();
+      }
+   }
+   
+   private ResolvableWBClass(Type type, AnnotationStore annotationStore, BeanManagerImpl manager)
+   {
+      super(annotationStore);
+      
+      this.manager = manager;
+      
+      if (type instanceof ParameterizedType)
+      {
+         ParameterizedType parameterizedType = (ParameterizedType) type;
+         if (parameterizedType.getRawType() instanceof Class)
+         {
+            this.rawType = (Class<T>) parameterizedType.getRawType();
+         }
+         else
+         {
+            throw new IllegalArgumentException("Cannot extract rawType from " + type);
+         }
+         this.actualTypeArguments = ((ParameterizedType) type).getActualTypeArguments();
+         this._string = rawType.toString() + "<" + Arrays.asList(actualTypeArguments).toString() + ">; binding types = " + Names.annotationsToString(annotationStore.getBindings());
+      }
+      else if (type instanceof Class)
+      {
+         this.rawType = (Class<T>) type;
+         this.actualTypeArguments = new Type[0];
+         this._string = rawType.toString() +"; binding types = " + Names.annotationsToString(annotationStore.getBindings());
+      }
+      else
+      {
+         throw new IllegalArgumentException("Unable to extract type information from " + type);
+      }
+      this.types = new HashSet<Type>();
+      types.add(type);
+   }
+   
+   private ResolvableWBClass(Type type, Annotation[] annotations, BeanManagerImpl manager)
+   {
+      this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_ARRAY), manager);
+   }
+   
+   private ResolvableWBClass(Type type, Set<Annotation>annotations, BeanManagerImpl manager)
+   {
+      this(type, AnnotationStore.of(annotations, EMPTY_ANNOTATION_SET), manager);
+   }
+
+   @Override
+   public String toString()
+   {
+      return _string;
+   }
+
+   @Override
+   public Class<T> getDelegate()
+   {
+      return rawType;
+   }
+
+   @Override
+   public Type[] getActualTypeArguments()
+   {
+      return actualTypeArguments;
+   }
+
+   public String getName()
+   {
+      throw new UnsupportedOperationException();
+   }
+
+   @Override
+   public Class<T> getRawType()
+   {
+      return rawType;
+   }
+   
+   @Override
+   public Type getType()
+   {
+      return getRawType();
+   }
+
+   public boolean isFinal()
+   {
+      throw new UnsupportedOperationException();
+   }
+
+   public boolean isPublic()
+   {
+      throw new UnsupportedOperationException();
+   }
+
+   public boolean isStatic()
+   {
+      throw new UnsupportedOperationException();
+   }
+   
+   @Override
+   public Set<Type> getFlattenedTypeHierarchy()
+   {
+      throw new UnsupportedOperationException();
+   }
+   
+   @Override
+   public boolean isProxyable()
+   {
+      throw new UnsupportedOperationException();
+   }
+
+   public Set<Type> getTypes()
+   {
+      return types;
+   }
+
+   public boolean isAssignableTo(Class<?> clazz)
+   {
+      return Reflections.isAssignableFrom(clazz, getType());
+   }
+
+}
\ No newline at end of file


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableWBClass.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/Resolver.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -32,7 +32,7 @@
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.bean.standard.EventBean;
 import org.jboss.webbeans.bean.standard.InstanceBean;
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.WBAnnotated;
 import org.jboss.webbeans.util.Beans;
 import org.jboss.webbeans.util.ListComparator;
 import org.jboss.webbeans.util.Reflections;
@@ -81,7 +81,7 @@
    // The resolved injection points
    private ConcurrentCache<Resolvable, Set<Bean<?>>> resolvedInjectionPoints;
    // The registerd injection points
-   private Set<AnnotatedItem<?, ?>> injectionPoints;
+   private Set<WBAnnotated<?, ?>> injectionPoints;
    // The resolved names
    private ConcurrentCache<String, Set<Bean<?>>> resolvedNames;
    
@@ -102,7 +102,7 @@
    {
       this.manager = manager;
       this.beans = beans;
-      this.injectionPoints = new HashSet<AnnotatedItem<?, ?>>();
+      this.injectionPoints = new HashSet<WBAnnotated<?, ?>>();
       this.resolvedInjectionPoints = new ConcurrentCache<Resolvable, Set<Bean<?>>>();
       this.resolvedNames = new ConcurrentCache<String, Set<Bean<?>>>();
       this.transformers = new HashSet<ResolovableTransformer>();
@@ -111,11 +111,11 @@
    }
    /**
     * Add multiple injection points for later resolving using
-    * {@link #registerInjectionPoint(AnnotatedItem)}. Useful during bootstrap.
+    * {@link #registerInjectionPoint(WBAnnotated)}. Useful during bootstrap.
     * 
     * @param elements The injection points to add
     */
-   public void addInjectionPoints(Collection<? extends AnnotatedItem<?, ?>> elements)
+   public void addInjectionPoints(Collection<? extends WBAnnotated<?, ?>> elements)
    {
       injectionPoints.addAll(elements);
    }
@@ -167,7 +167,7 @@
     */
    public void resolveInjectionPoints()
    {
-      for (final AnnotatedItem<? extends Object, ? extends Object> injectable : injectionPoints)
+      for (final WBAnnotated<? extends Object, ? extends Object> injectable : injectionPoints)
       {
          registerInjectionPoint(ResolvableFactory.of(injectable));
       }

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedAnnotation.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedAnnotation.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedAnnotation.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-/**
- * Represents a meta annotation
- * 
- * @author Pete Muir
- *
- */
-public interface AnnotatedAnnotation<T extends Annotation> extends AnnotatedType<T>
-{ 
-   /**
-    * Gets all members
-    * 
-    * @return A set of abstracted members
-    */
-   public Set<AnnotatedMethod<?>> getMembers();
-   
-   /**
-    * Gets all the members annotated with annotationType
-    * 
-    * @param annotationType The annotation type to match
-    * @return A set of abstracted members with the annotation type
-    */
-   public Set<AnnotatedMethod<?>> getAnnotatedMembers(Class<? extends Annotation> annotationType);
-   
-   /**
-    * Get an annotation member by name
-    * 
-    * @param memberName
-    * @return
-    */
-   public <A> AnnotatedMethod<A> getMember(String memberName, AnnotatedClass<A> expectedType);
-   
-   public Class<T> getRawType();
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,203 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.Set;
-
-/**
- * Represents a Class
- * 
- * @author Pete Muir
- * 
- */
-public interface AnnotatedClass<T> extends AnnotatedType<T>
-{
-
-   /**
-    * Gets all fields on the type
-    * 
-    * @return A set of abstracted fields
-    */
-   public Set<AnnotatedField<?>> getFields();
-   
-   /**
-    * Get a field by name
-    * 
-    * @param <F> the expected type of the field
-    * @param fieldName the field name
-    * @param expectedType the expected type of the field
-    * @return the field
-    */
-   public <F> AnnotatedField<F> getDeclaredField(String fieldName, AnnotatedClass<F> expectedType);
-
-   /**
-    * Gets all fields which are annotated with the given annotation type on this
-    * class and all super classes
-    * 
-    * @param annotationType The annotation to match
-    * @return A set of abstracted fields with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedField<?>> getAnnotatedFields(Class<? extends Annotation> annotationType);
-   
-   /**
-    * Gets all fields which are annotated with the given annotation type on this
-    * class only.
-    * 
-    * @param annotationType The annotation to match
-    * @return A set of abstracted fields with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedField<?>> getDeclaredAnnotatedFields(Class<? extends Annotation> annotationType);
-
-   /**
-    * Gets all fields which are meta-annotated with metaAnnotationType
-    * 
-    * @param metaAnnotationType The meta annotation to match
-    * @return A set of abstracted fields with the given meta-annotation. Returns
-    *         an empty set if there are no matches
-    */
-   public Set<AnnotatedField<?>> getMetaAnnotatedFields(Class<? extends Annotation> metaAnnotationType);
-
-   /**
-    * Gets all constructors which are annotated with annotationType
-    * 
-    * @param annotationType The annotation type to match
-    * @return A set of abstracted fields with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedConstructor<T>> getAnnotatedConstructors(Class<? extends Annotation> annotationType);
-
-   /**
-    * Gets all constructors
-    * 
-    * @return A set of abstracted constructors
-    */
-   public Set<AnnotatedConstructor<T>> getConstructors();
-
-   /**
-    * Gets the no-args constructor
-    * 
-    * @return The no-args constructor, or null if not defined
-    */
-   public AnnotatedConstructor<T> getNoArgsConstructor();
-   
-   /**
-    * Get the constructor which matches the argument list provided
-    * 
-    * @param parameterTypes the parameters of the constructor
-    * @return the matching constructor, or null if not defined
-    */
-   public AnnotatedConstructor<T> getDeclaredConstructor(ConstructorSignature signature);
-
-   /**
-    * Gets all methods annotated with annotationType
-    * 
-    * @param annotationType The annotation to match
-    * @return A set of abstracted methods with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedMethod<?>> getAnnotatedMethods(Class<? extends Annotation> annotationType);
-   
-   /**
-    * Gets all methods annotated with annotationType
-    * 
-    * @param annotationType The annotation to match
-    * @return A set of abstracted methods with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedMethod<?>> getDeclaredAnnotatedMethods(Class<? extends Annotation> annotationType);
-   
-   /**
-    * Find the annotated method for a given methodDescriptor
-    * 
-    * @param methodDescriptor
-    * @return
-    * 
-    * TODO Replace with AnnotatedMethod variant
-    */
-   @Deprecated
-   public AnnotatedMethod<?> getMethod(Method method);
-   
-   /**
-    * Get a method by name
-    * 
-    * @param <M> the expected return type
-    * @param signature the name of the method
-    * @param expectedReturnType the expected return type
-    * @return the method, or null if it doesn't exist
-    */
-   public <M> AnnotatedMethod<M> getDeclaredMethod(MethodSignature signature, AnnotatedClass<M> expectedReturnType);
-   
-   // TODO Replace with AnnotatedMethod variant
-   @Deprecated
-   public AnnotatedMethod<?> getDeclaredMethod(Method method);
-   
-   /**
-    * Gets all with parameters annotated with annotationType
-    * 
-    * @param annotationType The annotation to match
-    * @return A set of abstracted methods with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType);
-   
-   /**
-    * Gets all with constructors annotated with annotationType
-    * 
-    * @param annotationType The annotation to match
-    * @return A set of abstracted constructors with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedConstructor<?>> getConstructorsWithAnnotatedParameters(Class<? extends Annotation> annotationType);
-   
-   /**
-    * Gets all with parameters annotated with annotationType
-    * 
-    * @param annotationType The annotation to match
-    * @return A set of abstracted methods with the given annotation. Returns an
-    *         empty set if there are no matches
-    */
-   public Set<AnnotatedMethod<?>> getDeclaredMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType);
-
-   /**
-    * Gets the superclass.
-    * 
-    * @return The abstracted superclass, null if there is no superclass
-    */
-   public AnnotatedClass<?> getSuperclass();
-   
-   /**
-    * Determine if this is a non-static member class
-    *
-    * @return true if this is a non-static member  
-    */
-   public boolean isNonStaticMemberClass();
-   
-   public boolean isParameterizedType();
-   
-   public boolean isAbstract();
-   
-   public boolean isEnum();
-   
-   public <S> S cast(Object object);
-   
-   public <U> AnnotatedClass<? extends U> asSubclass(AnnotatedClass<U> clazz);
-
-}
\ No newline at end of file

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,75 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.decorator.Decorates;
-
-/**
- * Represents a Class Constructor
- * 
- * @author Pete Muir
- * 
- */
-public interface AnnotatedConstructor<T> extends AnnotatedMember<T, Constructor<T>>
-{
-   
-   @SuppressWarnings("unchecked")
-   public static final Set<Class<? extends Annotation>> MAPPED_PARAMETER_ANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(Decorates.class));
-
-   /**
-    * Gets all parameters to the constructor
-    * 
-    * @return A set of abstracted parameters. Returns an empty set if there are
-    *         no parameters
-    */
-   public List<? extends AnnotatedParameter<?>> getParameters();
-
-   /**
-    * Gets all parameters to the constructor which are annotated with
-    * annotationType
-    * 
-    * @param annotationType A annotation to match
-    * @return A list of abstracted parameters with the given annotation type.
-    *         Returns an empty set if there are no matches.
-    */
-   public List<AnnotatedParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType);
-
-   /**
-    * Creates a new instance of the class, using this constructor
-    * 
-    * @return The created instance
-    */
-   public T newInstance(Object... parameters) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException;
-
-   /**
-    * Gets the declaring class of the annotation
-    * 
-    * @return An abstraction of the declaring class
-    */
-   public AnnotatedType<T> getDeclaringClass();
-   
-   public ConstructorSignature getSignature();
-
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,65 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.reflect.Field;
-
-/**
- * AnnotatedField provides a uniform access to the annotations on an annotated
- * field 
- * 
- * @author Pete Muir
- *
- */
-public interface AnnotatedField<T> extends AnnotatedMember<T, Field>
-{
-   
-   /**
-    * Gets the annotated field
-    * 
-    * @return The annotated field
-    */
-   public Field getAnnotatedField();
-   
-   /**
-    * Injects an instance
-    * 
-    * 
-    * @param declaringInstance The instance to inject into
-    * @param value The value to inject
-    */
-   public void set(Object declaringInstance, Object value) throws IllegalArgumentException, IllegalAccessException;
-   
-   public T get(Object instance);
-   
-   /**
-    * Gets an abstraction of the declaring class
-    * 
-    * @return The declaring class
-    */
-   public AnnotatedType<?> getDeclaringClass();
-   
-   /**
-    * Gets the property name of the field
-    * 
-    * @return The name
-    */
-   public String getPropertyName();
-
-   public boolean isTransient();
-
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,225 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.enterprise.context.ScopeType;
-import javax.enterprise.inject.BindingType;
-import javax.enterprise.inject.Stereotype;
-import javax.enterprise.inject.deployment.DeploymentType;
-
-/**
- * AnnotatedItem provides a uniform access to the annotations on an annotated
- * item defined either in Java or XML
- * 
- * @author Pete Muir
- * 
- */
-public interface AnnotatedItem<T, S>
-{
-   
-// The set of meta-annotations to map
-   @SuppressWarnings("unchecked")
-   public static final Set<Class<? extends Annotation>> MAPPED_METAANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(BindingType.class, DeploymentType.class, Stereotype.class, ScopeType.class));
-   
-   /**
-    * Gets all annotations on the item
-    * 
-    * @return A set of annotations. Returns an empty set if there are no
-    *         matches.
-    */
-   public <A extends Annotation> Set<A> getAnnotations();
-
-   /**
-    * Gets all annotations which are annotated with the given meta annotation
-    * type
-    * 
-    * @param The meta annotation to match
-    * @return A set of matching meta-annotations. Returns an empty set if there
-    *         are no matches.
-    */
-   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType);
-   
-   /**
-    * Gets all annotations which are declared on this annotated item 
-    * with the given meta annotation type
-    * 
-    * @param The meta annotation to match
-    * @return A set of matching meta-annotations. Returns an empty set if there
-    *         are no matches.
-    */
-   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType);
-
-   /**
-    * Gets all annotations which are annotated with the given meta annotation
-    * type
-    * 
-    * @param The meta annotation to match
-    * @return An array of matching meta-annotations. Returns an empty array if
-    *         there are no matches.
-    */
-   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType);
-
-   /**
-    * Gets the binding types for this element
-    * 
-    * @returns A set of binding types present on the type. Returns an empty set
-    *          if there are no matches.
-    * @deprecated This reflection type should not know about JSR-299 binding types
-    */
-   @Deprecated
-   public Set<Annotation> getBindings();
-
-   /**
-    * Gets the binding types for this element
-    * 
-    * @returns An array of binding types present on the type. Returns an empty
-    *          array if there are no matches.
-    * @deprecated This reflection type should not know about JSR-299 binding types
-    */
-   @Deprecated
-   public Annotation[] getBindingsAsArray();
-
-   /**
-    * Gets an annotation for the annotation type specified.
-    * 
-    * @param annotationType The annotation to match
-    * @return An annotation if found, null if the annotation wasn't present.
-    */
-   public <A extends Annotation> A getAnnotation(Class<A> annotationType);
-   
-   /**
-    * Get the whole type hierarchy as a set of flattened types.
-    * 
-    * The returned types should have any type parameters resolved to their
-    * actual types.
-    * 
-    * @return the type hierarchy
-    */
-   public Set<Type> getFlattenedTypeHierarchy();
-   
-   /**
-    * Get the type hierarchy of any interfaces implemented by this class.
-    * 
-    * Interface hierarchies from super classes are not included.
-    * 
-    * The returned types should have any type parameters resolved to their
-    * actual types.
-    * 
-    * @return the type hierarchy
-    */
-   public Set<Type> getInterfaceOnlyFlattenedTypeHierarchy();
-
-   /**
-    * Indicates if an annotation type specified is present
-    * 
-    * @param annotationType The annotation to match
-    * @return True if present, false if not
-    */
-   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType);
-   
-   /**
-    * Indicates if an annotation type specified is present
-    * 
-    * @param annotationType The annotation to match
-    * @return True if present, false if not
-    */
-   public boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationType);
-
-   /**
-    * Gets the type of the element
-    * 
-    * @return The type of the element
-    */
-   public Class<T> getRawType();
-   
-   public Type getType();
-
-   /**
-    * Extends Java Class assignability such that actual type parameters are also
-    * considered
-    * 
-    * @param that The other item to check assignability against
-    * @return True if assignable, false otherwise.
-    */
-   public boolean isAssignableFrom(AnnotatedItem<?, ?> that);
-   
-   /**
-    * Extends Java Class assignability such that actual type parameters are also
-    * considered
-    * 
-    * @param type The type to compare against
-    * @param actualTypeArguments The type arguments
-    * @return True is assignable, false otherwise
-    */
-   public boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments);
-
-   /**
-    * Gets the actual type arguments for any parameterized types that this
-    * AnnotatedItem represents.
-    * 
-    * @return An array of type arguments
-    */
-   public Type[] getActualTypeArguments();
-
-   /**
-    * Indicates if this AnnotatedItem represents a static element
-    * 
-    * @return True if static, false otherwise
-    */
-   public boolean isStatic();
-
-   /**
-    * Indicates if this AnnotatedItem represents a final element    
-    * @return True if final, false otherwise
-    */
-   public boolean isFinal();
-
-   /**
-    * Indicates if this AnnotatedItem can be proxyed
-    * 
-    * @return True if proxyable, false otherwise
-    */
-   public boolean isProxyable();
-   
-   /**
-    * Indicates if this annotated item is public
-    * 
-    * @return if public, returns true
-    */
-   public boolean isPublic();
-
-   /**
-    * Gets the name of this AnnotatedItem
-    * 
-    * If it is not possible to determine the name of the underling element, a
-    * IllegalArgumentException is thrown
-    * 
-    * @return The name
-    */
-   public String getName();
-   
-   public AnnotationStore getAnnotationStore();
-   
-   public boolean isParameterizedType();
-
-}
\ No newline at end of file

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.reflect.Member;
-/**
- * AnnotedMember provides enhanced access to an annotated member 
- * 
- * @author Pete Muir
- *
- */
-public interface AnnotatedMember<T, S extends Member> extends AnnotatedItem<T, S>
-{
-   
-   public S getMember();
-   
-   /**
-    * Gets an abstraction of the declaring class
-    * 
-    * @return The declaring class
-    */
-   public AnnotatedType<?> getDeclaringClass();
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,115 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.enterprise.inject.Disposes;
-import javax.event.AfterTransactionCompletion;
-import javax.event.AfterTransactionFailure;
-import javax.event.AfterTransactionSuccess;
-import javax.event.Asynchronously;
-import javax.event.BeforeTransactionCompletion;
-import javax.event.IfExists;
-import javax.event.Observes;
-
-/**
- * AnnotatedType provides a uniform access to the annotations on an annotated
- * class defined either in Java or XML
- * 
- * @author Pete Muir
- * 
- */
-public interface AnnotatedMethod<T> extends AnnotatedMember<T, Method>
-{
-   @SuppressWarnings("unchecked")
-   public static final Set<Class<? extends Annotation>> MAPPED_PARAMETER_ANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(Disposes.class, Observes.class, IfExists.class, BeforeTransactionCompletion.class, AfterTransactionCompletion.class, AfterTransactionFailure.class, AfterTransactionSuccess.class, Asynchronously.class, Disposes.class));
-
-   /**
-    * Gets the abstracted parameters of the method
-    * 
-    * @return A list of parameters. Returns an empty list if no parameters are
-    *         present.
-    */
-   public List<? extends AnnotatedParameter<?>> getParameters();
-
-   /**
-    * Gets the list of annotated parameters for a given annotation
-    * 
-    * @param metaAnnotationType The annotation to match
-    * @return A set of matching parameter abstractions. Returns an empty list if
-    *         there are no matches.
-    */
-   public List<AnnotatedParameter<?>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
-   
-   /**
-    * Get the parameter types as an array
-    */
-   public Class<?>[] getParameterTypesAsArray();
-
-   /**
-    * Invokes the method
-    * 
-    * @param instance The instance to invoke
-    * @param parameters The method parameters
-    * @return A reference to the instance
-    */
-   public T invoke(Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException;
-   
-   /**
-    * Invokes the method on the class of the passed instance, not the declaring 
-    * class. Useful with proxies
-    * 
-    * @param instance The instance to invoke
-    * @param manager The Web Beans manager
-    * @return A reference to the instance
-    */
-   public T invokeOnInstance(Object instance, Object... parameters) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException;
-
-   /**
-    * Gets the declaring class
-    * 
-    * @return An abstraction of the declaring class
-    */
-   public AnnotatedType<?> getDeclaringClass();
-
-   /**
-    * Gets the property name
-    * 
-    * @return The name
-    */
-   public String getPropertyName();
-   
-   /**
-    * Checks if a this is equivalent to a JLR method
-    * 
-    * @param method The JLR method
-    * @return true if equivalent
-    */
-   public boolean isEquivalent(Method method);
-
-   public Method getAnnotatedMethod();
-   
-   public MethodSignature getSignature();
-
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,33 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-
-
-/**
- * AnnotatedParameter provides a uniform access to a method parameter defined
- * either in Java or XML
- * 
- * @author Pete Muir
- * @param <T>
- */
-public interface AnnotatedParameter<T> extends AnnotatedItem<T, Object>
-{
-   
-   public AnnotatedMember<?, ?> getDeclaringMember();
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-
-/**
- * AnnotatedType provides a uniform access to a type defined either in Java or
- * XML
- * 
- * @author Pete Muir
- * @param <T>
- */
-public interface AnnotatedType<T> extends AnnotatedItem<T, Class<T>>
-{
-
-   /**
-    * Gets the superclass of the type
-    * 
-    * @return The abstracted superclass
-    */
-   public AnnotatedType<?> getSuperclass();
-   
-   /**
-    * Check if this is equivalent to a java class
-    * @param clazz The Java class
-    * @return true if equivalent
-    */
-   public boolean isEquivalent(Class<?> clazz);
-   
-   public String getSimpleName();
-
-}

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotationStore.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -16,7 +16,7 @@
  */
 package org.jboss.webbeans.introspector;
 
-import static org.jboss.webbeans.introspector.AnnotatedItem.MAPPED_METAANNOTATIONS;
+import static org.jboss.webbeans.introspector.WBAnnotated.MAPPED_METAANNOTATIONS;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public abstract class ForwardingAnnotatedAnnotation<T extends Annotation> extends ForwardingAnnotatedType<T> implements AnnotatedAnnotation<T>
-{
-   
-   @Override
-   protected abstract AnnotatedAnnotation<T> delegate();
-   
-   public Set<AnnotatedMethod<?>> getAnnotatedMembers(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getAnnotatedMembers(annotationType);
-   }
-   
-   public Set<AnnotatedMethod<?>> getMembers()
-   {
-      return delegate().getMembers();
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,152 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.Set;
-
-public abstract class ForwardingAnnotatedClass<T> extends ForwardingAnnotatedType<T> implements AnnotatedClass<T>
-{
-
-   protected abstract AnnotatedClass<T> delegate();
-
-   public Set<AnnotatedConstructor<T>> getAnnotatedConstructors(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getAnnotatedConstructors(annotationType);
-   }
-
-   public Set<AnnotatedField<?>> getAnnotatedFields(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getAnnotatedFields(annotationType);
-   }
-
-   public Set<AnnotatedMethod<?>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getAnnotatedMethods(annotationType);
-   }
-
-   public AnnotatedConstructor<T> getNoArgsConstructor()
-   {
-      return delegate().getNoArgsConstructor();
-   }
-
-   public Set<AnnotatedConstructor<T>> getConstructors()
-   {
-      return delegate().getConstructors();
-   }
-
-   public Set<AnnotatedField<?>> getDeclaredAnnotatedFields(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getDeclaredAnnotatedFields(annotationType);
-   }
-
-   public Set<AnnotatedMethod<?>> getDeclaredAnnotatedMethods(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getDeclaredAnnotatedMethods(annotationType);
-   }
-
-   public Set<AnnotatedMethod<?>> getDeclaredMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getDeclaredMethodsWithAnnotatedParameters(annotationType);
-   }
-
-   public Set<AnnotatedField<?>> getFields()
-   {
-      return delegate().getFields();
-   }
-
-   public Set<AnnotatedField<?>> getMetaAnnotatedFields(Class<? extends Annotation> metaAnnotationType)
-   {
-      return delegate().getMetaAnnotatedFields(metaAnnotationType);
-   }
-
-   @Deprecated
-   public AnnotatedMethod<?> getMethod(Method method)
-   {
-      return delegate().getMethod(method);
-   }
-
-   public Set<AnnotatedMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getMethodsWithAnnotatedParameters(annotationType);
-   }
-   
-   public Set<AnnotatedConstructor<?>> getConstructorsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getConstructorsWithAnnotatedParameters(annotationType);
-   }
-
-   public AnnotatedClass<?> getSuperclass()
-   {
-      return delegate().getSuperclass();
-   }
-
-   public boolean isNonStaticMemberClass()
-   {
-      return delegate().isNonStaticMemberClass();
-   }
-
-   public boolean isParameterizedType()
-   {
-      return delegate().isParameterizedType();
-   }
-   
-   public boolean isAbstract()
-   {
-      return delegate().isAbstract();
-   }
-   
-   public boolean isEnum()
-   {
-      return delegate().isEnum();
-   }
-   
-   @Deprecated
-   public AnnotatedMethod<?> getDeclaredMethod(Method method)
-   {
-      return delegate().getDeclaredMethod(method);
-   }
-   
-   public <F> AnnotatedField<F> getDeclaredField(String fieldName, AnnotatedClass<F> expectedType)
-   {
-      return delegate().getDeclaredField(fieldName, expectedType);
-   }
-   
-   public <M> AnnotatedMethod<M> getDeclaredMethod(MethodSignature signature, AnnotatedClass<M> expectedReturnType) 
-   {
-      return delegate().getDeclaredMethod(signature, expectedReturnType);
-   }
-   
-   public AnnotatedConstructor<T> getDeclaredConstructor(ConstructorSignature signature)
-   {
-      return delegate().getDeclaredConstructor(signature);
-   }
-   
-   public <U> AnnotatedClass<? extends U> asSubclass(AnnotatedClass<U> clazz)
-   {
-      return delegate().asSubclass(clazz);
-   }
-   
-   public <S> S cast(Object object)
-   {
-      return delegate().<S>cast(object);
-   }
-   
-   
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,56 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-
-public abstract class ForwardingAnnotatedConstructor<T> extends ForwardingAnnotatedMember<T, Constructor<T>> implements AnnotatedConstructor<T>
-{
-
-   @Override
-   protected abstract AnnotatedConstructor<T> delegate();
-
-   public List<AnnotatedParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return delegate().getAnnotatedParameters(annotationType);
-   }
-
-   public AnnotatedType<T> getDeclaringClass()
-   {
-      return delegate().getDeclaringClass();
-   }
-
-   public List<? extends AnnotatedParameter<?>> getParameters()
-   {
-      return delegate().getParameters();
-   }
-
-   public T newInstance(Object... parameters) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
-   {
-      return delegate().newInstance(parameters);
-   }
-   
-   public ConstructorSignature getSignature()
-   {
-      return delegate().getSignature();
-   }
-   
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,57 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.reflect.Field;
-
-public abstract class ForwardingAnnotatedField<T> extends ForwardingAnnotatedMember<T, Field> implements AnnotatedField<T>
-{
-
-   @Override
-   protected abstract AnnotatedField<T> delegate();
-
-   public T get(Object instance)
-   {
-      return delegate().get(instance);
-   }
-
-   public Field getAnnotatedField()
-   {
-      return delegate().getAnnotatedField();
-   }
-
-   public AnnotatedType<?> getDeclaringClass()
-   {
-      return delegate().getDeclaringClass();
-   }
-
-   public String getPropertyName()
-   {
-      return delegate().getPropertyName();
-   }
-
-   public void set(Object declaringInstance, Object value) throws IllegalArgumentException, IllegalAccessException
-   {
-      delegate().set(declaringInstance, value);
-   }
-
-   public boolean isTransient()
-   {
-      return delegate().isTransient();
-   }  
-      
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,233 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Set;
-
-/**
- * Provides an abstraction for delegating access to an annotated item
- * 
- * @author Pete Muir
- * 
- * @param <T>
- * @param <S>
- */
-public abstract class ForwardingAnnotatedItem<T, S> implements AnnotatedItem<T, S>
-{
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Type[] getActualTypeArguments()
-   {
-      return delegate().getActualTypeArguments();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
-   {
-      return delegate().getAnnotation(annotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getAnnotations()
-   {
-      return delegate().getAnnotations();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return delegate().getMetaAnnotations(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
-   {
-      return delegate().getMetaAnnotationsAsArray(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Set<Annotation> getBindings()
-   {
-      return delegate().getBindings();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Annotation[] getBindingsAsArray()
-   {
-      return delegate().getBindingsAsArray();
-   }
-   
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
-   {
-      return delegate().isAnnotationPresent(annotationType);
-   }
-   
-   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return delegate().getDeclaredMetaAnnotations(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public String getName()
-   {
-      return delegate().getName();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Class<T> getRawType()
-   {
-      return delegate().getRawType();
-   }
-   
-   public Type getType()
-   {
-      return delegate().getType();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isAssignableFrom(AnnotatedItem<?, ?> that)
-   {
-      return delegate().isAssignableFrom(that);
-   }
-
-   public boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments)
-   {
-      return delegate().isAssignableFrom(type, actualTypeArguments);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isFinal()
-   {
-      return delegate().isFinal();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isStatic()
-   {
-      return delegate().isStatic();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isProxyable()
-   {
-      return delegate().isProxyable();
-   }
-   
-   public boolean isPublic()
-   {
-      return delegate().isPublic();
-   }
-
-   /**
-    * Overridden method into delegate
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Override
-   public boolean equals(Object obj)
-   {
-      return delegate().equals(obj);
-   }
-
-   /**
-    * Overridden method into delegate
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Override
-   public int hashCode()
-   {
-      return delegate().hashCode();
-   }
-
-   /**
-    * Overridden method into delegate
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Override
-   public String toString()
-   {
-      return delegate().toString();
-   }
-
-   /**
-    * Gets the annotated item
-    * 
-    * @return The annotated item
-    */
-   protected abstract AnnotatedItem<T, S> delegate();
-   
-   public AnnotationStore getAnnotationStore()
-   {
-      return delegate().getAnnotationStore();
-   }
-   
-   public boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationType)
-   {
-      return delegate().isDeclaredAnnotationPresent(annotationType);
-   }
-   
-   public Set<Type> getFlattenedTypeHierarchy()
-   {
-      return delegate().getFlattenedTypeHierarchy();
-   }
-   
-   public Set<Type> getInterfaceOnlyFlattenedTypeHierarchy()
-   {
-      return delegate().getInterfaceOnlyFlattenedTypeHierarchy();
-   }
-   
-   public boolean isParameterizedType()
-   {
-      return delegate().isParameterizedType();
-   }
-
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,32 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.reflect.Member;
-
-public abstract class ForwardingAnnotatedMember<T, S extends Member> extends ForwardingAnnotatedItem<T, S> implements AnnotatedMember<T, S>
-{
-   
-   @Override
-   protected abstract AnnotatedMember<T, S> delegate();
-   
-   public S getMember()
-   {
-      return delegate().getMember();
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,80 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.List;
-
-public abstract class ForwardingAnnotatedMethod<T> extends ForwardingAnnotatedMember<T, Method> implements AnnotatedMethod<T>
-{
-   
-   @Override
-   protected abstract AnnotatedMethod<T> delegate();
-   
-   public Method getAnnotatedMethod()
-   {
-      return delegate().getAnnotatedMethod();
-   }
-   
-   public List<AnnotatedParameter<?>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType)
-   {
-      return delegate().getAnnotatedParameters(metaAnnotationType);
-   }
-
-   public AnnotatedType<?> getDeclaringClass()
-   {
-      return delegate().getDeclaringClass();
-   }
-
-   public Class<?>[] getParameterTypesAsArray()
-   {
-      return delegate().getParameterTypesAsArray();
-   }
-
-   public List<? extends AnnotatedParameter<?>> getParameters()
-   {
-      return delegate().getParameters();
-   }
-
-   public String getPropertyName()
-   {
-      return delegate().getPropertyName();
-   }
-
-   public T invoke(Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
-   {
-      return delegate().invoke(instance, parameters);
-   }
-
-   public T invokeOnInstance(Object instance, Object... parameters) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
-   {
-      return delegate().invokeOnInstance(instance, parameters);
-   }
-
-   public boolean isEquivalent(Method method)
-   {
-      return delegate().isEquivalent(method);
-   }
-   
-   public MethodSignature getSignature()
-   {
-      return delegate().getSignature();
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,32 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-
-public abstract class ForwardingAnnotatedParameter<T> extends ForwardingAnnotatedItem<T, Object> implements AnnotatedParameter<T>
-{
-
-   @Override
-   protected abstract AnnotatedParameter<T> delegate();
-
-   public AnnotatedMember<?, ?> getDeclaringMember()
-   {
-      return delegate().getDeclaringMember();
-   }
-
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,40 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-public abstract class ForwardingAnnotatedType<T> extends ForwardingAnnotatedItem<T, Class<T>> implements AnnotatedType<T>
-{
-
-   @Override
-   protected abstract AnnotatedType<T> delegate();
-
-   public AnnotatedType<?> getSuperclass()
-   {
-      return delegate().getSuperclass();
-   }
-
-   public boolean isEquivalent(Class<?> clazz)
-   {
-      return delegate().isEquivalent(clazz);
-   }
-   
-   public String getSimpleName()
-   {
-      return delegate().getSimpleName();
-   }
-   
-}

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotated.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotated.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotated.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,233 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Set;
+
+/**
+ * Provides an abstraction for delegating access to an annotated item
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ * @param <S>
+ */
+public abstract class ForwardingWBAnnotated<T, S> implements WBAnnotated<T, S>
+{
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Type[] getActualTypeArguments()
+   {
+      return delegate().getActualTypeArguments();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+   {
+      return delegate().getAnnotation(annotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getAnnotations()
+   {
+      return delegate().getAnnotations();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return delegate().getMetaAnnotations(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
+   {
+      return delegate().getMetaAnnotationsAsArray(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Set<Annotation> getBindings()
+   {
+      return delegate().getBindings();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Annotation[] getBindingsAsArray()
+   {
+      return delegate().getBindingsAsArray();
+   }
+   
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      return delegate().isAnnotationPresent(annotationType);
+   }
+   
+   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return delegate().getDeclaredMetaAnnotations(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public String getName()
+   {
+      return delegate().getName();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Class<T> getRawType()
+   {
+      return delegate().getRawType();
+   }
+   
+   public Type getType()
+   {
+      return delegate().getType();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isAssignableFrom(WBAnnotated<?, ?> that)
+   {
+      return delegate().isAssignableFrom(that);
+   }
+
+   public boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments)
+   {
+      return delegate().isAssignableFrom(type, actualTypeArguments);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isFinal()
+   {
+      return delegate().isFinal();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isStatic()
+   {
+      return delegate().isStatic();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isProxyable()
+   {
+      return delegate().isProxyable();
+   }
+   
+   public boolean isPublic()
+   {
+      return delegate().isPublic();
+   }
+
+   /**
+    * Overridden method into delegate
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Override
+   public boolean equals(Object obj)
+   {
+      return delegate().equals(obj);
+   }
+
+   /**
+    * Overridden method into delegate
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Override
+   public int hashCode()
+   {
+      return delegate().hashCode();
+   }
+
+   /**
+    * Overridden method into delegate
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Override
+   public String toString()
+   {
+      return delegate().toString();
+   }
+
+   /**
+    * Gets the annotated item
+    * 
+    * @return The annotated item
+    */
+   protected abstract WBAnnotated<T, S> delegate();
+   
+   public AnnotationStore getAnnotationStore()
+   {
+      return delegate().getAnnotationStore();
+   }
+   
+   public boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      return delegate().isDeclaredAnnotationPresent(annotationType);
+   }
+   
+   public Set<Type> getFlattenedTypeHierarchy()
+   {
+      return delegate().getFlattenedTypeHierarchy();
+   }
+   
+   public Set<Type> getInterfaceOnlyFlattenedTypeHierarchy()
+   {
+      return delegate().getInterfaceOnlyFlattenedTypeHierarchy();
+   }
+   
+   public boolean isParameterizedType()
+   {
+      return delegate().isParameterizedType();
+   }
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotated.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotation.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotation.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotation.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+public abstract class ForwardingWBAnnotation<T extends Annotation> extends ForwardingWBType<T> implements WBAnnotation<T>
+{
+   
+   @Override
+   protected abstract WBAnnotation<T> delegate();
+   
+   public Set<WBMethod<?>> getAnnotatedMembers(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getAnnotatedMembers(annotationType);
+   }
+   
+   public Set<WBMethod<?>> getMembers()
+   {
+      return delegate().getMembers();
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBAnnotation.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBClass.java (from rev 2823, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBClass.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,152 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.Set;
+
+public abstract class ForwardingWBClass<T> extends ForwardingWBType<T> implements WBClass<T>
+{
+
+   protected abstract WBClass<T> delegate();
+
+   public Set<WBConstructor<T>> getAnnotatedConstructors(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getAnnotatedConstructors(annotationType);
+   }
+
+   public Set<WBField<?>> getAnnotatedFields(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getAnnotatedFields(annotationType);
+   }
+
+   public Set<WBMethod<?>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getAnnotatedMethods(annotationType);
+   }
+
+   public WBConstructor<T> getNoArgsConstructor()
+   {
+      return delegate().getNoArgsConstructor();
+   }
+
+   public Set<WBConstructor<T>> getConstructors()
+   {
+      return delegate().getConstructors();
+   }
+
+   public Set<WBField<?>> getDeclaredAnnotatedFields(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getDeclaredAnnotatedFields(annotationType);
+   }
+
+   public Set<WBMethod<?>> getDeclaredAnnotatedMethods(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getDeclaredAnnotatedMethods(annotationType);
+   }
+
+   public Set<WBMethod<?>> getDeclaredMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getDeclaredMethodsWithAnnotatedParameters(annotationType);
+   }
+
+   public Set<WBField<?>> getFields()
+   {
+      return delegate().getFields();
+   }
+
+   public Set<WBField<?>> getMetaAnnotatedFields(Class<? extends Annotation> metaAnnotationType)
+   {
+      return delegate().getMetaAnnotatedFields(metaAnnotationType);
+   }
+
+   @Deprecated
+   public WBMethod<?> getMethod(Method method)
+   {
+      return delegate().getMethod(method);
+   }
+
+   public Set<WBMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getMethodsWithAnnotatedParameters(annotationType);
+   }
+   
+   public Set<WBConstructor<?>> getConstructorsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getConstructorsWithAnnotatedParameters(annotationType);
+   }
+
+   public WBClass<?> getSuperclass()
+   {
+      return delegate().getSuperclass();
+   }
+
+   public boolean isNonStaticMemberClass()
+   {
+      return delegate().isNonStaticMemberClass();
+   }
+
+   public boolean isParameterizedType()
+   {
+      return delegate().isParameterizedType();
+   }
+   
+   public boolean isAbstract()
+   {
+      return delegate().isAbstract();
+   }
+   
+   public boolean isEnum()
+   {
+      return delegate().isEnum();
+   }
+   
+   @Deprecated
+   public WBMethod<?> getDeclaredMethod(Method method)
+   {
+      return delegate().getDeclaredMethod(method);
+   }
+   
+   public <F> WBField<F> getDeclaredField(String fieldName, WBClass<F> expectedType)
+   {
+      return delegate().getDeclaredField(fieldName, expectedType);
+   }
+   
+   public <M> WBMethod<M> getDeclaredMethod(MethodSignature signature, WBClass<M> expectedReturnType) 
+   {
+      return delegate().getDeclaredMethod(signature, expectedReturnType);
+   }
+   
+   public WBConstructor<T> getDeclaredConstructor(ConstructorSignature signature)
+   {
+      return delegate().getDeclaredConstructor(signature);
+   }
+   
+   public <U> WBClass<? extends U> asSubclass(WBClass<U> clazz)
+   {
+      return delegate().asSubclass(clazz);
+   }
+   
+   public <S> S cast(Object object)
+   {
+      return delegate().<S>cast(object);
+   }
+   
+   
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBClass.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBConstructor.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBConstructor.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBConstructor.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+
+public abstract class ForwardingWBConstructor<T> extends ForwardingWBMember<T, Constructor<T>> implements WBConstructor<T>
+{
+
+   @Override
+   protected abstract WBConstructor<T> delegate();
+
+   public List<WBParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return delegate().getAnnotatedParameters(annotationType);
+   }
+
+   public WBType<T> getDeclaringClass()
+   {
+      return delegate().getDeclaringClass();
+   }
+
+   public List<? extends WBParameter<?>> getParameters()
+   {
+      return delegate().getParameters();
+   }
+
+   public T newInstance(Object... parameters) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
+   {
+      return delegate().newInstance(parameters);
+   }
+   
+   public ConstructorSignature getSignature()
+   {
+      return delegate().getSignature();
+   }
+   
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBConstructor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBField.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBField.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBField.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.reflect.Field;
+
+public abstract class ForwardingWBField<T> extends ForwardingWBMember<T, Field> implements WBField<T>
+{
+
+   @Override
+   protected abstract WBField<T> delegate();
+
+   public T get(Object instance)
+   {
+      return delegate().get(instance);
+   }
+
+   public Field getAnnotatedField()
+   {
+      return delegate().getAnnotatedField();
+   }
+
+   public WBType<?> getDeclaringClass()
+   {
+      return delegate().getDeclaringClass();
+   }
+
+   public String getPropertyName()
+   {
+      return delegate().getPropertyName();
+   }
+
+   public void set(Object declaringInstance, Object value) throws IllegalArgumentException, IllegalAccessException
+   {
+      delegate().set(declaringInstance, value);
+   }
+
+   public boolean isTransient()
+   {
+      return delegate().isTransient();
+   }  
+      
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBField.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMember.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMember.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMember.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.reflect.Member;
+
+public abstract class ForwardingWBMember<T, S extends Member> extends ForwardingWBAnnotated<T, S> implements WBMember<T, S>
+{
+   
+   @Override
+   protected abstract WBMember<T, S> delegate();
+   
+   public S getMember()
+   {
+      return delegate().getMember();
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMember.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMethod.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMethod.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMethod.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+
+public abstract class ForwardingWBMethod<T> extends ForwardingWBMember<T, Method> implements WBMethod<T>
+{
+   
+   @Override
+   protected abstract WBMethod<T> delegate();
+   
+   public Method getAnnotatedMethod()
+   {
+      return delegate().getAnnotatedMethod();
+   }
+   
+   public List<WBParameter<?>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType)
+   {
+      return delegate().getAnnotatedParameters(metaAnnotationType);
+   }
+
+   public WBType<?> getDeclaringClass()
+   {
+      return delegate().getDeclaringClass();
+   }
+
+   public Class<?>[] getParameterTypesAsArray()
+   {
+      return delegate().getParameterTypesAsArray();
+   }
+
+   public List<? extends WBParameter<?>> getParameters()
+   {
+      return delegate().getParameters();
+   }
+
+   public String getPropertyName()
+   {
+      return delegate().getPropertyName();
+   }
+
+   public T invoke(Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
+   {
+      return delegate().invoke(instance, parameters);
+   }
+
+   public T invokeOnInstance(Object instance, Object... parameters) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
+   {
+      return delegate().invokeOnInstance(instance, parameters);
+   }
+
+   public boolean isEquivalent(Method method)
+   {
+      return delegate().isEquivalent(method);
+   }
+   
+   public MethodSignature getSignature()
+   {
+      return delegate().getSignature();
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBMethod.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBParameter.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBParameter.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBParameter.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+
+public abstract class ForwardingWBParameter<T> extends ForwardingWBAnnotated<T, Object> implements WBParameter<T>
+{
+
+   @Override
+   protected abstract WBParameter<T> delegate();
+
+   public WBMember<?, ?> getDeclaringMember()
+   {
+      return delegate().getDeclaringMember();
+   }
+
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBParameter.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBType.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBType.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBType.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+public abstract class ForwardingWBType<T> extends ForwardingWBAnnotated<T, Class<T>> implements WBType<T>
+{
+
+   @Override
+   protected abstract WBType<T> delegate();
+
+   public WBType<?> getSuperclass()
+   {
+      return delegate().getSuperclass();
+   }
+
+   public boolean isEquivalent(Class<?> clazz)
+   {
+      return delegate().isEquivalent(clazz);
+   }
+   
+   public String getSimpleName()
+   {
+      return delegate().getSimpleName();
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/ForwardingWBType.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotated.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotated.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotated.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,225 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.enterprise.context.ScopeType;
+import javax.enterprise.inject.BindingType;
+import javax.enterprise.inject.Stereotype;
+import javax.enterprise.inject.deployment.DeploymentType;
+
+/**
+ * AnnotatedItem provides a uniform access to the annotations on an annotated
+ * item defined either in Java or XML
+ * 
+ * @author Pete Muir
+ * 
+ */
+public interface WBAnnotated<T, S>
+{
+   
+// The set of meta-annotations to map
+   @SuppressWarnings("unchecked")
+   public static final Set<Class<? extends Annotation>> MAPPED_METAANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(BindingType.class, DeploymentType.class, Stereotype.class, ScopeType.class));
+   
+   /**
+    * Gets all annotations on the item
+    * 
+    * @return A set of annotations. Returns an empty set if there are no
+    *         matches.
+    */
+   public <A extends Annotation> Set<A> getAnnotations();
+
+   /**
+    * Gets all annotations which are annotated with the given meta annotation
+    * type
+    * 
+    * @param The meta annotation to match
+    * @return A set of matching meta-annotations. Returns an empty set if there
+    *         are no matches.
+    */
+   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType);
+   
+   /**
+    * Gets all annotations which are declared on this annotated item 
+    * with the given meta annotation type
+    * 
+    * @param The meta annotation to match
+    * @return A set of matching meta-annotations. Returns an empty set if there
+    *         are no matches.
+    */
+   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType);
+
+   /**
+    * Gets all annotations which are annotated with the given meta annotation
+    * type
+    * 
+    * @param The meta annotation to match
+    * @return An array of matching meta-annotations. Returns an empty array if
+    *         there are no matches.
+    */
+   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType);
+
+   /**
+    * Gets the binding types for this element
+    * 
+    * @returns A set of binding types present on the type. Returns an empty set
+    *          if there are no matches.
+    * @deprecated This reflection type should not know about JSR-299 binding types
+    */
+   @Deprecated
+   public Set<Annotation> getBindings();
+
+   /**
+    * Gets the binding types for this element
+    * 
+    * @returns An array of binding types present on the type. Returns an empty
+    *          array if there are no matches.
+    * @deprecated This reflection type should not know about JSR-299 binding types
+    */
+   @Deprecated
+   public Annotation[] getBindingsAsArray();
+
+   /**
+    * Gets an annotation for the annotation type specified.
+    * 
+    * @param annotationType The annotation to match
+    * @return An annotation if found, null if the annotation wasn't present.
+    */
+   public <A extends Annotation> A getAnnotation(Class<A> annotationType);
+   
+   /**
+    * Get the whole type hierarchy as a set of flattened types.
+    * 
+    * The returned types should have any type parameters resolved to their
+    * actual types.
+    * 
+    * @return the type hierarchy
+    */
+   public Set<Type> getFlattenedTypeHierarchy();
+   
+   /**
+    * Get the type hierarchy of any interfaces implemented by this class.
+    * 
+    * Interface hierarchies from super classes are not included.
+    * 
+    * The returned types should have any type parameters resolved to their
+    * actual types.
+    * 
+    * @return the type hierarchy
+    */
+   public Set<Type> getInterfaceOnlyFlattenedTypeHierarchy();
+
+   /**
+    * Indicates if an annotation type specified is present
+    * 
+    * @param annotationType The annotation to match
+    * @return True if present, false if not
+    */
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType);
+   
+   /**
+    * Indicates if an annotation type specified is present
+    * 
+    * @param annotationType The annotation to match
+    * @return True if present, false if not
+    */
+   public boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationType);
+
+   /**
+    * Gets the type of the element
+    * 
+    * @return The type of the element
+    */
+   public Class<T> getRawType();
+   
+   public Type getType();
+
+   /**
+    * Extends Java Class assignability such that actual type parameters are also
+    * considered
+    * 
+    * @param that The other item to check assignability against
+    * @return True if assignable, false otherwise.
+    */
+   public boolean isAssignableFrom(WBAnnotated<?, ?> that);
+   
+   /**
+    * Extends Java Class assignability such that actual type parameters are also
+    * considered
+    * 
+    * @param type The type to compare against
+    * @param actualTypeArguments The type arguments
+    * @return True is assignable, false otherwise
+    */
+   public boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments);
+
+   /**
+    * Gets the actual type arguments for any parameterized types that this
+    * AnnotatedItem represents.
+    * 
+    * @return An array of type arguments
+    */
+   public Type[] getActualTypeArguments();
+
+   /**
+    * Indicates if this AnnotatedItem represents a static element
+    * 
+    * @return True if static, false otherwise
+    */
+   public boolean isStatic();
+
+   /**
+    * Indicates if this AnnotatedItem represents a final element    
+    * @return True if final, false otherwise
+    */
+   public boolean isFinal();
+
+   /**
+    * Indicates if this AnnotatedItem can be proxyed
+    * 
+    * @return True if proxyable, false otherwise
+    */
+   public boolean isProxyable();
+   
+   /**
+    * Indicates if this annotated item is public
+    * 
+    * @return if public, returns true
+    */
+   public boolean isPublic();
+
+   /**
+    * Gets the name of this AnnotatedItem
+    * 
+    * If it is not possible to determine the name of the underling element, a
+    * IllegalArgumentException is thrown
+    * 
+    * @return The name
+    */
+   public String getName();
+   
+   public AnnotationStore getAnnotationStore();
+   
+   public boolean isParameterizedType();
+
+}
\ No newline at end of file

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotation.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedAnnotation.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotation.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotation.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+/**
+ * Represents a meta annotation
+ * 
+ * @author Pete Muir
+ *
+ */
+public interface WBAnnotation<T extends Annotation> extends WBType<T>
+{ 
+   /**
+    * Gets all members
+    * 
+    * @return A set of abstracted members
+    */
+   public Set<WBMethod<?>> getMembers();
+   
+   /**
+    * Gets all the members annotated with annotationType
+    * 
+    * @param annotationType The annotation type to match
+    * @return A set of abstracted members with the annotation type
+    */
+   public Set<WBMethod<?>> getAnnotatedMembers(Class<? extends Annotation> annotationType);
+   
+   /**
+    * Get an annotation member by name
+    * 
+    * @param memberName
+    * @return
+    */
+   public <A> WBMethod<A> getMember(String memberName, WBClass<A> expectedType);
+   
+   public Class<T> getRawType();
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBAnnotation.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBClass.java (from rev 2823, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBClass.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,203 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.Set;
+
+/**
+ * Represents a Class
+ * 
+ * @author Pete Muir
+ * 
+ */
+public interface WBClass<T> extends WBType<T>
+{
+
+   /**
+    * Gets all fields on the type
+    * 
+    * @return A set of abstracted fields
+    */
+   public Set<WBField<?>> getFields();
+   
+   /**
+    * Get a field by name
+    * 
+    * @param <F> the expected type of the field
+    * @param fieldName the field name
+    * @param expectedType the expected type of the field
+    * @return the field
+    */
+   public <F> WBField<F> getDeclaredField(String fieldName, WBClass<F> expectedType);
+
+   /**
+    * Gets all fields which are annotated with the given annotation type on this
+    * class and all super classes
+    * 
+    * @param annotationType The annotation to match
+    * @return A set of abstracted fields with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBField<?>> getAnnotatedFields(Class<? extends Annotation> annotationType);
+   
+   /**
+    * Gets all fields which are annotated with the given annotation type on this
+    * class only.
+    * 
+    * @param annotationType The annotation to match
+    * @return A set of abstracted fields with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBField<?>> getDeclaredAnnotatedFields(Class<? extends Annotation> annotationType);
+
+   /**
+    * Gets all fields which are meta-annotated with metaAnnotationType
+    * 
+    * @param metaAnnotationType The meta annotation to match
+    * @return A set of abstracted fields with the given meta-annotation. Returns
+    *         an empty set if there are no matches
+    */
+   public Set<WBField<?>> getMetaAnnotatedFields(Class<? extends Annotation> metaAnnotationType);
+
+   /**
+    * Gets all constructors which are annotated with annotationType
+    * 
+    * @param annotationType The annotation type to match
+    * @return A set of abstracted fields with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBConstructor<T>> getAnnotatedConstructors(Class<? extends Annotation> annotationType);
+
+   /**
+    * Gets all constructors
+    * 
+    * @return A set of abstracted constructors
+    */
+   public Set<WBConstructor<T>> getConstructors();
+
+   /**
+    * Gets the no-args constructor
+    * 
+    * @return The no-args constructor, or null if not defined
+    */
+   public WBConstructor<T> getNoArgsConstructor();
+   
+   /**
+    * Get the constructor which matches the argument list provided
+    * 
+    * @param parameterTypes the parameters of the constructor
+    * @return the matching constructor, or null if not defined
+    */
+   public WBConstructor<T> getDeclaredConstructor(ConstructorSignature signature);
+
+   /**
+    * Gets all methods annotated with annotationType
+    * 
+    * @param annotationType The annotation to match
+    * @return A set of abstracted methods with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBMethod<?>> getAnnotatedMethods(Class<? extends Annotation> annotationType);
+   
+   /**
+    * Gets all methods annotated with annotationType
+    * 
+    * @param annotationType The annotation to match
+    * @return A set of abstracted methods with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBMethod<?>> getDeclaredAnnotatedMethods(Class<? extends Annotation> annotationType);
+   
+   /**
+    * Find the annotated method for a given methodDescriptor
+    * 
+    * @param methodDescriptor
+    * @return
+    * 
+    * TODO Replace with AnnotatedMethod variant
+    */
+   @Deprecated
+   public WBMethod<?> getMethod(Method method);
+   
+   /**
+    * Get a method by name
+    * 
+    * @param <M> the expected return type
+    * @param signature the name of the method
+    * @param expectedReturnType the expected return type
+    * @return the method, or null if it doesn't exist
+    */
+   public <M> WBMethod<M> getDeclaredMethod(MethodSignature signature, WBClass<M> expectedReturnType);
+   
+   // TODO Replace with AnnotatedMethod variant
+   @Deprecated
+   public WBMethod<?> getDeclaredMethod(Method method);
+   
+   /**
+    * Gets all with parameters annotated with annotationType
+    * 
+    * @param annotationType The annotation to match
+    * @return A set of abstracted methods with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType);
+   
+   /**
+    * Gets all with constructors annotated with annotationType
+    * 
+    * @param annotationType The annotation to match
+    * @return A set of abstracted constructors with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBConstructor<?>> getConstructorsWithAnnotatedParameters(Class<? extends Annotation> annotationType);
+   
+   /**
+    * Gets all with parameters annotated with annotationType
+    * 
+    * @param annotationType The annotation to match
+    * @return A set of abstracted methods with the given annotation. Returns an
+    *         empty set if there are no matches
+    */
+   public Set<WBMethod<?>> getDeclaredMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType);
+
+   /**
+    * Gets the superclass.
+    * 
+    * @return The abstracted superclass, null if there is no superclass
+    */
+   public WBClass<?> getSuperclass();
+   
+   /**
+    * Determine if this is a non-static member class
+    *
+    * @return true if this is a non-static member  
+    */
+   public boolean isNonStaticMemberClass();
+   
+   public boolean isParameterizedType();
+   
+   public boolean isAbstract();
+   
+   public boolean isEnum();
+   
+   public <S> S cast(Object object);
+   
+   public <U> WBClass<? extends U> asSubclass(WBClass<U> clazz);
+
+}
\ No newline at end of file


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBClass.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBConstructor.java (from rev 2823, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBConstructor.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBConstructor.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.decorator.Decorates;
+
+/**
+ * Represents a Class Constructor
+ * 
+ * @author Pete Muir
+ * 
+ */
+public interface WBConstructor<T> extends WBMember<T, Constructor<T>>
+{
+   
+   @SuppressWarnings("unchecked")
+   public static final Set<Class<? extends Annotation>> MAPPED_PARAMETER_ANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(Decorates.class));
+
+   /**
+    * Gets all parameters to the constructor
+    * 
+    * @return A set of abstracted parameters. Returns an empty set if there are
+    *         no parameters
+    */
+   public List<? extends WBParameter<?>> getParameters();
+
+   /**
+    * Gets all parameters to the constructor which are annotated with
+    * annotationType
+    * 
+    * @param annotationType A annotation to match
+    * @return A list of abstracted parameters with the given annotation type.
+    *         Returns an empty set if there are no matches.
+    */
+   public List<WBParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType);
+
+   /**
+    * Creates a new instance of the class, using this constructor
+    * 
+    * @return The created instance
+    */
+   public T newInstance(Object... parameters) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException;
+
+   /**
+    * Gets the declaring class of the annotation
+    * 
+    * @return An abstraction of the declaring class
+    */
+   public WBType<T> getDeclaringClass();
+   
+   public ConstructorSignature getSignature();
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBConstructor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBField.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBField.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBField.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.reflect.Field;
+
+/**
+ * AnnotatedField provides a uniform access to the annotations on an annotated
+ * field 
+ * 
+ * @author Pete Muir
+ *
+ */
+public interface WBField<T> extends WBMember<T, Field>
+{
+   
+   /**
+    * Gets the annotated field
+    * 
+    * @return The annotated field
+    */
+   public Field getAnnotatedField();
+   
+   /**
+    * Injects an instance
+    * 
+    * 
+    * @param declaringInstance The instance to inject into
+    * @param value The value to inject
+    */
+   public void set(Object declaringInstance, Object value) throws IllegalArgumentException, IllegalAccessException;
+   
+   public T get(Object instance);
+   
+   /**
+    * Gets an abstraction of the declaring class
+    * 
+    * @return The declaring class
+    */
+   public WBType<?> getDeclaringClass();
+   
+   /**
+    * Gets the property name of the field
+    * 
+    * @return The name
+    */
+   public String getPropertyName();
+
+   public boolean isTransient();
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBField.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMember.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMember.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMember.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.reflect.Member;
+/**
+ * AnnotedMember provides enhanced access to an annotated member 
+ * 
+ * @author Pete Muir
+ *
+ */
+public interface WBMember<T, S extends Member> extends WBAnnotated<T, S>
+{
+   
+   public S getMember();
+   
+   /**
+    * Gets an abstraction of the declaring class
+    * 
+    * @return The declaring class
+    */
+   public WBType<?> getDeclaringClass();
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMember.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMethod.java (from rev 2823, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMethod.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMethod.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.enterprise.inject.Disposes;
+import javax.event.AfterTransactionCompletion;
+import javax.event.AfterTransactionFailure;
+import javax.event.AfterTransactionSuccess;
+import javax.event.Asynchronously;
+import javax.event.BeforeTransactionCompletion;
+import javax.event.IfExists;
+import javax.event.Observes;
+
+/**
+ * AnnotatedType provides a uniform access to the annotations on an annotated
+ * class defined either in Java or XML
+ * 
+ * @author Pete Muir
+ * 
+ */
+public interface WBMethod<T> extends WBMember<T, Method>
+{
+   @SuppressWarnings("unchecked")
+   public static final Set<Class<? extends Annotation>> MAPPED_PARAMETER_ANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(Disposes.class, Observes.class, IfExists.class, BeforeTransactionCompletion.class, AfterTransactionCompletion.class, AfterTransactionFailure.class, AfterTransactionSuccess.class, Asynchronously.class, Disposes.class));
+
+   /**
+    * Gets the abstracted parameters of the method
+    * 
+    * @return A list of parameters. Returns an empty list if no parameters are
+    *         present.
+    */
+   public List<? extends WBParameter<?>> getParameters();
+
+   /**
+    * Gets the list of annotated parameters for a given annotation
+    * 
+    * @param metaAnnotationType The annotation to match
+    * @return A set of matching parameter abstractions. Returns an empty list if
+    *         there are no matches.
+    */
+   public List<WBParameter<?>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
+   
+   /**
+    * Get the parameter types as an array
+    */
+   public Class<?>[] getParameterTypesAsArray();
+
+   /**
+    * Invokes the method
+    * 
+    * @param instance The instance to invoke
+    * @param parameters The method parameters
+    * @return A reference to the instance
+    */
+   public T invoke(Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException;
+   
+   /**
+    * Invokes the method on the class of the passed instance, not the declaring 
+    * class. Useful with proxies
+    * 
+    * @param instance The instance to invoke
+    * @param manager The Web Beans manager
+    * @return A reference to the instance
+    */
+   public T invokeOnInstance(Object instance, Object... parameters) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException;
+
+   /**
+    * Gets the declaring class
+    * 
+    * @return An abstraction of the declaring class
+    */
+   public WBType<?> getDeclaringClass();
+
+   /**
+    * Gets the property name
+    * 
+    * @return The name
+    */
+   public String getPropertyName();
+   
+   /**
+    * Checks if a this is equivalent to a JLR method
+    * 
+    * @param method The JLR method
+    * @return true if equivalent
+    */
+   public boolean isEquivalent(Method method);
+
+   public Method getAnnotatedMethod();
+   
+   public MethodSignature getSignature();
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBMethod.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBParameter.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBParameter.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBParameter.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+
+
+/**
+ * AnnotatedParameter provides a uniform access to a method parameter defined
+ * either in Java or XML
+ * 
+ * @author Pete Muir
+ * @param <T>
+ */
+public interface WBParameter<T> extends WBAnnotated<T, Object>
+{
+   
+   public WBMember<?, ?> getDeclaringMember();
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBParameter.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBType.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBType.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WBType.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+
+/**
+ * AnnotatedType provides a uniform access to a type defined either in Java or
+ * XML
+ * 
+ * @author Pete Muir
+ * @param <T>
+ */
+public interface WBType<T> extends WBAnnotated<T, Class<T>>
+{
+
+   /**
+    * Gets the superclass of the type
+    * 
+    * @return The abstracted superclass
+    */
+   public WBType<?> getSuperclass();
+   
+   /**
+    * Check if this is equivalent to a java class
+    * @param clazz The Java class
+    * @return true if equivalent
+    */
+   public boolean isEquivalent(Class<?> clazz);
+   
+   public String getSimpleName();
+
+}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,88 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedAnnotatedClass<T> extends ForwardingAnnotatedClass<T>
-{
-   
-   private final AnnotatedClass<T> delegate;
-   private AnnotationStore annotationStore;
-   
-   public WrappedAnnotatedClass(AnnotatedClass<T> clazz, Set<Annotation> extraAnnotations, Set<Annotation> extraDeclaredAnnotations)
-   {
-      this.delegate = clazz;
-      this.annotationStore = AnnotationStore.wrap(clazz.getAnnotationStore(), extraAnnotations, extraDeclaredAnnotations);
-   }
-   
-   @Override
-   protected AnnotatedClass<T> delegate()
-   {
-      return delegate;
-   }
-   
-   @Override
-   public AnnotationStore getAnnotationStore()
-   {
-      return annotationStore;
-   }
-   
-   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
-   {
-      return getAnnotationStore().getAnnotation(annotationType);
-   }
-
-   public Set<Annotation> getAnnotations()
-   {
-      return getAnnotationStore().getAnnotations();
-   }
-
-   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
-   }
-
-   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
-   }
-
-   @Deprecated
-   public Set<Annotation> getBindings()
-   {
-      return getAnnotationStore().getBindings();
-   }
-
-   @Deprecated
-   public Annotation[] getBindingsAsArray()
-   {
-      return getAnnotationStore().getBindingsAsArray();
-   }
-   
-   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
-   {
-      return getAnnotationStore().isAnnotationPresent(annotationType);
-   }
-   
-   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,107 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */package org.jboss.webbeans.introspector;
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedAnnotatedField<T> extends ForwardingAnnotatedField<T>
-{
-   
-   private final AnnotatedField<T> delegate;
-   private AnnotationStore annotationStore;
-   
-   public WrappedAnnotatedField(AnnotatedField<T> field, Set<Annotation> extraAnnotations)
-   {
-      this.delegate = field;
-      this.annotationStore = AnnotationStore.wrap(field.getAnnotationStore(), extraAnnotations, extraAnnotations);
-   }
-   
-   @Override
-   protected AnnotatedField<T> delegate()
-   {
-      return delegate;
-   }
-   
-   @Override
-   public AnnotationStore getAnnotationStore()
-   {
-      return annotationStore;
-   }
-   
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
-   {
-      return getAnnotationStore().getAnnotation(annotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getAnnotations()
-   {
-      return getAnnotationStore().getAnnotations();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Set<Annotation> getBindings()
-   {
-      return getAnnotationStore().getBindings();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Annotation[] getBindingsAsArray()
-   {
-      return getAnnotationStore().getBindingsAsArray();
-   }
-   
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
-   {
-      return getAnnotationStore().isAnnotationPresent(annotationType);
-   }
-   
-   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,109 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedAnnotatedMethod<T> extends ForwardingAnnotatedMethod<T>
-{
-   
-   private final AnnotatedMethod<T> delegate;
-   private AnnotationStore annotationStore;
-   
-   public WrappedAnnotatedMethod(AnnotatedMethod<T> method, Set<Annotation> extraAnnotations)
-   {
-      this.delegate = method;
-      this.annotationStore = AnnotationStore.wrap(method.getAnnotationStore(), extraAnnotations, extraAnnotations);
-   }
-   
-   @Override
-   protected AnnotatedMethod<T> delegate()
-   {
-      return delegate;
-   }
-   
-   @Override
-   public AnnotationStore getAnnotationStore()
-   {
-      return annotationStore;
-   }
-   
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
-   {
-      return getAnnotationStore().getAnnotation(annotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getAnnotations()
-   {
-      return getAnnotationStore().getAnnotations();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Set<Annotation> getBindings()
-   {
-      return getAnnotationStore().getBindings();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Annotation[] getBindingsAsArray()
-   {
-      return getAnnotationStore().getBindingsAsArray();
-   }
-   
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
-   {
-      return getAnnotationStore().isAnnotationPresent(annotationType);
-   }
-   
-   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,114 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector;
-
-import java.lang.annotation.Annotation;
-import java.util.Set;
-
-public class WrappedAnnotatedParameter<T> extends ForwardingAnnotatedParameter<T>
-{
-   
-   public static <T> WrappedAnnotatedParameter<T> of(AnnotatedParameter<T> parameter, Set<Annotation> extraAnnotations)
-   {
-      return new WrappedAnnotatedParameter<T>(parameter, extraAnnotations);
-   }
-   
-   private final AnnotatedParameter<T> delegate;
-   private AnnotationStore annotationStore;
-   
-   public WrappedAnnotatedParameter(AnnotatedParameter<T> parameter, Set<Annotation> extraAnnotations)
-   {
-      this.delegate = parameter;
-      this.annotationStore = AnnotationStore.wrap(parameter.getAnnotationStore(), extraAnnotations, extraAnnotations);
-   }
-   
-   @Override
-   protected AnnotatedParameter<T> delegate()
-   {
-      return delegate;
-   }
-   
-   @Override
-   public AnnotationStore getAnnotationStore()
-   {
-      return annotationStore;
-   }
-   
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
-   {
-      return getAnnotationStore().getAnnotation(annotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getAnnotations()
-   {
-      return getAnnotationStore().getAnnotations();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Set<Annotation> getBindings()
-   {
-      return getAnnotationStore().getBindings();
-   }
-
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   @Deprecated
-   public Annotation[] getBindingsAsArray()
-   {
-      return getAnnotationStore().getBindingsAsArray();
-   }
-   
-   /**
-    * @see org.jboss.webbeans.introspector.AnnotatedItem
-    */
-   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
-   {
-      return getAnnotationStore().isAnnotationPresent(annotationType);
-   }
-   
-   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
-   }
-   
-}

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+public class WrappedWBClass<T> extends ForwardingWBClass<T>
+{
+   
+   private final WBClass<T> delegate;
+   private AnnotationStore annotationStore;
+   
+   public WrappedWBClass(WBClass<T> clazz, Set<Annotation> extraAnnotations, Set<Annotation> extraDeclaredAnnotations)
+   {
+      this.delegate = clazz;
+      this.annotationStore = AnnotationStore.wrap(clazz.getAnnotationStore(), extraAnnotations, extraDeclaredAnnotations);
+   }
+   
+   @Override
+   protected WBClass<T> delegate()
+   {
+      return delegate;
+   }
+   
+   @Override
+   public AnnotationStore getAnnotationStore()
+   {
+      return annotationStore;
+   }
+   
+   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+   {
+      return getAnnotationStore().getAnnotation(annotationType);
+   }
+
+   public Set<Annotation> getAnnotations()
+   {
+      return getAnnotationStore().getAnnotations();
+   }
+
+   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
+   }
+
+   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
+   }
+
+   @Deprecated
+   public Set<Annotation> getBindings()
+   {
+      return getAnnotationStore().getBindings();
+   }
+
+   @Deprecated
+   public Annotation[] getBindingsAsArray()
+   {
+      return getAnnotationStore().getBindingsAsArray();
+   }
+   
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      return getAnnotationStore().isAnnotationPresent(annotationType);
+   }
+   
+   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBClass.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,107 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */package org.jboss.webbeans.introspector;
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+public class WrappedWBField<T> extends ForwardingWBField<T>
+{
+   
+   private final WBField<T> delegate;
+   private AnnotationStore annotationStore;
+   
+   public WrappedWBField(WBField<T> field, Set<Annotation> extraAnnotations)
+   {
+      this.delegate = field;
+      this.annotationStore = AnnotationStore.wrap(field.getAnnotationStore(), extraAnnotations, extraAnnotations);
+   }
+   
+   @Override
+   protected WBField<T> delegate()
+   {
+      return delegate;
+   }
+   
+   @Override
+   public AnnotationStore getAnnotationStore()
+   {
+      return annotationStore;
+   }
+   
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+   {
+      return getAnnotationStore().getAnnotation(annotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getAnnotations()
+   {
+      return getAnnotationStore().getAnnotations();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Set<Annotation> getBindings()
+   {
+      return getAnnotationStore().getBindings();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Annotation[] getBindingsAsArray()
+   {
+      return getAnnotationStore().getBindingsAsArray();
+   }
+   
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      return getAnnotationStore().isAnnotationPresent(annotationType);
+   }
+   
+   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBField.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+public class WrappedWBMethod<T> extends ForwardingWBMethod<T>
+{
+   
+   private final WBMethod<T> delegate;
+   private AnnotationStore annotationStore;
+   
+   public WrappedWBMethod(WBMethod<T> method, Set<Annotation> extraAnnotations)
+   {
+      this.delegate = method;
+      this.annotationStore = AnnotationStore.wrap(method.getAnnotationStore(), extraAnnotations, extraAnnotations);
+   }
+   
+   @Override
+   protected WBMethod<T> delegate()
+   {
+      return delegate;
+   }
+   
+   @Override
+   public AnnotationStore getAnnotationStore()
+   {
+      return annotationStore;
+   }
+   
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+   {
+      return getAnnotationStore().getAnnotation(annotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getAnnotations()
+   {
+      return getAnnotationStore().getAnnotations();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Set<Annotation> getBindings()
+   {
+      return getAnnotationStore().getBindings();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Annotation[] getBindingsAsArray()
+   {
+      return getAnnotationStore().getBindingsAsArray();
+   }
+   
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      return getAnnotationStore().isAnnotationPresent(annotationType);
+   }
+   
+   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBMethod.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+public class WrappedWBParameter<T> extends ForwardingWBParameter<T>
+{
+   
+   public static <T> WrappedWBParameter<T> of(WBParameter<T> parameter, Set<Annotation> extraAnnotations)
+   {
+      return new WrappedWBParameter<T>(parameter, extraAnnotations);
+   }
+   
+   private final WBParameter<T> delegate;
+   private AnnotationStore annotationStore;
+   
+   public WrappedWBParameter(WBParameter<T> parameter, Set<Annotation> extraAnnotations)
+   {
+      this.delegate = parameter;
+      this.annotationStore = AnnotationStore.wrap(parameter.getAnnotationStore(), extraAnnotations, extraAnnotations);
+   }
+   
+   @Override
+   protected WBParameter<T> delegate()
+   {
+      return delegate;
+   }
+   
+   @Override
+   public AnnotationStore getAnnotationStore()
+   {
+      return annotationStore;
+   }
+   
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+   {
+      return getAnnotationStore().getAnnotation(annotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getAnnotations()
+   {
+      return getAnnotationStore().getAnnotations();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotationsAsArray(metaAnnotationType);
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Set<Annotation> getBindings()
+   {
+      return getAnnotationStore().getBindings();
+   }
+
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   @Deprecated
+   public Annotation[] getBindingsAsArray()
+   {
+      return getAnnotationStore().getBindingsAsArray();
+   }
+   
+   /**
+    * @see org.jboss.webbeans.introspector.WBAnnotated
+    */
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      return getAnnotationStore().isAnnotationPresent(annotationType);
+   }
+   
+   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/WrappedWBParameter.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,292 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.util.Proxies;
-import org.jboss.webbeans.util.Reflections;
-
-/**
- * Represents functionality common for all annotated items, mainly different
- * mappings of the annotations and meta-annotations
- * 
- * AbstractAnnotatedItem is an immutable class and therefore threadsafe
- * 
- * @author Pete Muir
- * @author Nicklas Karlsson
- * 
- * @param <T>
- * @param <S>
- * 
- * @see org.jboss.webbeans.introspector.AnnotatedItem
- */
-public abstract class AbstractAnnotatedItem<T, S> implements AnnotatedItem<T, S>
-{
-   
-   interface WrappableAnnotatedItem<T, S> extends AnnotatedItem<T, S>
-   {
-      
-      AnnotationStore getAnnotationStore();
-      
-   }
-   
-   // Cached string representation
-   private String toString;
-   private final AnnotationStore annotationStore;
-   private final Class<T> rawType;
-   private final Type[] actualTypeArguments; 
-   private final Type type;
-   private final Set<Type> flattenedTypes;
-   private final Set<Type> interfaceOnlyFlattenedTypes;
-   private final boolean proxyable;
-   private final boolean _parameterizedType;
-
-   /**
-    * Constructor
-    * 
-    * Also builds the meta-annotation map. Throws a NullPointerException if
-    * trying to register a null map
-    * 
-    * @param annotationMap A map of annotation to register
-    * 
-    */
-   public AbstractAnnotatedItem(AnnotationStore annotatedItemHelper, Class<T> rawType, Type type)
-   {
-      this.annotationStore = annotatedItemHelper;
-      this.rawType = rawType;
-      this.type = type;
-      if (type instanceof ParameterizedType)
-      {
-         this.actualTypeArguments = ((ParameterizedType) type).getActualTypeArguments();
-      }
-      else
-      {
-         this.actualTypeArguments = new Type[0];
-      }
-      this._parameterizedType = Reflections.isParameterizedType(rawType);
-      this.flattenedTypes = new Reflections.HierarchyDiscovery(type).getFlattenedTypes();
-      this.interfaceOnlyFlattenedTypes = new HashSet<Type>();
-      for (Type t : rawType.getGenericInterfaces())
-      {
-         interfaceOnlyFlattenedTypes.addAll(new Reflections.HierarchyDiscovery(t).getFlattenedTypes());
-      }
-      this.proxyable = Proxies.isTypesProxyable(flattenedTypes);
-   }
-   
-   public AbstractAnnotatedItem(AnnotationStore annotatedItemHelper)
-   {
-      this.annotationStore = annotatedItemHelper;
-      this.rawType = null;
-      this.type = null;
-      this.actualTypeArguments = new Type[0];
-      this._parameterizedType = false;
-      this.flattenedTypes = null;
-      this.interfaceOnlyFlattenedTypes = null;
-      this.proxyable = false;
-   }
-   
-   public AnnotationStore getAnnotationStore()
-   {
-      return annotationStore;
-   }
-
-   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
-   {
-      return getAnnotationStore().getAnnotation(annotationType);
-   }
-
-   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
-   }
-   
-   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
-   }
-
-   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
-   {
-      return getMetaAnnotations(metaAnnotationType).toArray(new Annotation[0]);
-   }
-
-   public Set<Annotation> getAnnotations()
-   {
-      return getAnnotationStore().getAnnotations();
-   }
-
-   /**
-    * Checks if an annotation is present on the item
-    * 
-    * @param annotatedType The annotation type to check for
-    * @return True if present, false otherwise.
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isAnnotationPresent(Class)
-    */
-   public boolean isAnnotationPresent(Class<? extends Annotation> annotatedType)
-   {
-      return getAnnotationStore().isAnnotationPresent(annotatedType);
-   }
-
-   /**
-    * Compares two AbstractAnnotatedItems
-    * 
-    * @param other The other item
-    * @return True if equals, false otherwise
-    */
-   @Override
-   public boolean equals(Object other)
-   {
-      if (other instanceof AnnotatedItem)
-      {
-         AnnotatedItem<?, ?> that = (AnnotatedItem<?, ?>) other;
-         return this.getAnnotations().equals(that.getAnnotations()) && this.getRawType().equals(that.getRawType());
-      }
-      return false;
-   }
-
-   /**
-    * Checks if this item is assignable from another annotated item (through
-    * type and actual type arguments)
-    * 
-    * @param that The other annotated item to check against
-    * @return True if assignable, false otherwise
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isAssignableFrom(AnnotatedItem)
-    */
-   public boolean isAssignableFrom(AnnotatedItem<?, ?> that)
-   {
-      return isAssignableFrom(that.getRawType(), that.getActualTypeArguments());
-   }
-
-   public boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments)
-   {
-      return Reflections.isAssignableFrom(getRawType(), getActualTypeArguments(), type, actualTypeArguments);
-   }
-   
-   public boolean isAssignableFrom(Type type)
-   {
-      return Reflections.isAssignableFrom(getType(), type);
-   }
-
-   /**
-    * Gets the hash code of the actual type
-    * 
-    * @return The hash code
-    */
-   @Override
-   public int hashCode()
-   {
-      return getRawType().hashCode();
-   }
-
-   /**
-    * Gets a string representation of the item
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      toString = "Abstract annotated item " + getName();
-      return toString;
-   }
-   
-   @Deprecated
-   public Set<Annotation> getBindings()
-   {
-      return getAnnotationStore().getBindings();
-   }
-
-   /**
-    * Gets (as array) the binding types of the item
-    * 
-    * Looks at the meta-annotations map for annotations with binding type
-    * meta-annotation. Returns default binding (current) if none specified.
-    * 
-    * @return An array of (binding type) annotations
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#getBindingsAsArray()
-    */
-   @Deprecated
-   public Annotation[] getBindingsAsArray()
-   {
-      return getAnnotationStore().getBindingsAsArray();
-   }
-
-   /**
-    * Indicates if the type is proxyable to a set of pre-defined rules
-    * 
-    * @return True if proxyable, false otherwise.
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isProxyable()
-    */
-   public boolean isProxyable()
-   {
-      return proxyable;
-   }
-   
-   public Class<T> getRawType()
-   {
-      return rawType;
-   }
-   
-   public Type getType()
-   {
-      return type;
-   }
-   
-   public Type[] getActualTypeArguments()
-   {
-      return actualTypeArguments;
-   }
-   
-   public Set<Type> getFlattenedTypeHierarchy()
-   {
-      return Collections.unmodifiableSet(flattenedTypes);
-   }
-   
-   public Set<Type> getInterfaceOnlyFlattenedTypeHierarchy()
-   {
-      return Collections.unmodifiableSet(interfaceOnlyFlattenedTypes);
-   }
-
-   public abstract S getDelegate();
-   
-   public boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationType)
-   {
-      return getAnnotationStore().isDeclaredAnnotationPresent(annotationType);
-   }
-   
-   public boolean isParameterizedType()
-   {
-      return _parameterizedType;
-   }
-
-}
\ No newline at end of file

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,144 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.reflect.Member;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-
-import org.jboss.webbeans.introspector.AnnotatedMember;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.introspector.ForwardingAnnotatedMember;
-import org.jboss.webbeans.util.Reflections;
-
-/**
- * Represents an abstract annotated memeber (field, method or constructor)
- * 
- * This class is immutable, and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- * @param <S>
- */
-public abstract class AbstractAnnotatedMember<T, S extends Member> extends AbstractAnnotatedItem<T, S> implements AnnotatedMember<T, S>
-{
-   
-   static abstract class WrappableForwardingAnnotatedMember<T, S extends Member> extends ForwardingAnnotatedMember<T, S> implements WrappableAnnotatedItem<T, S>
-   {
-      
-   }
-
-   // The name of the member
-   private final String name;
-
-   // Cached string representation
-   private String toString;
-   
-   private final boolean _public;
-
-   /**
-    * Constructor
-    * 
-    * @param annotationMap The annotation map
-    */
-   protected AbstractAnnotatedMember(AnnotationStore annotatedItemHelper, Member member, Class<T> rawType, Type type)
-   {
-      super(annotatedItemHelper, rawType, type);
-      name = member.getName();
-      _public = Modifier.isPublic(member.getModifiers());
-   }
-
-   /**
-    * Indicates if the member is static
-    * 
-    * @return True if static, false otherwise
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isStatic()
-    */
-   public boolean isStatic()
-   {
-      return Reflections.isStatic(getDelegate());
-   }
-
-   /**
-    * Indicates if the member if final
-    * 
-    * @return True if final, false otherwise
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isFinal()
-    */
-   public boolean isFinal()
-   {
-      return Reflections.isFinal(getDelegate());
-   }
-
-   public boolean isTransient()
-   {
-      return Reflections.isTransient(getDelegate());
-   }
-   
-   public boolean isPublic()
-   {
-      return _public;
-   }
-
-   /**
-    * Gets the current value of the member
-    * 
-    * @param beanManager The Web Beans manager
-    * @return The current value
-    *
-   public T getValue(BeanManager beanManager)
-   {
-      return beanManager.getInstance(getRawType(), getMetaAnnotationsAsArray(BindingType.class));
-   }*/
-
-   /**
-    * Gets the name of the member
-    * 
-    * @returns The name
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#getName()
-    */
-   public String getName()
-   {
-      return name;
-   }
-
-   /**
-    * Gets a string representation of the member
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      toString = "Abstract annotated member " + getName();
-      return toString;
-   }
-
-   public S getMember()
-   {
-      return getDelegate();
-   }
-
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,149 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedType;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.resources.ClassTransformer;
-import org.jboss.webbeans.util.Reflections;
-
-/**
- * Represents an abstract annotated type
- * 
- * This class is immutable, and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- */
-public abstract class AbstractAnnotatedType<T> extends AbstractAnnotatedItem<T, Class<T>> implements AnnotatedType<T>
-{
-   
-   // The superclass abstraction of the type
-   private final AnnotatedClass<?> superclass;
-   // The name of the type
-   private final String name;
-   
-   private final String _simpleName;
-   
-   // Cached string representation
-   private String toString;
-   private final boolean _public;
-
-   /**
-    * Constructor
-    * 
-    * @param annotationMap The annotation map
-    */
-   public AbstractAnnotatedType(AnnotationStore annotatedItemHelper, Class<T> rawType, Type type, ClassTransformer classTransformer)
-   {
-      super(annotatedItemHelper, rawType, type);
-      this.name = rawType.getName();
-      this._simpleName = rawType.getSimpleName();
-      if (rawType.getSuperclass() != null)
-      {
-         this.superclass = classTransformer.classForName(rawType.getSuperclass());
-      }
-      else
-      {
-         this.superclass = null;
-      }
-      this._public = Modifier.isFinal(rawType.getModifiers());
-   }
-
-   /**
-    * Indicates if the type is static
-    * 
-    * @return True if static, false otherwise
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isStatic()
-    */
-   public boolean isStatic()
-   {
-      return Reflections.isStatic(getDelegate());
-   }
-
-   /**
-    * Indicates if the type if final
-    * 
-    * @return True if final, false otherwise
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isFinal()
-    */
-   public boolean isFinal()
-   {
-      return Reflections.isFinal(getDelegate());
-   }
-   
-   public boolean isPublic()
-   {
-      return _public;
-   }
-
-   /**
-    * Gets the name of the type
-    * 
-    * @returns The name
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#getName()
-    */
-   public String getName()
-   {
-      return name;
-   }
-
-   /**
-    * Gets the superclass abstraction of the type
-    * 
-    * @return The superclass abstraction
-    */
-   public AnnotatedClass<?> getSuperclass()
-   {
-      return superclass;
-   }
-   
-   public boolean isEquivalent(Class<?> clazz)
-   {
-      return getDelegate().equals(clazz);
-   }
-
-   /**
-    * Gets a string representation of the type
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      toString = "Abstract annotated type " + getName();
-      return toString;
-   }
-   
-   public String getSimpleName()
-   {
-      return _simpleName;
-   }
-
-}

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBAnnotated.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBAnnotated.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBAnnotated.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,292 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jboss.webbeans.introspector.WBAnnotated;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.util.Proxies;
+import org.jboss.webbeans.util.Reflections;
+
+/**
+ * Represents functionality common for all annotated items, mainly different
+ * mappings of the annotations and meta-annotations
+ * 
+ * AbstractAnnotatedItem is an immutable class and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * @author Nicklas Karlsson
+ * 
+ * @param <T>
+ * @param <S>
+ * 
+ * @see org.jboss.webbeans.introspector.WBAnnotated
+ */
+public abstract class AbstractWBAnnotated<T, S> implements WBAnnotated<T, S>
+{
+   
+   interface WrappableAnnotatedItem<T, S> extends WBAnnotated<T, S>
+   {
+      
+      AnnotationStore getAnnotationStore();
+      
+   }
+   
+   // Cached string representation
+   private String toString;
+   private final AnnotationStore annotationStore;
+   private final Class<T> rawType;
+   private final Type[] actualTypeArguments; 
+   private final Type type;
+   private final Set<Type> flattenedTypes;
+   private final Set<Type> interfaceOnlyFlattenedTypes;
+   private final boolean proxyable;
+   private final boolean _parameterizedType;
+
+   /**
+    * Constructor
+    * 
+    * Also builds the meta-annotation map. Throws a NullPointerException if
+    * trying to register a null map
+    * 
+    * @param annotationMap A map of annotation to register
+    * 
+    */
+   public AbstractWBAnnotated(AnnotationStore annotatedItemHelper, Class<T> rawType, Type type)
+   {
+      this.annotationStore = annotatedItemHelper;
+      this.rawType = rawType;
+      this.type = type;
+      if (type instanceof ParameterizedType)
+      {
+         this.actualTypeArguments = ((ParameterizedType) type).getActualTypeArguments();
+      }
+      else
+      {
+         this.actualTypeArguments = new Type[0];
+      }
+      this._parameterizedType = Reflections.isParameterizedType(rawType);
+      this.flattenedTypes = new Reflections.HierarchyDiscovery(type).getFlattenedTypes();
+      this.interfaceOnlyFlattenedTypes = new HashSet<Type>();
+      for (Type t : rawType.getGenericInterfaces())
+      {
+         interfaceOnlyFlattenedTypes.addAll(new Reflections.HierarchyDiscovery(t).getFlattenedTypes());
+      }
+      this.proxyable = Proxies.isTypesProxyable(flattenedTypes);
+   }
+   
+   public AbstractWBAnnotated(AnnotationStore annotatedItemHelper)
+   {
+      this.annotationStore = annotatedItemHelper;
+      this.rawType = null;
+      this.type = null;
+      this.actualTypeArguments = new Type[0];
+      this._parameterizedType = false;
+      this.flattenedTypes = null;
+      this.interfaceOnlyFlattenedTypes = null;
+      this.proxyable = false;
+   }
+   
+   public AnnotationStore getAnnotationStore()
+   {
+      return annotationStore;
+   }
+
+   public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+   {
+      return getAnnotationStore().getAnnotation(annotationType);
+   }
+
+   public Set<Annotation> getMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getMetaAnnotations(metaAnnotationType);
+   }
+   
+   public Set<Annotation> getDeclaredMetaAnnotations(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getAnnotationStore().getDeclaredMetaAnnotations(metaAnnotationType);
+   }
+
+   public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
+   {
+      return getMetaAnnotations(metaAnnotationType).toArray(new Annotation[0]);
+   }
+
+   public Set<Annotation> getAnnotations()
+   {
+      return getAnnotationStore().getAnnotations();
+   }
+
+   /**
+    * Checks if an annotation is present on the item
+    * 
+    * @param annotatedType The annotation type to check for
+    * @return True if present, false otherwise.
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isAnnotationPresent(Class)
+    */
+   public boolean isAnnotationPresent(Class<? extends Annotation> annotatedType)
+   {
+      return getAnnotationStore().isAnnotationPresent(annotatedType);
+   }
+
+   /**
+    * Compares two AbstractAnnotatedItems
+    * 
+    * @param other The other item
+    * @return True if equals, false otherwise
+    */
+   @Override
+   public boolean equals(Object other)
+   {
+      if (other instanceof WBAnnotated)
+      {
+         WBAnnotated<?, ?> that = (WBAnnotated<?, ?>) other;
+         return this.getAnnotations().equals(that.getAnnotations()) && this.getRawType().equals(that.getRawType());
+      }
+      return false;
+   }
+
+   /**
+    * Checks if this item is assignable from another annotated item (through
+    * type and actual type arguments)
+    * 
+    * @param that The other annotated item to check against
+    * @return True if assignable, false otherwise
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isAssignableFrom(WBAnnotated)
+    */
+   public boolean isAssignableFrom(WBAnnotated<?, ?> that)
+   {
+      return isAssignableFrom(that.getRawType(), that.getActualTypeArguments());
+   }
+
+   public boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments)
+   {
+      return Reflections.isAssignableFrom(getRawType(), getActualTypeArguments(), type, actualTypeArguments);
+   }
+   
+   public boolean isAssignableFrom(Type type)
+   {
+      return Reflections.isAssignableFrom(getType(), type);
+   }
+
+   /**
+    * Gets the hash code of the actual type
+    * 
+    * @return The hash code
+    */
+   @Override
+   public int hashCode()
+   {
+      return getRawType().hashCode();
+   }
+
+   /**
+    * Gets a string representation of the item
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      toString = "Abstract annotated item " + getName();
+      return toString;
+   }
+   
+   @Deprecated
+   public Set<Annotation> getBindings()
+   {
+      return getAnnotationStore().getBindings();
+   }
+
+   /**
+    * Gets (as array) the binding types of the item
+    * 
+    * Looks at the meta-annotations map for annotations with binding type
+    * meta-annotation. Returns default binding (current) if none specified.
+    * 
+    * @return An array of (binding type) annotations
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#getBindingsAsArray()
+    */
+   @Deprecated
+   public Annotation[] getBindingsAsArray()
+   {
+      return getAnnotationStore().getBindingsAsArray();
+   }
+
+   /**
+    * Indicates if the type is proxyable to a set of pre-defined rules
+    * 
+    * @return True if proxyable, false otherwise.
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isProxyable()
+    */
+   public boolean isProxyable()
+   {
+      return proxyable;
+   }
+   
+   public Class<T> getRawType()
+   {
+      return rawType;
+   }
+   
+   public Type getType()
+   {
+      return type;
+   }
+   
+   public Type[] getActualTypeArguments()
+   {
+      return actualTypeArguments;
+   }
+   
+   public Set<Type> getFlattenedTypeHierarchy()
+   {
+      return Collections.unmodifiableSet(flattenedTypes);
+   }
+   
+   public Set<Type> getInterfaceOnlyFlattenedTypeHierarchy()
+   {
+      return Collections.unmodifiableSet(interfaceOnlyFlattenedTypes);
+   }
+
+   public abstract S getDelegate();
+   
+   public boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationType)
+   {
+      return getAnnotationStore().isDeclaredAnnotationPresent(annotationType);
+   }
+   
+   public boolean isParameterizedType()
+   {
+      return _parameterizedType;
+   }
+
+}
\ No newline at end of file


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBAnnotated.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBMember.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBMember.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBMember.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,144 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.reflect.Member;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Type;
+
+import org.jboss.webbeans.introspector.WBMember;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.introspector.ForwardingWBMember;
+import org.jboss.webbeans.util.Reflections;
+
+/**
+ * Represents an abstract annotated memeber (field, method or constructor)
+ * 
+ * This class is immutable, and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ * @param <S>
+ */
+public abstract class AbstractWBMember<T, S extends Member> extends AbstractWBAnnotated<T, S> implements WBMember<T, S>
+{
+   
+   static abstract class WrappableForwardingAnnotatedMember<T, S extends Member> extends ForwardingWBMember<T, S> implements WrappableAnnotatedItem<T, S>
+   {
+      
+   }
+
+   // The name of the member
+   private final String name;
+
+   // Cached string representation
+   private String toString;
+   
+   private final boolean _public;
+
+   /**
+    * Constructor
+    * 
+    * @param annotationMap The annotation map
+    */
+   protected AbstractWBMember(AnnotationStore annotatedItemHelper, Member member, Class<T> rawType, Type type)
+   {
+      super(annotatedItemHelper, rawType, type);
+      name = member.getName();
+      _public = Modifier.isPublic(member.getModifiers());
+   }
+
+   /**
+    * Indicates if the member is static
+    * 
+    * @return True if static, false otherwise
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isStatic()
+    */
+   public boolean isStatic()
+   {
+      return Reflections.isStatic(getDelegate());
+   }
+
+   /**
+    * Indicates if the member if final
+    * 
+    * @return True if final, false otherwise
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isFinal()
+    */
+   public boolean isFinal()
+   {
+      return Reflections.isFinal(getDelegate());
+   }
+
+   public boolean isTransient()
+   {
+      return Reflections.isTransient(getDelegate());
+   }
+   
+   public boolean isPublic()
+   {
+      return _public;
+   }
+
+   /**
+    * Gets the current value of the member
+    * 
+    * @param beanManager The Web Beans manager
+    * @return The current value
+    *
+   public T getValue(BeanManager beanManager)
+   {
+      return beanManager.getInstance(getRawType(), getMetaAnnotationsAsArray(BindingType.class));
+   }*/
+
+   /**
+    * Gets the name of the member
+    * 
+    * @returns The name
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#getName()
+    */
+   public String getName()
+   {
+      return name;
+   }
+
+   /**
+    * Gets a string representation of the member
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      toString = "Abstract annotated member " + getName();
+      return toString;
+   }
+
+   public S getMember()
+   {
+      return getDelegate();
+   }
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBMember.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,149 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Type;
+
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBType;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.resources.ClassTransformer;
+import org.jboss.webbeans.util.Reflections;
+
+/**
+ * Represents an abstract annotated type
+ * 
+ * This class is immutable, and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ */
+public abstract class AbstractWBType<T> extends AbstractWBAnnotated<T, Class<T>> implements WBType<T>
+{
+   
+   // The superclass abstraction of the type
+   private final WBClass<?> superclass;
+   // The name of the type
+   private final String name;
+   
+   private final String _simpleName;
+   
+   // Cached string representation
+   private String toString;
+   private final boolean _public;
+
+   /**
+    * Constructor
+    * 
+    * @param annotationMap The annotation map
+    */
+   public AbstractWBType(AnnotationStore annotatedItemHelper, Class<T> rawType, Type type, ClassTransformer classTransformer)
+   {
+      super(annotatedItemHelper, rawType, type);
+      this.name = rawType.getName();
+      this._simpleName = rawType.getSimpleName();
+      if (rawType.getSuperclass() != null)
+      {
+         this.superclass = classTransformer.classForName(rawType.getSuperclass());
+      }
+      else
+      {
+         this.superclass = null;
+      }
+      this._public = Modifier.isFinal(rawType.getModifiers());
+   }
+
+   /**
+    * Indicates if the type is static
+    * 
+    * @return True if static, false otherwise
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isStatic()
+    */
+   public boolean isStatic()
+   {
+      return Reflections.isStatic(getDelegate());
+   }
+
+   /**
+    * Indicates if the type if final
+    * 
+    * @return True if final, false otherwise
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isFinal()
+    */
+   public boolean isFinal()
+   {
+      return Reflections.isFinal(getDelegate());
+   }
+   
+   public boolean isPublic()
+   {
+      return _public;
+   }
+
+   /**
+    * Gets the name of the type
+    * 
+    * @returns The name
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#getName()
+    */
+   public String getName()
+   {
+      return name;
+   }
+
+   /**
+    * Gets the superclass abstraction of the type
+    * 
+    * @return The superclass abstraction
+    */
+   public WBClass<?> getSuperclass()
+   {
+      return superclass;
+   }
+   
+   public boolean isEquivalent(Class<?> clazz)
+   {
+      return getDelegate().equals(clazz);
+   }
+
+   /**
+    * Gets a string representation of the type
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      toString = "Abstract annotated type " + getName();
+      return toString;
+   }
+   
+   public String getSimpleName()
+   {
+      return _simpleName;
+   }
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractWBType.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,149 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.webbeans.introspector.AnnotatedAnnotation;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.resources.ClassTransformer;
-import org.jboss.webbeans.util.collections.multi.SetHashMultiMap;
-import org.jboss.webbeans.util.collections.multi.SetMultiMap;
-
-/**
- * Represents an annotated annotation
- * 
- * This class is immutable and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- */
-public class AnnotatedAnnotationImpl<T extends Annotation> extends AbstractAnnotatedType<T> implements AnnotatedAnnotation<T>
-{
-
-   // The annotated members map (annotation -> member with annotation)
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>> annotatedMembers;
-   // The implementation class of the annotation
-   private final Class<T> clazz;
-   // The set of abstracted members
-   private final Set<AnnotatedMethod<?>> members;
-   
-   private final Map<String, AnnotatedMethod<?>> namedMembers;
-
-   // Cached string representation
-   private String toString;
-   
-   public static <A extends Annotation> AnnotatedAnnotation<A> of(Class<A> annotationType, ClassTransformer classTransformer)
-   {
-      return new AnnotatedAnnotationImpl<A>(annotationType, classTransformer);
-   }
-
-   /**
-    * Constructor
-    * 
-    * Initializes the superclass with the built annotation map
-    * 
-    * @param annotationType The annotation type
-    */
-   protected AnnotatedAnnotationImpl(Class<T> annotationType, ClassTransformer classTransformer)
-   {
-      super(AnnotationStore.of(annotationType), annotationType, annotationType, classTransformer);
-      this.clazz = annotationType;
-      members = new HashSet<AnnotatedMethod<?>>();
-      annotatedMembers = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>>();
-      this.namedMembers = new HashMap<String, AnnotatedMethod<?>>();
-      for (Method member : clazz.getDeclaredMethods())
-      {
-         AnnotatedMethod<?> annotatedMethod = AnnotatedMethodImpl.of(member, this);
-         members.add(annotatedMethod);
-         for (Annotation annotation : annotatedMethod.getAnnotations())
-         {
-            annotatedMembers.put(annotation.annotationType(), annotatedMethod);
-         }
-         namedMembers.put(annotatedMethod.getName(), annotatedMethod);
-      }
-   }
-
-   /**
-    * Gets all members of the annotation
-    * 
-    * Initializes the members first if they are null
-    * 
-    * @return The set of abstracted members
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedAnnotation#getMembers()
-    */
-   public Set<AnnotatedMethod<?>> getMembers()
-   {
-      return Collections.unmodifiableSet(members);
-   }
-
-   /**
-    * Returns the annotated members with a given annotation type
-    * 
-    * If the annotated members are null, they are initialized first.
-    * 
-    * @param annotationType The annotation type to match
-    * @return The set of abstracted members with the given annotation type
-    *         present. An empty set is returned if no matches are found
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedAnnotation#getAnnotatedMembers(Class)
-    */
-   public Set<AnnotatedMethod<?>> getAnnotatedMembers(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(annotatedMembers.get(annotationType));
-   }
-   
-   public <A> AnnotatedMethod<A> getMember(String memberName, AnnotatedClass<A> expectedType)
-   {
-      return (AnnotatedMethod<A>) namedMembers.get(memberName);
-   }
-   
-   /**
-    * Gets a string representation of the annotation
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      return toString;
-   }
-
-   public Class<T> getDelegate()
-   {
-      return clazz;
-   }
-
-   public AnnotatedAnnotation<T> wrap(Set<Annotation> annotations)
-   {
-      throw new UnsupportedOperationException();
-   }
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,474 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedConstructor;
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.introspector.ConstructorSignature;
-import org.jboss.webbeans.introspector.MethodSignature;
-import org.jboss.webbeans.resources.ClassTransformer;
-import org.jboss.webbeans.util.Names;
-import org.jboss.webbeans.util.Reflections;
-import org.jboss.webbeans.util.collections.multi.SetHashMultiMap;
-import org.jboss.webbeans.util.collections.multi.SetMultiMap;
-
-/**
- * Represents an annotated class
- * 
- * This class is immutable, and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- */
-public class AnnotatedClassImpl<T> extends AbstractAnnotatedType<T> implements AnnotatedClass<T>
-{
-   
-   private static List<Class<?>> NO_ARGUMENTS = Collections.emptyList();
-   
-   // The set of abstracted fields
-   private final Set<AnnotatedField<?>> fields;
-   // The map from annotation type to abstracted field with annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedField<?>> annotatedFields;
-   // The map from annotation type to abstracted field with meta-annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedField<?>> metaAnnotatedFields;
-   
-   // The set of abstracted fields
-   private final Set<AnnotatedField<?>> declaredFields;
-   private final Map<String, AnnotatedField<?>> declaredFieldsByName;
-   // The map from annotation type to abstracted field with annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedField<?>> declaredAnnotatedFields;
-   // The map from annotation type to abstracted field with meta-annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedField<?>> declaredMetaAnnotatedFields;
-   
-   // The set of abstracted methods
-   private final Set<AnnotatedMethod<?>> methods;
-   private final Map<MethodSignature, AnnotatedMethod<?>> declaredMethodsBySignature;
-   // The map from annotation type to abstracted method with annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>> annotatedMethods;
-   // The map from annotation type to method with a parameter with annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>> methodsByAnnotatedParameters;
-   
-   // The set of abstracted methods
-   private final Set<AnnotatedMethod<?>> declaredMethods;
-   // The map from annotation type to abstracted method with annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>> declaredAnnotatedMethods;
-   // The map from annotation type to method with a parameter with annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>> declaredMethodsByAnnotatedParameters;
-   
-   // The set of abstracted constructors
-   private final Set<AnnotatedConstructor<T>> constructors;
-   private final Map<ConstructorSignature, AnnotatedConstructor<?>> declaredConstructorsBySignature;
-   // The map from annotation type to abstracted constructor with annotation
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedConstructor<T>> annotatedConstructors;
-   // The map from class list to abstracted constructor
-   private final Map<List<Class<?>>, AnnotatedConstructor<T>> constructorsByArgumentMap;
-   
-   private final SetMultiMap<Class<? extends Annotation>, AnnotatedConstructor<?>> constructorsByAnnotatedParameters;
-   
-   // Cached string representation
-   private String toString;
-   
-   private final boolean _nonStaticMemberClass;
-   private final boolean _abstract;
-   private final boolean _enum;
-
-   
-   public static <T> AnnotatedClass<T> of(Class<T> clazz, ClassTransformer classTransformer)
-   {
-      return new AnnotatedClassImpl<T>(clazz, clazz, clazz.getAnnotations(), clazz.getDeclaredAnnotations(), classTransformer);
-   }
-
-   private AnnotatedClassImpl(Class<T> rawType, Type type, Annotation[] annotations, Annotation[] declaredAnnotations, ClassTransformer classTransformer)
-   {
-      super(AnnotationStore.of(annotations, declaredAnnotations), rawType, type, classTransformer);
-      
-      this.fields = new HashSet<AnnotatedField<?>>();
-      this.annotatedFields = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedField<?>>();
-      this.metaAnnotatedFields = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedField<?>>();
-      this.declaredFields = new HashSet<AnnotatedField<?>>();
-      this.declaredFieldsByName = new HashMap<String, AnnotatedField<?>>();
-      this.declaredAnnotatedFields = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedField<?>>();
-      this.declaredMetaAnnotatedFields = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedField<?>>();
-      this._nonStaticMemberClass = Reflections.isNonStaticInnerClass(rawType);
-      this._abstract = Reflections.isAbstract(rawType);
-      this._enum = rawType.isEnum();
-      for (Class<?> c = rawType; c != Object.class && c != null; c = c.getSuperclass())
-      {
-         for (Field field : c.getDeclaredFields())
-         {
-            if (!field.isAccessible())
-            {
-               field.setAccessible(true);
-            }
-            AnnotatedField<?> annotatedField = new AnnotatedFieldImpl<Object>(field, this);
-            this.fields.add(annotatedField);
-            if (c == rawType)
-            {
-               this.declaredFields.add(annotatedField);
-               this.declaredFieldsByName.put(annotatedField.getName(), annotatedField);
-            }
-            for (Annotation annotation : annotatedField.getAnnotations())
-            {
-               this.annotatedFields.put(annotation.annotationType(), annotatedField);
-               if (c == rawType)
-               {
-                  this.declaredAnnotatedFields.put(annotation.annotationType(), annotatedField);
-               }
-               for (Annotation metaAnnotation : annotation.annotationType().getAnnotations())
-               {
-                  this.metaAnnotatedFields.put(metaAnnotation.annotationType(), annotatedField);
-                  if (c == rawType)
-                  {
-                     this.declaredMetaAnnotatedFields.put(metaAnnotation.annotationType(), annotatedField);
-                  }
-               }
-            }
-            
-         }
-      }
-      
-      this.constructors = new HashSet<AnnotatedConstructor<T>>();
-      this.constructorsByArgumentMap = new HashMap<List<Class<?>>, AnnotatedConstructor<T>>();
-      this.annotatedConstructors = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedConstructor<T>>();
-      this.constructorsByAnnotatedParameters = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedConstructor<?>>();
-      this.declaredConstructorsBySignature = new HashMap<ConstructorSignature, AnnotatedConstructor<?>>();
-      for (Constructor<?> constructor : rawType.getDeclaredConstructors())
-      {
-         @SuppressWarnings("unchecked")
-         Constructor<T> c = (Constructor<T>) constructor;
-         AnnotatedConstructor<T> annotatedConstructor = AnnotatedConstructorImpl.of(c, this);
-         if (!constructor.isAccessible())
-         {
-            constructor.setAccessible(true);
-         }
-         this.constructors.add(annotatedConstructor);
-         this.constructorsByArgumentMap.put(Arrays.asList(constructor.getParameterTypes()), annotatedConstructor);
-         
-         this.declaredConstructorsBySignature.put(annotatedConstructor.getSignature(), annotatedConstructor);
-         
-         for (Annotation annotation : annotatedConstructor.getAnnotations())
-         {
-            if (!annotatedConstructors.containsKey(annotation.annotationType()))
-            {
-               annotatedConstructors.put(annotation.annotationType(), new HashSet<AnnotatedConstructor<T>>());
-            }
-            annotatedConstructors.get(annotation.annotationType()).add(annotatedConstructor);
-         }
-         
-         for (Class<? extends Annotation> annotationType : AnnotatedConstructor.MAPPED_PARAMETER_ANNOTATIONS)
-         {
-            if (annotatedConstructor.getAnnotatedParameters(annotationType).size() > 0)
-            {
-               constructorsByAnnotatedParameters.put(annotationType, annotatedConstructor);
-            }
-         }
-      }
-      
-      this.methods = new HashSet<AnnotatedMethod<?>>();
-      this.annotatedMethods = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>>();
-      this.methodsByAnnotatedParameters = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>>();
-      this.declaredMethods = new HashSet<AnnotatedMethod<?>>();
-      this.declaredAnnotatedMethods = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>>();
-      this.declaredMethodsByAnnotatedParameters = new SetHashMultiMap<Class<? extends Annotation>, AnnotatedMethod<?>>();
-      this.declaredMethodsBySignature = new HashMap<MethodSignature, AnnotatedMethod<?>>();
-      for (Class<?> c = rawType; c != Object.class && c != null; c = c.getSuperclass())
-      {
-         for (Method method : c.getDeclaredMethods())
-         {
-            if (!method.isAccessible())
-            {
-               method.setAccessible(true);
-            }
-            
-            AnnotatedMethod<?> annotatedMethod = AnnotatedMethodImpl.of(method, this);
-            this.methods.add(annotatedMethod);
-            if (c == rawType)
-            {
-               this.declaredMethods.add(annotatedMethod);
-               this.declaredMethodsBySignature.put(annotatedMethod.getSignature(), annotatedMethod);
-            }
-            for (Annotation annotation : annotatedMethod.getAnnotations())
-            {
-               annotatedMethods.put(annotation.annotationType(), annotatedMethod);
-               if (c == rawType)
-               {
-                  this.declaredAnnotatedMethods.put(annotation.annotationType(), annotatedMethod);
-               }
-            }
-            for (Class<? extends Annotation> annotationType : AnnotatedMethod.MAPPED_PARAMETER_ANNOTATIONS)
-            {
-               if (annotatedMethod.getAnnotatedParameters(annotationType).size() > 0)
-               {
-                  methodsByAnnotatedParameters.put(annotationType, annotatedMethod);
-                  if (c == rawType)
-                  {
-                     this.declaredMethodsByAnnotatedParameters.put(annotationType, annotatedMethod);
-                  }
-               }
-            }
-         }
-      }
-   }
-   
-   /**
-    * Gets the implementing class
-    * 
-    * @return The class
-    */
-   public Class<? extends T> getAnnotatedClass()
-   {
-      return getRawType();
-   }
-   
-   /**
-    * Gets the delegate (class)
-    * 
-    * @return The class
-    */
-   public Class<T> getDelegate()
-   {
-      return getRawType();
-   }
-   
-   /**
-    * Gets the abstracted fields of the class
-    * 
-    * Initializes the fields if they are null
-    * 
-    * @return The set of abstracted fields
-    */
-   public Set<AnnotatedField<?>> getFields()
-   {
-      return Collections.unmodifiableSet(fields);
-   }
-   
-   public Set<AnnotatedField<?>> getDeclaredFields()
-   {
-      return Collections.unmodifiableSet(declaredFields);
-   }
-   
-   public <F> AnnotatedField<F> getDeclaredField(String fieldName, AnnotatedClass<F> expectedType)
-   {
-      return (AnnotatedField<F>) declaredFieldsByName.get(fieldName);
-   }
-   
-   public Set<AnnotatedField<?>> getDeclaredAnnotatedFields(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(declaredAnnotatedFields.get(annotationType));
-   }
-   
-   /**
-    * Gets the abstracted constructors of the class
-    * 
-    * Initializes the constructors if they are null
-    * 
-    * @return The set of abstracted constructors
-    */
-   public Set<AnnotatedConstructor<T>> getConstructors()
-   {
-      return Collections.unmodifiableSet(constructors);
-   }
-   
-   public AnnotatedConstructor<T> getDeclaredConstructor(ConstructorSignature signature)
-   {
-      return (AnnotatedConstructor<T>) declaredConstructorsBySignature.get(signature);
-   }
-   
-   /**
-    * Gets abstracted fields with requested meta-annotation type present
-    * 
-    * If the meta-annotations map is null, it is initializes. If the annotated
-    * fields are null, it is initialized The meta-annotated field map is then
-    * populated for the requested meta-annotation type and the result is
-    * returned
-    * 
-    * @param metaAnnotationType
-    *           The meta-annotation type to match
-    * @return The set of abstracted fields with meta-annotation present. Returns
-    *         an empty set if no matches are found.
-    */
-   public Set<AnnotatedField<?>> getMetaAnnotatedFields(Class<? extends Annotation> metaAnnotationType)
-   {
-      return Collections.unmodifiableSet(metaAnnotatedFields.get(metaAnnotationType));
-   }
-   
-   /**
-    * Gets the abstracted field annotated with a specific annotation type
-    * 
-    * If the fields map is null, initialize it first
-    * 
-    * @param annotationType
-    *           The annotation type to match
-    * @return A set of matching abstracted fields, null if none are found.
-    * 
-    */
-   public Set<AnnotatedField<?>> getAnnotatedFields(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(annotatedFields.get(annotationType));
-   }
-   
-   public boolean isNonStaticMemberClass()
-   {
-      return _nonStaticMemberClass;
-   }
-   
-   public boolean isAbstract()
-   {
-      return _abstract;
-   }
-   
-   public boolean isEnum()
-   {
-      return _enum;
-   }
-   
-   /**
-    * Gets the abstracted methods that have a certain annotation type present
-    * 
-    * If the annotated methods map is null, initialize it first
-    * 
-    * @param annotationType
-    *           The annotation type to match
-    * @return A set of matching method abstractions. Returns an empty set if no
-    *         matches are found.
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedClass#getAnnotatedMethods(Class)
-    */
-   public Set<AnnotatedMethod<?>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(annotatedMethods.get(annotationType));
-   }
-   
-   public Set<AnnotatedMethod<?>> getDeclaredAnnotatedMethods(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(declaredAnnotatedMethods.get(annotationType));
-   }
-   
-   /**
-    * Gets constructors with given annotation type
-    * 
-    * @param annotationType
-    *           The annotation type to match
-    * @return A set of abstracted constructors with given annotation type. If
-    *         the constructors set is empty, initialize it first. Returns an
-    *         empty set if there are no matches.
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedClass#getAnnotatedConstructors(Class)
-    */
-   public Set<AnnotatedConstructor<T>> getAnnotatedConstructors(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(annotatedConstructors.get(annotationType));
-   }
-   
-   public AnnotatedConstructor<T> getNoArgsConstructor()
-   {
-      return constructorsByArgumentMap.get(NO_ARGUMENTS);
-   }
-   
-   public Set<AnnotatedMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(methodsByAnnotatedParameters.get(annotationType));
-   }
-   
-   public Set<AnnotatedConstructor<?>> getConstructorsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(constructorsByAnnotatedParameters.get(annotationType));
-   }
-   
-   public Set<AnnotatedMethod<?>> getDeclaredMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableSet(declaredMethodsByAnnotatedParameters.get(annotationType));
-   }
-   
-   public AnnotatedMethod<?> getMethod(Method methodDescriptor)
-   {
-      // TODO Should be cached
-      for (AnnotatedMethod<?> annotatedMethod : methods)
-      {
-         if (annotatedMethod.getName().equals(methodDescriptor.getName()) && Arrays.equals(annotatedMethod.getParameterTypesAsArray(), methodDescriptor.getParameterTypes()))
-         {
-            return annotatedMethod;
-         }
-      }
-      return null;
-   }
-   
-   public AnnotatedMethod<?> getDeclaredMethod(Method method)
-   {
-      // TODO Should be cached
-      for (AnnotatedMethod<?> annotatedMethod : declaredMethods)
-      {
-         if (annotatedMethod.getName().equals(method.getName()) && Arrays.equals(annotatedMethod.getParameterTypesAsArray(), method.getParameterTypes()))
-         {
-            return annotatedMethod;
-         }
-      }
-      return null;
-   }
-   
-   @SuppressWarnings("unchecked")
-   public <M> AnnotatedMethod<M> getDeclaredMethod(MethodSignature signature, AnnotatedClass<M> expectedReturnType)
-   {
-      return (AnnotatedMethod<M>) declaredMethodsBySignature.get(signature);
-   }
-   
-   /**
-    * Gets a string representation of the class
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      toString = "Annotated class " + Names.classToString(getDelegate());
-      return toString;
-   }
-   
-   @SuppressWarnings("unchecked")
-   public <U> AnnotatedClass<? extends U> asSubclass(AnnotatedClass<U> clazz)
-   {
-      return (AnnotatedClass<? extends U>) this;
-   }
-   
-   @SuppressWarnings("unchecked")
-   public T cast(Object object)
-   {
-      return (T) object;
-   }
-   
-}
\ No newline at end of file

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,255 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedConstructor;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-import org.jboss.webbeans.introspector.AnnotatedType;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.introspector.ConstructorSignature;
-import org.jboss.webbeans.util.Names;
-import org.jboss.webbeans.util.collections.multi.ListHashMultiMap;
-import org.jboss.webbeans.util.collections.multi.ListMultiMap;
-
-/**
- * Represents an annotated constructor
- * 
- * This class is immutable, and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- */
-public class AnnotatedConstructorImpl<T> extends AbstractAnnotatedMember<T, Constructor<T>> implements AnnotatedConstructor<T>
-{
-   
-   // The underlying constructor
-   private final Constructor<T> constructor;
-
-   // The list of parameter abstractions
-   private final List<AnnotatedParameter<?>> parameters;
-   // The mapping of annotation -> parameter abstraction
-   private final ListMultiMap<Class<? extends Annotation>, AnnotatedParameter<?>> annotatedParameters;
-
-   // The declaring class abstraction
-   private final AnnotatedType<T> declaringClass;
-   
-   private final ConstructorSignature signature;
-
-   // Cached string representation
-   private String toString;
-   
-   public static <T> AnnotatedConstructor<T> of(Constructor<T> constructor, AnnotatedType<T> declaringClass)
-   {
-      return new AnnotatedConstructorImpl<T>(constructor, declaringClass);
-   }
-
-   /**
-    * Constructor
-    * 
-    * Initializes the superclass with the build annotations map
-    * 
-    * @param constructor The constructor method
-    * @param declaringClass The declaring class
-    */
-   protected AnnotatedConstructorImpl(Constructor<T> constructor, AnnotatedType<T> declaringClass)
-   {
-      super(AnnotationStore.of(constructor), constructor, constructor.getDeclaringClass(), constructor.getDeclaringClass());
-      this.constructor = constructor;
-      this.declaringClass = declaringClass;
-
-      this.parameters = new ArrayList<AnnotatedParameter<?>>();
-      annotatedParameters = new ListHashMultiMap<Class<? extends Annotation>, AnnotatedParameter<?>>();
-      
-      for (int i = 0; i < constructor.getParameterTypes().length; i++)
-      {
-         if (constructor.getParameterAnnotations()[i].length > 0)
-         {
-            Class<?> clazz = constructor.getParameterTypes()[i];
-            Type type = constructor.getGenericParameterTypes()[i];
-            AnnotatedParameter<?> parameter = AnnotatedParameterImpl.of(constructor.getParameterAnnotations()[i], clazz, type, this);
-            parameters.add(parameter);
-
-            for (Annotation annotation : parameter.getAnnotations())
-            {
-               annotatedParameters.put(annotation.annotationType(), parameter);
-            }
-         }
-         else
-         {
-            Class<?> clazz = constructor.getParameterTypes()[i];
-            Type type;
-            if (constructor.getGenericParameterTypes().length > i)
-            {
-               type = constructor.getGenericParameterTypes()[i];
-            }
-            else
-            {
-               type = clazz;
-            }
-            AnnotatedParameter<?> parameter = AnnotatedParameterImpl.of(new Annotation[0], clazz, type, this);
-            parameters.add(parameter);
-
-            for (Annotation annotation : parameter.getAnnotations())
-            {
-               annotatedParameters.put(annotation.annotationType(), parameter);
-            }
-         }
-      }
-      this.signature = new ConstructorSignatureImpl(this);
-   }
-
-   /**
-    * Gets the constructor
-    * 
-    * @return The constructor
-    */
-   public Constructor<T> getAnnotatedConstructor()
-   {
-      return constructor;
-   }
-
-   /**
-    * Gets the delegate (constructor)
-    * 
-    * @return The delegate
-    */
-   @Override
-public Constructor<T> getDelegate()
-   {
-      return constructor;
-   }
-
-   /**
-    * Gets the abstracted parameters
-    * 
-    * If the parameters are null, initalize them first
-    * 
-    * @return A list of annotated parameter abstractions
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedConstructor#getParameters()
-    */
-   public List<AnnotatedParameter<?>> getParameters()
-   {
-      return Collections.unmodifiableList(parameters);
-   }
-
-   /**
-    * Gets parameter abstractions with a given annotation type.
-    * 
-    * If the parameters are null, they are initializes first.
-    * 
-    * @param annotationType The annotation type to match
-    * @return A list of matching parameter abstractions. An empty list is
-    *         returned if there are no matches.
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedConstructor#getAnnotatedParameters(Class)
-    */
-   public List<AnnotatedParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableList(annotatedParameters.get(annotationType));
-   }
-
-   /**
-    * Creates a new instance
-    * 
-    * @param manager The Web Beans manager
-    * @return An instance
-    * @throws InvocationTargetException 
-    * @throws IllegalAccessException 
-    * @throws InstantiationException 
-    * @throws IllegalArgumentException 
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedConstructor#newInstance(BeanManagerImpl)
-    */
-   public T newInstance(Object... parameters) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
-   {
-      return getDelegate().newInstance(parameters);
-   }
-
-   /**
-    * The overridden equals operation
-    * 
-    * @param other The instance to compare to
-    * @return True if equal, false otherwise
-    */
-   @Override
-   public boolean equals(Object other)
-   {
-
-      if (super.equals(other) && other instanceof AnnotatedConstructor)
-      {
-         AnnotatedConstructor<?> that = (AnnotatedConstructor<?>) other;
-         return this.getDeclaringClass().equals(that.getDeclaringClass()) && this.getParameters().equals(that.getParameters());
-      }
-      return false;
-   }
-
-   /**
-    * The overridden hashcode
-    * 
-    * Gets the hash code from the delegate
-    * 
-    * @return The hash code
-    */
-   @Override
-   public int hashCode()
-   {
-      return getDelegate().hashCode();
-   }
-
-   /**
-    * Gets the declaring class
-    * 
-    * @return The declaring class
-    */
-   public AnnotatedType<T> getDeclaringClass()
-   {
-      return declaringClass;
-   }
-
-   /**
-    * Gets a string representation of the constructor
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      toString = "Annotated constructor " + Names.constructorToString(constructor);
-      return toString;
-   }
-   
-   public ConstructorSignature getSignature()
-   {
-      return signature;
-   }
-
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,156 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.reflect.Field;
-
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.AnnotatedType;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.util.Names;
-import org.jboss.webbeans.util.Reflections;
-
-/**
- * Represents an annotated field
- * 
- * This class is immutable, and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- */
-public class AnnotatedFieldImpl<T> extends AbstractAnnotatedMember<T, Field> implements AnnotatedField<T>
-{
-   
-   // The underlying field
-   private final Field field;
-   // The abstraction of the declaring class
-   private final AnnotatedType<?> declaringClass;
-
-   // Cached string representation
-   private String toString;
-
-   /**
-    * Constructor
-    * 
-    * Initializes the superclass with the built annotation map and detects the
-    * type arguments
-    * 
-    * @param field The actual field
-    * @param declaringClass The abstraction of the declaring class
-    */
-   protected AnnotatedFieldImpl(Field field, AnnotatedType<?> declaringClass)
-   {
-      super(AnnotationStore.of(field), field, (Class<T>) field.getType(), field.getGenericType());
-      this.field = field;
-      field.setAccessible(true);
-      this.declaringClass = declaringClass;
-   }
-
-   /**
-    * Gets the underlying field
-    * 
-    * @return The fields
-    */
-   public Field getAnnotatedField()
-   {
-      return field;
-   }
-
-   public Field getDelegate()
-   {
-      return field;
-   }
-   
-   public void set(Object instance, Object value) throws IllegalArgumentException, IllegalAccessException
-   {
-      field.set(instance, value);
-   }
-   
-   public void setOnInstance(Object instance, Object value) throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException
-   {
-      instance.getClass().getField(getName()).set(instance, value);
-   }
-
-   @SuppressWarnings("unchecked")
-   public T get(Object instance)
-   {
-      return (T) Reflections.getAndWrap(getDelegate(), instance);
-   }
-
-   /**
-    * Gets the property name
-    * 
-    * @return The property name
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedField#getName()
-    */
-   public String getPropertyName()
-   {
-      return getName();
-   }
-
-   /**
-    * Gets the abstracted declaring class
-    * 
-    * @return The declaring class
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedField#getDeclaringClass()
-    */
-   public AnnotatedType<?> getDeclaringClass()
-   {
-      return declaringClass;
-   }
-
-   /**
-    * Gets a string representation of the field
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      toString = Names.fieldToString(field) + " on " + getDeclaringClass();
-      return toString;
-   }
-
-   @Override
-   public boolean equals(Object other)
-   {
-      if (other instanceof AnnotatedField)
-      {
-         AnnotatedField<?> that = (AnnotatedField<?>) other;
-         return this.getDeclaringClass().equals(that.getDeclaringClass()) && this.getName().equals(that.getName());
-      }
-      else
-      {
-         return false;
-      }
-   }
-
-
-   @Override
-   public int hashCode()
-   {
-      return getDelegate().hashCode();
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,222 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-import org.jboss.webbeans.introspector.AnnotatedType;
-import org.jboss.webbeans.introspector.AnnotationStore;
-import org.jboss.webbeans.introspector.MethodSignature;
-import org.jboss.webbeans.util.Names;
-import org.jboss.webbeans.util.Reflections;
-import org.jboss.webbeans.util.collections.multi.ListHashMultiMap;
-import org.jboss.webbeans.util.collections.multi.ListMultiMap;
-
-/**
- * Represents an annotated method
- * 
- * This class is immutable and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- */
-public class AnnotatedMethodImpl<T> extends AbstractAnnotatedMember<T, Method> implements AnnotatedMethod<T>
-{
-
-   // The underlying method
-   private final Method method;
-
-   // The abstracted parameters
-   private final List<AnnotatedParameter<?>> parameters;
-   // A mapping from annotation type to parameter abstraction with that
-   // annotation present
-   private final ListMultiMap<Class<? extends Annotation>, AnnotatedParameter<?>> annotatedParameters;
-
-   // The property name
-   private final String propertyName;
-
-   // The abstracted declaring class
-   private final AnnotatedType<?> declaringClass;
-
-   // Cached string representation
-   private String toString;
-   
-   private final MethodSignature signature;
-   
-   public static <T> AnnotatedMethodImpl<T> of(Method method, AnnotatedType<?> declaringClass)
-   {
-      return new AnnotatedMethodImpl<T>(method, declaringClass);
-   }
-
-   /**
-    * Constructor
-    * 
-    * Initializes the superclass with the built annotation map, sets the method
-    * and declaring class abstraction and detects the actual type arguments
-    * 
-    * @param method The underlying method
-    * @param declaringClass The declaring class abstraction
-    */
-   @SuppressWarnings("unchecked")
-   protected AnnotatedMethodImpl(Method method, AnnotatedType<?> declaringClass)
-   {
-      super(AnnotationStore.of(method), method, (Class<T>) method.getReturnType(), method.getGenericReturnType());
-      this.method = method;
-      this.method.setAccessible(true);
-      this.declaringClass = declaringClass;
-      this.parameters = new ArrayList<AnnotatedParameter<?>>();
-      this.annotatedParameters = new ListHashMultiMap<Class<? extends Annotation>, AnnotatedParameter<?>>();
-      
-      for (int i = 0; i < method.getParameterTypes().length; i++)
-      {
-         if (method.getParameterAnnotations()[i].length > 0)
-         {
-            Class<? extends Object> clazz = method.getParameterTypes()[i];
-            Type type = method.getGenericParameterTypes()[i];
-            AnnotatedParameter<?> parameter = AnnotatedParameterImpl.of(method.getParameterAnnotations()[i], (Class<Object>) clazz, type, this);
-            this.parameters.add(parameter);
-            for (Annotation annotation : parameter.getAnnotations())
-            {
-               if (MAPPED_PARAMETER_ANNOTATIONS.contains(annotation.annotationType()))
-               {
-                  annotatedParameters.put(annotation.annotationType(), parameter);
-               }
-            }
-         }
-         else
-         {
-            Class<? extends Object> clazz = method.getParameterTypes()[i];
-            Type type = method.getGenericParameterTypes()[i];
-            AnnotatedParameter<?> parameter = AnnotatedParameterImpl.of(new Annotation[0], (Class<Object>) clazz, type, this);
-            this.parameters.add(parameter);
-         }  
-      }
-
-      String propertyName = Reflections.getPropertyName(getDelegate());
-      if (propertyName == null)
-      {
-         this.propertyName = getName();
-      }
-      else
-      {
-         this.propertyName = propertyName;
-      }
-      this.signature = new MethodSignatureImpl(this);
-   }
-
-   public Method getAnnotatedMethod()
-   {
-      return method;
-   }
-
-   public Method getDelegate()
-   {
-      return method;
-   }
-
-   public List<AnnotatedParameter<?>> getParameters()
-   {
-      return Collections.unmodifiableList(parameters);
-   }
-   
-   public Class<?>[] getParameterTypesAsArray()
-   {
-      return method.getParameterTypes();
-   }
-
-   public List<AnnotatedParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
-   {
-      return Collections.unmodifiableList(annotatedParameters.get(annotationType));
-   }
-
-   @Override
-   public boolean equals(Object other)
-   {
-      if (other instanceof AnnotatedMethod)
-      {
-         AnnotatedMethod<?> that = (AnnotatedMethod<?>) other;
-         return this.getDeclaringClass().equals(that.getDeclaringClass()) && this.getName().equals(that.getName()) && this.getParameters().equals(that.getParameters());
-      }
-      else
-      {
-         return false;
-      }
-   }
-   
-   public boolean isEquivalent(Method method)
-   {
-      return this.getDeclaringClass().isEquivalent(method.getDeclaringClass()) && this.getName().equals(method.getName()) && Arrays.equals(this.getParameterTypesAsArray(), method.getParameterTypes());
-   }
-
-   @Override
-   public int hashCode()
-   {
-      return getDelegate().hashCode();
-   }
-   
-   public T invokeOnInstance(Object instance, Object...parameters) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
-   {
-      Method method = Reflections.lookupMethod(getName(), getParameterTypesAsArray(), instance);
-      @SuppressWarnings("unchecked")
-      T result = (T) method.invoke(instance, parameters);
-      return result;
-   }
-
-   public T invoke(Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
-   {
-      @SuppressWarnings("unchecked")
-      T result = (T) method.invoke(instance, parameters);
-      return result;
-   }
-
-   public String getPropertyName()
-   {
-      return propertyName;
-   }
-
-   public AnnotatedType<?> getDeclaringClass()
-   {
-      return declaringClass;
-   }
-
-   @Override
-   public String toString()
-   {
-      if (toString != null)
-      {
-         return toString;
-      }
-      toString = "Annotated method on class " + getDeclaringClass().getName() + Names.methodToString(method);
-      return toString;
-   }
-   
-   public MethodSignature getSignature()
-   {
-      return signature;
-   }
-   
-}

Deleted: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -1,166 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.introspector.jlr;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Set;
-
-import org.jboss.webbeans.introspector.AnnotatedMember;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-import org.jboss.webbeans.introspector.AnnotationStore;
-
-/**
- * Represents a parameter
- * 
- * This class is immutable and therefore threadsafe
- * 
- * @author Pete Muir
- * 
- * @param <T>
- */
-public class AnnotatedParameterImpl<T> extends AbstractAnnotatedItem<T, Object> implements AnnotatedParameter<T>
-{
-   
-   // The final state
-   private final boolean _final = false;
-   // The static state
-   private final boolean _static = false;
-   private final boolean _public = false;
-   private final AnnotatedMember<?, ?> declaringMember;
-
-   // Cached string representation
-   private String toString;
-   
-   public static <T> AnnotatedParameter<T> of(Annotation[] annotations, Class<T> rawType, Type type, AnnotatedMember<?, ?> declaringMember)
-   {
-      return new AnnotatedParameterImpl<T>(annotations, rawType, type, declaringMember);
-   }
-
-   /**
-    * Constructor
-    * 
-    * @param annotations The annotations array
-    * @param type The type of the parameter
-    */
-   protected AnnotatedParameterImpl(Annotation[] annotations, Class<T> rawType, Type type, AnnotatedMember<?, ?> declaringMember)
-   {
-      super(AnnotationStore.of(annotations, annotations), rawType, type);
-      this.declaringMember = declaringMember;
-   }
-
-   /**
-    * Gets the delegate
-    * 
-    * @return The delegate (null)
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#getDelegate()
-    */
-   public Object getDelegate()
-   {
-      return null;
-   }
-
-   /**
-    * Indicates if the parameter is final
-    * 
-    * @return True if final, false otherwise
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isFinal()
-    */
-   public boolean isFinal()
-   {
-      return _final;
-   }
-
-   /**
-    * Indicates if the parameter is static
-    * 
-    * @return True if static, false otherwise
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#isStatic()
-    */
-   public boolean isStatic()
-   {
-      return _static;
-   }
-   
-   public boolean isPublic()
-   {
-      return _public;
-   }
-
-   /**
-    * Gets the current value
-    * 
-    * @param beanManager The Web Beans manager
-    * @return the value
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedParameter
-    *
-   public T getValue(BeanManager beanManager)
-   {
-      return beanManager.getInstanceByType(getRawType(), getMetaAnnotationsAsArray(BindingType.class));
-   }*/
-
-   /**
-    * Gets the name of the parameter
-    * 
-    * @throws IllegalArgumentException (not supported)
-    * 
-    * @see org.jboss.webbeans.introspector.AnnotatedItem#getName()
-    */
-   public String getName()
-   {
-      throw new IllegalArgumentException("Unable to determine name of parameter");
-   }
-
-   /**
-    * Gets a string representation of the parameter
-    * 
-    * @return A string representation
-    */
-   @Override
-   public String toString()
-   {
-      if (toString == null)
-      {
-         StringBuilder buffer = new StringBuilder();
-         buffer.append("Annotated parameter ");
-         if (_static)
-            buffer.append("static ");
-         if (_final)
-            buffer.append("final ");
-         buffer.append(getRawType().getName());
-         buffer.append(" for operation ");
-         buffer.append(getDeclaringMember().toString());
-         toString = buffer.toString();
-      }
-      return toString;
-   }
-
-   public AnnotatedMember<?, ?> getDeclaringMember()
-   {
-      return declaringMember;
-   }
-   
-   public AnnotatedParameter<T> wrap(Set<Annotation> annotations)
-   {
-      throw new UnsupportedOperationException();
-   }
-   
-}

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/ConstructorSignatureImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/ConstructorSignatureImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/ConstructorSignatureImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -18,7 +18,7 @@
 
 import java.util.Arrays;
 
-import org.jboss.webbeans.introspector.AnnotatedConstructor;
+import org.jboss.webbeans.introspector.WBConstructor;
 import org.jboss.webbeans.introspector.ConstructorSignature;
 import org.jboss.webbeans.introspector.MethodSignature;
 
@@ -27,7 +27,7 @@
    
    private final String[] parameterTypes;
    
-   public ConstructorSignatureImpl(AnnotatedConstructor<?> method)
+   public ConstructorSignatureImpl(WBConstructor<?> method)
    {
       this.parameterTypes = new String[method.getParameters().size()];
       for (int i = 0; i < method.getParameters().size(); i++)

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -19,7 +19,7 @@
 import java.lang.reflect.Method;
 import java.util.Arrays;
 
-import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.WBMethod;
 import org.jboss.webbeans.introspector.MethodSignature;
 
 public class MethodSignatureImpl implements MethodSignature
@@ -30,7 +30,7 @@
    private final String methodName;
    private final String[] parameterTypes;
    
-   public MethodSignatureImpl(AnnotatedMethod<?> method)
+   public MethodSignatureImpl(WBMethod<?> method)
    {
       this.methodName = method.getName();
       this.parameterTypes = new String[method.getParameters().size()];

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,149 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.webbeans.introspector.WBAnnotation;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.resources.ClassTransformer;
+import org.jboss.webbeans.util.collections.multi.SetHashMultiMap;
+import org.jboss.webbeans.util.collections.multi.SetMultiMap;
+
+/**
+ * Represents an annotated annotation
+ * 
+ * This class is immutable and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ */
+public class WBAnnotationImpl<T extends Annotation> extends AbstractWBType<T> implements WBAnnotation<T>
+{
+
+   // The annotated members map (annotation -> member with annotation)
+   private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> annotatedMembers;
+   // The implementation class of the annotation
+   private final Class<T> clazz;
+   // The set of abstracted members
+   private final Set<WBMethod<?>> members;
+   
+   private final Map<String, WBMethod<?>> namedMembers;
+
+   // Cached string representation
+   private String toString;
+   
+   public static <A extends Annotation> WBAnnotation<A> of(Class<A> annotationType, ClassTransformer classTransformer)
+   {
+      return new WBAnnotationImpl<A>(annotationType, classTransformer);
+   }
+
+   /**
+    * Constructor
+    * 
+    * Initializes the superclass with the built annotation map
+    * 
+    * @param annotationType The annotation type
+    */
+   protected WBAnnotationImpl(Class<T> annotationType, ClassTransformer classTransformer)
+   {
+      super(AnnotationStore.of(annotationType), annotationType, annotationType, classTransformer);
+      this.clazz = annotationType;
+      members = new HashSet<WBMethod<?>>();
+      annotatedMembers = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
+      this.namedMembers = new HashMap<String, WBMethod<?>>();
+      for (Method member : clazz.getDeclaredMethods())
+      {
+         WBMethod<?> annotatedMethod = WBMethodImpl.of(member, this);
+         members.add(annotatedMethod);
+         for (Annotation annotation : annotatedMethod.getAnnotations())
+         {
+            annotatedMembers.put(annotation.annotationType(), annotatedMethod);
+         }
+         namedMembers.put(annotatedMethod.getName(), annotatedMethod);
+      }
+   }
+
+   /**
+    * Gets all members of the annotation
+    * 
+    * Initializes the members first if they are null
+    * 
+    * @return The set of abstracted members
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotation#getMembers()
+    */
+   public Set<WBMethod<?>> getMembers()
+   {
+      return Collections.unmodifiableSet(members);
+   }
+
+   /**
+    * Returns the annotated members with a given annotation type
+    * 
+    * If the annotated members are null, they are initialized first.
+    * 
+    * @param annotationType The annotation type to match
+    * @return The set of abstracted members with the given annotation type
+    *         present. An empty set is returned if no matches are found
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotation#getAnnotatedMembers(Class)
+    */
+   public Set<WBMethod<?>> getAnnotatedMembers(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(annotatedMembers.get(annotationType));
+   }
+   
+   public <A> WBMethod<A> getMember(String memberName, WBClass<A> expectedType)
+   {
+      return (WBMethod<A>) namedMembers.get(memberName);
+   }
+   
+   /**
+    * Gets a string representation of the annotation
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      return toString;
+   }
+
+   public Class<T> getDelegate()
+   {
+      return clazz;
+   }
+
+   public WBAnnotation<T> wrap(Set<Annotation> annotations)
+   {
+      throw new UnsupportedOperationException();
+   }
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBAnnotationImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,474 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBConstructor;
+import org.jboss.webbeans.introspector.WBField;
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.introspector.ConstructorSignature;
+import org.jboss.webbeans.introspector.MethodSignature;
+import org.jboss.webbeans.resources.ClassTransformer;
+import org.jboss.webbeans.util.Names;
+import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.collections.multi.SetHashMultiMap;
+import org.jboss.webbeans.util.collections.multi.SetMultiMap;
+
+/**
+ * Represents an annotated class
+ * 
+ * This class is immutable, and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ */
+public class WBClassImpl<T> extends AbstractWBType<T> implements WBClass<T>
+{
+   
+   private static List<Class<?>> NO_ARGUMENTS = Collections.emptyList();
+   
+   // The set of abstracted fields
+   private final Set<WBField<?>> fields;
+   // The map from annotation type to abstracted field with annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBField<?>> annotatedFields;
+   // The map from annotation type to abstracted field with meta-annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBField<?>> metaAnnotatedFields;
+   
+   // The set of abstracted fields
+   private final Set<WBField<?>> declaredFields;
+   private final Map<String, WBField<?>> declaredFieldsByName;
+   // The map from annotation type to abstracted field with annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBField<?>> declaredAnnotatedFields;
+   // The map from annotation type to abstracted field with meta-annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBField<?>> declaredMetaAnnotatedFields;
+   
+   // The set of abstracted methods
+   private final Set<WBMethod<?>> methods;
+   private final Map<MethodSignature, WBMethod<?>> declaredMethodsBySignature;
+   // The map from annotation type to abstracted method with annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> annotatedMethods;
+   // The map from annotation type to method with a parameter with annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> methodsByAnnotatedParameters;
+   
+   // The set of abstracted methods
+   private final Set<WBMethod<?>> declaredMethods;
+   // The map from annotation type to abstracted method with annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> declaredAnnotatedMethods;
+   // The map from annotation type to method with a parameter with annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBMethod<?>> declaredMethodsByAnnotatedParameters;
+   
+   // The set of abstracted constructors
+   private final Set<WBConstructor<T>> constructors;
+   private final Map<ConstructorSignature, WBConstructor<?>> declaredConstructorsBySignature;
+   // The map from annotation type to abstracted constructor with annotation
+   private final SetMultiMap<Class<? extends Annotation>, WBConstructor<T>> annotatedConstructors;
+   // The map from class list to abstracted constructor
+   private final Map<List<Class<?>>, WBConstructor<T>> constructorsByArgumentMap;
+   
+   private final SetMultiMap<Class<? extends Annotation>, WBConstructor<?>> constructorsByAnnotatedParameters;
+   
+   // Cached string representation
+   private String toString;
+   
+   private final boolean _nonStaticMemberClass;
+   private final boolean _abstract;
+   private final boolean _enum;
+
+   
+   public static <T> WBClass<T> of(Class<T> clazz, ClassTransformer classTransformer)
+   {
+      return new WBClassImpl<T>(clazz, clazz, clazz.getAnnotations(), clazz.getDeclaredAnnotations(), classTransformer);
+   }
+
+   private WBClassImpl(Class<T> rawType, Type type, Annotation[] annotations, Annotation[] declaredAnnotations, ClassTransformer classTransformer)
+   {
+      super(AnnotationStore.of(annotations, declaredAnnotations), rawType, type, classTransformer);
+      
+      this.fields = new HashSet<WBField<?>>();
+      this.annotatedFields = new SetHashMultiMap<Class<? extends Annotation>, WBField<?>>();
+      this.metaAnnotatedFields = new SetHashMultiMap<Class<? extends Annotation>, WBField<?>>();
+      this.declaredFields = new HashSet<WBField<?>>();
+      this.declaredFieldsByName = new HashMap<String, WBField<?>>();
+      this.declaredAnnotatedFields = new SetHashMultiMap<Class<? extends Annotation>, WBField<?>>();
+      this.declaredMetaAnnotatedFields = new SetHashMultiMap<Class<? extends Annotation>, WBField<?>>();
+      this._nonStaticMemberClass = Reflections.isNonStaticInnerClass(rawType);
+      this._abstract = Reflections.isAbstract(rawType);
+      this._enum = rawType.isEnum();
+      for (Class<?> c = rawType; c != Object.class && c != null; c = c.getSuperclass())
+      {
+         for (Field field : c.getDeclaredFields())
+         {
+            if (!field.isAccessible())
+            {
+               field.setAccessible(true);
+            }
+            WBField<?> annotatedField = new WBFieldImpl<Object>(field, this);
+            this.fields.add(annotatedField);
+            if (c == rawType)
+            {
+               this.declaredFields.add(annotatedField);
+               this.declaredFieldsByName.put(annotatedField.getName(), annotatedField);
+            }
+            for (Annotation annotation : annotatedField.getAnnotations())
+            {
+               this.annotatedFields.put(annotation.annotationType(), annotatedField);
+               if (c == rawType)
+               {
+                  this.declaredAnnotatedFields.put(annotation.annotationType(), annotatedField);
+               }
+               for (Annotation metaAnnotation : annotation.annotationType().getAnnotations())
+               {
+                  this.metaAnnotatedFields.put(metaAnnotation.annotationType(), annotatedField);
+                  if (c == rawType)
+                  {
+                     this.declaredMetaAnnotatedFields.put(metaAnnotation.annotationType(), annotatedField);
+                  }
+               }
+            }
+            
+         }
+      }
+      
+      this.constructors = new HashSet<WBConstructor<T>>();
+      this.constructorsByArgumentMap = new HashMap<List<Class<?>>, WBConstructor<T>>();
+      this.annotatedConstructors = new SetHashMultiMap<Class<? extends Annotation>, WBConstructor<T>>();
+      this.constructorsByAnnotatedParameters = new SetHashMultiMap<Class<? extends Annotation>, WBConstructor<?>>();
+      this.declaredConstructorsBySignature = new HashMap<ConstructorSignature, WBConstructor<?>>();
+      for (Constructor<?> constructor : rawType.getDeclaredConstructors())
+      {
+         @SuppressWarnings("unchecked")
+         Constructor<T> c = (Constructor<T>) constructor;
+         WBConstructor<T> annotatedConstructor = WBConstructorImpl.of(c, this);
+         if (!constructor.isAccessible())
+         {
+            constructor.setAccessible(true);
+         }
+         this.constructors.add(annotatedConstructor);
+         this.constructorsByArgumentMap.put(Arrays.asList(constructor.getParameterTypes()), annotatedConstructor);
+         
+         this.declaredConstructorsBySignature.put(annotatedConstructor.getSignature(), annotatedConstructor);
+         
+         for (Annotation annotation : annotatedConstructor.getAnnotations())
+         {
+            if (!annotatedConstructors.containsKey(annotation.annotationType()))
+            {
+               annotatedConstructors.put(annotation.annotationType(), new HashSet<WBConstructor<T>>());
+            }
+            annotatedConstructors.get(annotation.annotationType()).add(annotatedConstructor);
+         }
+         
+         for (Class<? extends Annotation> annotationType : WBConstructor.MAPPED_PARAMETER_ANNOTATIONS)
+         {
+            if (annotatedConstructor.getAnnotatedParameters(annotationType).size() > 0)
+            {
+               constructorsByAnnotatedParameters.put(annotationType, annotatedConstructor);
+            }
+         }
+      }
+      
+      this.methods = new HashSet<WBMethod<?>>();
+      this.annotatedMethods = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
+      this.methodsByAnnotatedParameters = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
+      this.declaredMethods = new HashSet<WBMethod<?>>();
+      this.declaredAnnotatedMethods = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
+      this.declaredMethodsByAnnotatedParameters = new SetHashMultiMap<Class<? extends Annotation>, WBMethod<?>>();
+      this.declaredMethodsBySignature = new HashMap<MethodSignature, WBMethod<?>>();
+      for (Class<?> c = rawType; c != Object.class && c != null; c = c.getSuperclass())
+      {
+         for (Method method : c.getDeclaredMethods())
+         {
+            if (!method.isAccessible())
+            {
+               method.setAccessible(true);
+            }
+            
+            WBMethod<?> annotatedMethod = WBMethodImpl.of(method, this);
+            this.methods.add(annotatedMethod);
+            if (c == rawType)
+            {
+               this.declaredMethods.add(annotatedMethod);
+               this.declaredMethodsBySignature.put(annotatedMethod.getSignature(), annotatedMethod);
+            }
+            for (Annotation annotation : annotatedMethod.getAnnotations())
+            {
+               annotatedMethods.put(annotation.annotationType(), annotatedMethod);
+               if (c == rawType)
+               {
+                  this.declaredAnnotatedMethods.put(annotation.annotationType(), annotatedMethod);
+               }
+            }
+            for (Class<? extends Annotation> annotationType : WBMethod.MAPPED_PARAMETER_ANNOTATIONS)
+            {
+               if (annotatedMethod.getAnnotatedParameters(annotationType).size() > 0)
+               {
+                  methodsByAnnotatedParameters.put(annotationType, annotatedMethod);
+                  if (c == rawType)
+                  {
+                     this.declaredMethodsByAnnotatedParameters.put(annotationType, annotatedMethod);
+                  }
+               }
+            }
+         }
+      }
+   }
+   
+   /**
+    * Gets the implementing class
+    * 
+    * @return The class
+    */
+   public Class<? extends T> getAnnotatedClass()
+   {
+      return getRawType();
+   }
+   
+   /**
+    * Gets the delegate (class)
+    * 
+    * @return The class
+    */
+   public Class<T> getDelegate()
+   {
+      return getRawType();
+   }
+   
+   /**
+    * Gets the abstracted fields of the class
+    * 
+    * Initializes the fields if they are null
+    * 
+    * @return The set of abstracted fields
+    */
+   public Set<WBField<?>> getFields()
+   {
+      return Collections.unmodifiableSet(fields);
+   }
+   
+   public Set<WBField<?>> getDeclaredFields()
+   {
+      return Collections.unmodifiableSet(declaredFields);
+   }
+   
+   public <F> WBField<F> getDeclaredField(String fieldName, WBClass<F> expectedType)
+   {
+      return (WBField<F>) declaredFieldsByName.get(fieldName);
+   }
+   
+   public Set<WBField<?>> getDeclaredAnnotatedFields(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(declaredAnnotatedFields.get(annotationType));
+   }
+   
+   /**
+    * Gets the abstracted constructors of the class
+    * 
+    * Initializes the constructors if they are null
+    * 
+    * @return The set of abstracted constructors
+    */
+   public Set<WBConstructor<T>> getConstructors()
+   {
+      return Collections.unmodifiableSet(constructors);
+   }
+   
+   public WBConstructor<T> getDeclaredConstructor(ConstructorSignature signature)
+   {
+      return (WBConstructor<T>) declaredConstructorsBySignature.get(signature);
+   }
+   
+   /**
+    * Gets abstracted fields with requested meta-annotation type present
+    * 
+    * If the meta-annotations map is null, it is initializes. If the annotated
+    * fields are null, it is initialized The meta-annotated field map is then
+    * populated for the requested meta-annotation type and the result is
+    * returned
+    * 
+    * @param metaAnnotationType
+    *           The meta-annotation type to match
+    * @return The set of abstracted fields with meta-annotation present. Returns
+    *         an empty set if no matches are found.
+    */
+   public Set<WBField<?>> getMetaAnnotatedFields(Class<? extends Annotation> metaAnnotationType)
+   {
+      return Collections.unmodifiableSet(metaAnnotatedFields.get(metaAnnotationType));
+   }
+   
+   /**
+    * Gets the abstracted field annotated with a specific annotation type
+    * 
+    * If the fields map is null, initialize it first
+    * 
+    * @param annotationType
+    *           The annotation type to match
+    * @return A set of matching abstracted fields, null if none are found.
+    * 
+    */
+   public Set<WBField<?>> getAnnotatedFields(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(annotatedFields.get(annotationType));
+   }
+   
+   public boolean isNonStaticMemberClass()
+   {
+      return _nonStaticMemberClass;
+   }
+   
+   public boolean isAbstract()
+   {
+      return _abstract;
+   }
+   
+   public boolean isEnum()
+   {
+      return _enum;
+   }
+   
+   /**
+    * Gets the abstracted methods that have a certain annotation type present
+    * 
+    * If the annotated methods map is null, initialize it first
+    * 
+    * @param annotationType
+    *           The annotation type to match
+    * @return A set of matching method abstractions. Returns an empty set if no
+    *         matches are found.
+    * 
+    * @see org.jboss.webbeans.introspector.WBClass#getAnnotatedMethods(Class)
+    */
+   public Set<WBMethod<?>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(annotatedMethods.get(annotationType));
+   }
+   
+   public Set<WBMethod<?>> getDeclaredAnnotatedMethods(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(declaredAnnotatedMethods.get(annotationType));
+   }
+   
+   /**
+    * Gets constructors with given annotation type
+    * 
+    * @param annotationType
+    *           The annotation type to match
+    * @return A set of abstracted constructors with given annotation type. If
+    *         the constructors set is empty, initialize it first. Returns an
+    *         empty set if there are no matches.
+    * 
+    * @see org.jboss.webbeans.introspector.WBClass#getAnnotatedConstructors(Class)
+    */
+   public Set<WBConstructor<T>> getAnnotatedConstructors(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(annotatedConstructors.get(annotationType));
+   }
+   
+   public WBConstructor<T> getNoArgsConstructor()
+   {
+      return constructorsByArgumentMap.get(NO_ARGUMENTS);
+   }
+   
+   public Set<WBMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(methodsByAnnotatedParameters.get(annotationType));
+   }
+   
+   public Set<WBConstructor<?>> getConstructorsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(constructorsByAnnotatedParameters.get(annotationType));
+   }
+   
+   public Set<WBMethod<?>> getDeclaredMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableSet(declaredMethodsByAnnotatedParameters.get(annotationType));
+   }
+   
+   public WBMethod<?> getMethod(Method methodDescriptor)
+   {
+      // TODO Should be cached
+      for (WBMethod<?> annotatedMethod : methods)
+      {
+         if (annotatedMethod.getName().equals(methodDescriptor.getName()) && Arrays.equals(annotatedMethod.getParameterTypesAsArray(), methodDescriptor.getParameterTypes()))
+         {
+            return annotatedMethod;
+         }
+      }
+      return null;
+   }
+   
+   public WBMethod<?> getDeclaredMethod(Method method)
+   {
+      // TODO Should be cached
+      for (WBMethod<?> annotatedMethod : declaredMethods)
+      {
+         if (annotatedMethod.getName().equals(method.getName()) && Arrays.equals(annotatedMethod.getParameterTypesAsArray(), method.getParameterTypes()))
+         {
+            return annotatedMethod;
+         }
+      }
+      return null;
+   }
+   
+   @SuppressWarnings("unchecked")
+   public <M> WBMethod<M> getDeclaredMethod(MethodSignature signature, WBClass<M> expectedReturnType)
+   {
+      return (WBMethod<M>) declaredMethodsBySignature.get(signature);
+   }
+   
+   /**
+    * Gets a string representation of the class
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      toString = "Annotated class " + Names.classToString(getDelegate());
+      return toString;
+   }
+   
+   @SuppressWarnings("unchecked")
+   public <U> WBClass<? extends U> asSubclass(WBClass<U> clazz)
+   {
+      return (WBClass<? extends U>) this;
+   }
+   
+   @SuppressWarnings("unchecked")
+   public T cast(Object object)
+   {
+      return (T) object;
+   }
+   
+}
\ No newline at end of file


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,255 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.jboss.webbeans.BeanManagerImpl;
+import org.jboss.webbeans.introspector.WBConstructor;
+import org.jboss.webbeans.introspector.WBParameter;
+import org.jboss.webbeans.introspector.WBType;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.introspector.ConstructorSignature;
+import org.jboss.webbeans.util.Names;
+import org.jboss.webbeans.util.collections.multi.ListHashMultiMap;
+import org.jboss.webbeans.util.collections.multi.ListMultiMap;
+
+/**
+ * Represents an annotated constructor
+ * 
+ * This class is immutable, and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ */
+public class WBConstructorImpl<T> extends AbstractWBMember<T, Constructor<T>> implements WBConstructor<T>
+{
+   
+   // The underlying constructor
+   private final Constructor<T> constructor;
+
+   // The list of parameter abstractions
+   private final List<WBParameter<?>> parameters;
+   // The mapping of annotation -> parameter abstraction
+   private final ListMultiMap<Class<? extends Annotation>, WBParameter<?>> annotatedParameters;
+
+   // The declaring class abstraction
+   private final WBType<T> declaringClass;
+   
+   private final ConstructorSignature signature;
+
+   // Cached string representation
+   private String toString;
+   
+   public static <T> WBConstructor<T> of(Constructor<T> constructor, WBType<T> declaringClass)
+   {
+      return new WBConstructorImpl<T>(constructor, declaringClass);
+   }
+
+   /**
+    * Constructor
+    * 
+    * Initializes the superclass with the build annotations map
+    * 
+    * @param constructor The constructor method
+    * @param declaringClass The declaring class
+    */
+   protected WBConstructorImpl(Constructor<T> constructor, WBType<T> declaringClass)
+   {
+      super(AnnotationStore.of(constructor), constructor, constructor.getDeclaringClass(), constructor.getDeclaringClass());
+      this.constructor = constructor;
+      this.declaringClass = declaringClass;
+
+      this.parameters = new ArrayList<WBParameter<?>>();
+      annotatedParameters = new ListHashMultiMap<Class<? extends Annotation>, WBParameter<?>>();
+      
+      for (int i = 0; i < constructor.getParameterTypes().length; i++)
+      {
+         if (constructor.getParameterAnnotations()[i].length > 0)
+         {
+            Class<?> clazz = constructor.getParameterTypes()[i];
+            Type type = constructor.getGenericParameterTypes()[i];
+            WBParameter<?> parameter = WBParameterImpl.of(constructor.getParameterAnnotations()[i], clazz, type, this);
+            parameters.add(parameter);
+
+            for (Annotation annotation : parameter.getAnnotations())
+            {
+               annotatedParameters.put(annotation.annotationType(), parameter);
+            }
+         }
+         else
+         {
+            Class<?> clazz = constructor.getParameterTypes()[i];
+            Type type;
+            if (constructor.getGenericParameterTypes().length > i)
+            {
+               type = constructor.getGenericParameterTypes()[i];
+            }
+            else
+            {
+               type = clazz;
+            }
+            WBParameter<?> parameter = WBParameterImpl.of(new Annotation[0], clazz, type, this);
+            parameters.add(parameter);
+
+            for (Annotation annotation : parameter.getAnnotations())
+            {
+               annotatedParameters.put(annotation.annotationType(), parameter);
+            }
+         }
+      }
+      this.signature = new ConstructorSignatureImpl(this);
+   }
+
+   /**
+    * Gets the constructor
+    * 
+    * @return The constructor
+    */
+   public Constructor<T> getAnnotatedConstructor()
+   {
+      return constructor;
+   }
+
+   /**
+    * Gets the delegate (constructor)
+    * 
+    * @return The delegate
+    */
+   @Override
+public Constructor<T> getDelegate()
+   {
+      return constructor;
+   }
+
+   /**
+    * Gets the abstracted parameters
+    * 
+    * If the parameters are null, initalize them first
+    * 
+    * @return A list of annotated parameter abstractions
+    * 
+    * @see org.jboss.webbeans.introspector.WBConstructor#getParameters()
+    */
+   public List<WBParameter<?>> getParameters()
+   {
+      return Collections.unmodifiableList(parameters);
+   }
+
+   /**
+    * Gets parameter abstractions with a given annotation type.
+    * 
+    * If the parameters are null, they are initializes first.
+    * 
+    * @param annotationType The annotation type to match
+    * @return A list of matching parameter abstractions. An empty list is
+    *         returned if there are no matches.
+    * 
+    * @see org.jboss.webbeans.introspector.WBConstructor#getAnnotatedParameters(Class)
+    */
+   public List<WBParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableList(annotatedParameters.get(annotationType));
+   }
+
+   /**
+    * Creates a new instance
+    * 
+    * @param manager The Web Beans manager
+    * @return An instance
+    * @throws InvocationTargetException 
+    * @throws IllegalAccessException 
+    * @throws InstantiationException 
+    * @throws IllegalArgumentException 
+    * 
+    * @see org.jboss.webbeans.introspector.WBConstructor#newInstance(BeanManagerImpl)
+    */
+   public T newInstance(Object... parameters) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
+   {
+      return getDelegate().newInstance(parameters);
+   }
+
+   /**
+    * The overridden equals operation
+    * 
+    * @param other The instance to compare to
+    * @return True if equal, false otherwise
+    */
+   @Override
+   public boolean equals(Object other)
+   {
+
+      if (super.equals(other) && other instanceof WBConstructor)
+      {
+         WBConstructor<?> that = (WBConstructor<?>) other;
+         return this.getDeclaringClass().equals(that.getDeclaringClass()) && this.getParameters().equals(that.getParameters());
+      }
+      return false;
+   }
+
+   /**
+    * The overridden hashcode
+    * 
+    * Gets the hash code from the delegate
+    * 
+    * @return The hash code
+    */
+   @Override
+   public int hashCode()
+   {
+      return getDelegate().hashCode();
+   }
+
+   /**
+    * Gets the declaring class
+    * 
+    * @return The declaring class
+    */
+   public WBType<T> getDeclaringClass()
+   {
+      return declaringClass;
+   }
+
+   /**
+    * Gets a string representation of the constructor
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      toString = "Annotated constructor " + Names.constructorToString(constructor);
+      return toString;
+   }
+   
+   public ConstructorSignature getSignature()
+   {
+      return signature;
+   }
+
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBConstructorImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,156 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.reflect.Field;
+
+import org.jboss.webbeans.introspector.WBField;
+import org.jboss.webbeans.introspector.WBType;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.util.Names;
+import org.jboss.webbeans.util.Reflections;
+
+/**
+ * Represents an annotated field
+ * 
+ * This class is immutable, and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ */
+public class WBFieldImpl<T> extends AbstractWBMember<T, Field> implements WBField<T>
+{
+   
+   // The underlying field
+   private final Field field;
+   // The abstraction of the declaring class
+   private final WBType<?> declaringClass;
+
+   // Cached string representation
+   private String toString;
+
+   /**
+    * Constructor
+    * 
+    * Initializes the superclass with the built annotation map and detects the
+    * type arguments
+    * 
+    * @param field The actual field
+    * @param declaringClass The abstraction of the declaring class
+    */
+   protected WBFieldImpl(Field field, WBType<?> declaringClass)
+   {
+      super(AnnotationStore.of(field), field, (Class<T>) field.getType(), field.getGenericType());
+      this.field = field;
+      field.setAccessible(true);
+      this.declaringClass = declaringClass;
+   }
+
+   /**
+    * Gets the underlying field
+    * 
+    * @return The fields
+    */
+   public Field getAnnotatedField()
+   {
+      return field;
+   }
+
+   public Field getDelegate()
+   {
+      return field;
+   }
+   
+   public void set(Object instance, Object value) throws IllegalArgumentException, IllegalAccessException
+   {
+      field.set(instance, value);
+   }
+   
+   public void setOnInstance(Object instance, Object value) throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException
+   {
+      instance.getClass().getField(getName()).set(instance, value);
+   }
+
+   @SuppressWarnings("unchecked")
+   public T get(Object instance)
+   {
+      return (T) Reflections.getAndWrap(getDelegate(), instance);
+   }
+
+   /**
+    * Gets the property name
+    * 
+    * @return The property name
+    * 
+    * @see org.jboss.webbeans.introspector.WBField#getName()
+    */
+   public String getPropertyName()
+   {
+      return getName();
+   }
+
+   /**
+    * Gets the abstracted declaring class
+    * 
+    * @return The declaring class
+    * 
+    * @see org.jboss.webbeans.introspector.WBField#getDeclaringClass()
+    */
+   public WBType<?> getDeclaringClass()
+   {
+      return declaringClass;
+   }
+
+   /**
+    * Gets a string representation of the field
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      toString = Names.fieldToString(field) + " on " + getDeclaringClass();
+      return toString;
+   }
+
+   @Override
+   public boolean equals(Object other)
+   {
+      if (other instanceof WBField)
+      {
+         WBField<?> that = (WBField<?>) other;
+         return this.getDeclaringClass().equals(that.getDeclaringClass()) && this.getName().equals(that.getName());
+      }
+      else
+      {
+         return false;
+      }
+   }
+
+
+   @Override
+   public int hashCode()
+   {
+      return getDelegate().hashCode();
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBFieldImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java (from rev 2827, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,222 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.introspector.WBParameter;
+import org.jboss.webbeans.introspector.WBType;
+import org.jboss.webbeans.introspector.AnnotationStore;
+import org.jboss.webbeans.introspector.MethodSignature;
+import org.jboss.webbeans.util.Names;
+import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.collections.multi.ListHashMultiMap;
+import org.jboss.webbeans.util.collections.multi.ListMultiMap;
+
+/**
+ * Represents an annotated method
+ * 
+ * This class is immutable and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ */
+public class WBMethodImpl<T> extends AbstractWBMember<T, Method> implements WBMethod<T>
+{
+
+   // The underlying method
+   private final Method method;
+
+   // The abstracted parameters
+   private final List<WBParameter<?>> parameters;
+   // A mapping from annotation type to parameter abstraction with that
+   // annotation present
+   private final ListMultiMap<Class<? extends Annotation>, WBParameter<?>> annotatedParameters;
+
+   // The property name
+   private final String propertyName;
+
+   // The abstracted declaring class
+   private final WBType<?> declaringClass;
+
+   // Cached string representation
+   private String toString;
+   
+   private final MethodSignature signature;
+   
+   public static <T> WBMethodImpl<T> of(Method method, WBType<?> declaringClass)
+   {
+      return new WBMethodImpl<T>(method, declaringClass);
+   }
+
+   /**
+    * Constructor
+    * 
+    * Initializes the superclass with the built annotation map, sets the method
+    * and declaring class abstraction and detects the actual type arguments
+    * 
+    * @param method The underlying method
+    * @param declaringClass The declaring class abstraction
+    */
+   @SuppressWarnings("unchecked")
+   protected WBMethodImpl(Method method, WBType<?> declaringClass)
+   {
+      super(AnnotationStore.of(method), method, (Class<T>) method.getReturnType(), method.getGenericReturnType());
+      this.method = method;
+      this.method.setAccessible(true);
+      this.declaringClass = declaringClass;
+      this.parameters = new ArrayList<WBParameter<?>>();
+      this.annotatedParameters = new ListHashMultiMap<Class<? extends Annotation>, WBParameter<?>>();
+      
+      for (int i = 0; i < method.getParameterTypes().length; i++)
+      {
+         if (method.getParameterAnnotations()[i].length > 0)
+         {
+            Class<? extends Object> clazz = method.getParameterTypes()[i];
+            Type type = method.getGenericParameterTypes()[i];
+            WBParameter<?> parameter = WBParameterImpl.of(method.getParameterAnnotations()[i], (Class<Object>) clazz, type, this);
+            this.parameters.add(parameter);
+            for (Annotation annotation : parameter.getAnnotations())
+            {
+               if (MAPPED_PARAMETER_ANNOTATIONS.contains(annotation.annotationType()))
+               {
+                  annotatedParameters.put(annotation.annotationType(), parameter);
+               }
+            }
+         }
+         else
+         {
+            Class<? extends Object> clazz = method.getParameterTypes()[i];
+            Type type = method.getGenericParameterTypes()[i];
+            WBParameter<?> parameter = WBParameterImpl.of(new Annotation[0], (Class<Object>) clazz, type, this);
+            this.parameters.add(parameter);
+         }  
+      }
+
+      String propertyName = Reflections.getPropertyName(getDelegate());
+      if (propertyName == null)
+      {
+         this.propertyName = getName();
+      }
+      else
+      {
+         this.propertyName = propertyName;
+      }
+      this.signature = new MethodSignatureImpl(this);
+   }
+
+   public Method getAnnotatedMethod()
+   {
+      return method;
+   }
+
+   public Method getDelegate()
+   {
+      return method;
+   }
+
+   public List<WBParameter<?>> getParameters()
+   {
+      return Collections.unmodifiableList(parameters);
+   }
+   
+   public Class<?>[] getParameterTypesAsArray()
+   {
+      return method.getParameterTypes();
+   }
+
+   public List<WBParameter<?>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
+   {
+      return Collections.unmodifiableList(annotatedParameters.get(annotationType));
+   }
+
+   @Override
+   public boolean equals(Object other)
+   {
+      if (other instanceof WBMethod)
+      {
+         WBMethod<?> that = (WBMethod<?>) other;
+         return this.getDeclaringClass().equals(that.getDeclaringClass()) && this.getName().equals(that.getName()) && this.getParameters().equals(that.getParameters());
+      }
+      else
+      {
+         return false;
+      }
+   }
+   
+   public boolean isEquivalent(Method method)
+   {
+      return this.getDeclaringClass().isEquivalent(method.getDeclaringClass()) && this.getName().equals(method.getName()) && Arrays.equals(this.getParameterTypesAsArray(), method.getParameterTypes());
+   }
+
+   @Override
+   public int hashCode()
+   {
+      return getDelegate().hashCode();
+   }
+   
+   public T invokeOnInstance(Object instance, Object...parameters) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
+   {
+      Method method = Reflections.lookupMethod(getName(), getParameterTypesAsArray(), instance);
+      @SuppressWarnings("unchecked")
+      T result = (T) method.invoke(instance, parameters);
+      return result;
+   }
+
+   public T invoke(Object instance, Object... parameters) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
+   {
+      @SuppressWarnings("unchecked")
+      T result = (T) method.invoke(instance, parameters);
+      return result;
+   }
+
+   public String getPropertyName()
+   {
+      return propertyName;
+   }
+
+   public WBType<?> getDeclaringClass()
+   {
+      return declaringClass;
+   }
+
+   @Override
+   public String toString()
+   {
+      if (toString != null)
+      {
+         return toString;
+      }
+      toString = "Annotated method on class " + getDeclaringClass().getName() + Names.methodToString(method);
+      return toString;
+   }
+   
+   public MethodSignature getSignature()
+   {
+      return signature;
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBMethodImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java (from rev 2821, ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java)
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -0,0 +1,166 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.introspector.jlr;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Set;
+
+import org.jboss.webbeans.introspector.WBMember;
+import org.jboss.webbeans.introspector.WBParameter;
+import org.jboss.webbeans.introspector.AnnotationStore;
+
+/**
+ * Represents a parameter
+ * 
+ * This class is immutable and therefore threadsafe
+ * 
+ * @author Pete Muir
+ * 
+ * @param <T>
+ */
+public class WBParameterImpl<T> extends AbstractWBAnnotated<T, Object> implements WBParameter<T>
+{
+   
+   // The final state
+   private final boolean _final = false;
+   // The static state
+   private final boolean _static = false;
+   private final boolean _public = false;
+   private final WBMember<?, ?> declaringMember;
+
+   // Cached string representation
+   private String toString;
+   
+   public static <T> WBParameter<T> of(Annotation[] annotations, Class<T> rawType, Type type, WBMember<?, ?> declaringMember)
+   {
+      return new WBParameterImpl<T>(annotations, rawType, type, declaringMember);
+   }
+
+   /**
+    * Constructor
+    * 
+    * @param annotations The annotations array
+    * @param type The type of the parameter
+    */
+   protected WBParameterImpl(Annotation[] annotations, Class<T> rawType, Type type, WBMember<?, ?> declaringMember)
+   {
+      super(AnnotationStore.of(annotations, annotations), rawType, type);
+      this.declaringMember = declaringMember;
+   }
+
+   /**
+    * Gets the delegate
+    * 
+    * @return The delegate (null)
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#getDelegate()
+    */
+   public Object getDelegate()
+   {
+      return null;
+   }
+
+   /**
+    * Indicates if the parameter is final
+    * 
+    * @return True if final, false otherwise
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isFinal()
+    */
+   public boolean isFinal()
+   {
+      return _final;
+   }
+
+   /**
+    * Indicates if the parameter is static
+    * 
+    * @return True if static, false otherwise
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#isStatic()
+    */
+   public boolean isStatic()
+   {
+      return _static;
+   }
+   
+   public boolean isPublic()
+   {
+      return _public;
+   }
+
+   /**
+    * Gets the current value
+    * 
+    * @param beanManager The Web Beans manager
+    * @return the value
+    * 
+    * @see org.jboss.webbeans.introspector.AnnotatedParameter
+    *
+   public T getValue(BeanManager beanManager)
+   {
+      return beanManager.getInstanceByType(getRawType(), getMetaAnnotationsAsArray(BindingType.class));
+   }*/
+
+   /**
+    * Gets the name of the parameter
+    * 
+    * @throws IllegalArgumentException (not supported)
+    * 
+    * @see org.jboss.webbeans.introspector.WBAnnotated#getName()
+    */
+   public String getName()
+   {
+      throw new IllegalArgumentException("Unable to determine name of parameter");
+   }
+
+   /**
+    * Gets a string representation of the parameter
+    * 
+    * @return A string representation
+    */
+   @Override
+   public String toString()
+   {
+      if (toString == null)
+      {
+         StringBuilder buffer = new StringBuilder();
+         buffer.append("Annotated parameter ");
+         if (_static)
+            buffer.append("static ");
+         if (_final)
+            buffer.append("final ");
+         buffer.append(getRawType().getName());
+         buffer.append(" for operation ");
+         buffer.append(getDeclaringMember().toString());
+         toString = buffer.toString();
+      }
+      return toString;
+   }
+
+   public WBMember<?, ?> getDeclaringMember()
+   {
+      return declaringMember;
+   }
+   
+   public WBParameter<T> wrap(Set<Annotation> annotations)
+   {
+      throw new UnsupportedOperationException();
+   }
+   
+}


Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBParameterImpl.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/AnnotationModel.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -20,7 +20,7 @@
 
 import javax.inject.DefinitionException;
 
-import org.jboss.webbeans.introspector.AnnotatedAnnotation;
+import org.jboss.webbeans.introspector.WBAnnotation;
 import org.jboss.webbeans.resources.ClassTransformer;
 
 /**
@@ -31,7 +31,7 @@
 public abstract class AnnotationModel<T extends Annotation>
 {
    // The underlying annotation
-   private AnnotatedAnnotation<T> annotatedAnnotation;
+   private WBAnnotation<T> annotatedAnnotation;
    // Is the data valid?
    private boolean valid;
 
@@ -106,7 +106,7 @@
     * 
     * @return The annotation
     */
-   protected AnnotatedAnnotation<T> getAnnotatedAnnotation()
+   protected WBAnnotation<T> getAnnotatedAnnotation()
    {
       return annotatedAnnotation;
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/BindingTypeModel.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -25,7 +25,7 @@
 import javax.inject.DefinitionException;
 import javax.inject.ExecutionException;
 
-import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.WBMethod;
 import org.jboss.webbeans.resources.ClassTransformer;
 import org.jboss.webbeans.util.Reflections;
 
@@ -39,7 +39,7 @@
 public class BindingTypeModel<T extends Annotation> extends AnnotationModel<T>
 {
    // The non-binding types
-   private Set<AnnotatedMethod<?>> nonBindingTypes;
+   private Set<WBMethod<?>> nonBindingTypes;
 
    /**
     * Constructor
@@ -67,7 +67,7 @@
     */
    private void checkArrayAndAnnotationValuedMembers()
    {
-      for (AnnotatedMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
+      for (WBMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
       {
          if ((Reflections.isArrayType(annotatedMethod.getRawType()) || Annotation.class.isAssignableFrom(annotatedMethod.getRawType())) && !nonBindingTypes.contains(annotatedMethod))
          {
@@ -104,7 +104,7 @@
     * @return A set of non-binding types, or an empty set if there are none
     *         present
     */
-   public Set<AnnotatedMethod<?>> getNonBindingTypes()
+   public Set<WBMethod<?>> getNonBindingTypes()
    {
       return nonBindingTypes;
    }
@@ -128,7 +128,7 @@
    {
       if (instance.annotationType().equals(getRawType()) && other.annotationType().equals(getRawType()))
       {
-         for (AnnotatedMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
+         for (WBMethod<?> annotatedMethod : getAnnotatedAnnotation().getMembers())
          {
             if (!nonBindingTypes.contains(annotatedMethod))
             {

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/resources/ClassTransformer.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -20,17 +20,17 @@
 import java.util.concurrent.Callable;
 
 import org.jboss.webbeans.bootstrap.api.Service;
-import org.jboss.webbeans.introspector.AnnotatedAnnotation;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.jlr.AnnotatedAnnotationImpl;
-import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
+import org.jboss.webbeans.introspector.WBAnnotation;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.jlr.WBAnnotationImpl;
+import org.jboss.webbeans.introspector.jlr.WBClassImpl;
 import org.jboss.webbeans.util.collections.ConcurrentCache;
 
 public class ClassTransformer implements Service 
 {
    
-   private final ConcurrentCache<Class<?>, AnnotatedClass<?>> classes;
-   private final ConcurrentCache<Class<?>, AnnotatedAnnotation<?>> annotations;
+   private final ConcurrentCache<Class<?>, WBClass<?>> classes;
+   private final ConcurrentCache<Class<?>, WBAnnotation<?>> annotations;
    private final ClassTransformer transformer = this;
    
    /**
@@ -38,31 +38,31 @@
     */
    public ClassTransformer()
    {
-      classes = new ConcurrentCache<Class<?>, AnnotatedClass<?>>();
-      annotations = new ConcurrentCache<Class<?>, AnnotatedAnnotation<?>>();
+      classes = new ConcurrentCache<Class<?>, WBClass<?>>();
+      annotations = new ConcurrentCache<Class<?>, WBAnnotation<?>>();
    }
    
-   public <T> AnnotatedClass<T> classForName(final Class<T> clazz)
+   public <T> WBClass<T> classForName(final Class<T> clazz)
    {
-      return classes.putIfAbsent(clazz, new Callable<AnnotatedClass<T>>()
+      return classes.putIfAbsent(clazz, new Callable<WBClass<T>>()
       {
 
-         public AnnotatedClass<T> call() throws Exception
+         public WBClass<T> call() throws Exception
          {
-            return AnnotatedClassImpl.of(clazz, transformer);
+            return WBClassImpl.of(clazz, transformer);
          }
             
       });
    }
    
-   public <T extends Annotation> AnnotatedAnnotation<T> classForName(final Class<T> clazz)
+   public <T extends Annotation> WBAnnotation<T> classForName(final Class<T> clazz)
    {
-      return annotations.putIfAbsent(clazz, new Callable<AnnotatedAnnotation<T>>()
+      return annotations.putIfAbsent(clazz, new Callable<WBAnnotation<T>>()
       {
 
-         public AnnotatedAnnotation<T> call() throws Exception
+         public WBAnnotation<T> call() throws Exception
          {
-            return AnnotatedAnnotationImpl.of(clazz, transformer);
+            return WBAnnotationImpl.of(clazz, transformer);
          }
             
       });

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -30,8 +30,8 @@
 import org.jboss.webbeans.bean.EnterpriseBean;
 import org.jboss.webbeans.bean.RIBean;
 import org.jboss.webbeans.injection.FieldInjectionPoint;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBField;
 import org.jboss.webbeans.metadata.BindingTypeModel;
 import org.jboss.webbeans.metadata.MetaDataCache;
 
@@ -80,21 +80,21 @@
       }
    }
 
-   public static Set<FieldInjectionPoint<?>> getFieldInjectionPoints(AnnotatedClass<?> annotatedItem, Bean<?> declaringBean)
+   public static Set<FieldInjectionPoint<?>> getFieldInjectionPoints(WBClass<?> annotatedItem, Bean<?> declaringBean)
    {
       Set<FieldInjectionPoint<?>> injectableFields = new HashSet<FieldInjectionPoint<?>>();
-      for (AnnotatedField<?> annotatedField : annotatedItem.getMetaAnnotatedFields(BindingType.class))
+      for (WBField<?> annotatedField : annotatedItem.getMetaAnnotatedFields(BindingType.class))
       {
          addFieldInjectionPoint(annotatedField, injectableFields, declaringBean);
       }
-      for (AnnotatedField<?> annotatedField : annotatedItem.getAnnotatedFields(Decorates.class))
+      for (WBField<?> annotatedField : annotatedItem.getAnnotatedFields(Decorates.class))
       {
          addFieldInjectionPoint(annotatedField, injectableFields, declaringBean);
       }
       return injectableFields;
    }
    
-   private static void addFieldInjectionPoint(AnnotatedField<?> annotatedField, Set<FieldInjectionPoint<?>> injectableFields, Bean<?> declaringBean)
+   private static void addFieldInjectionPoint(WBField<?> annotatedField, Set<FieldInjectionPoint<?>> injectableFields, Bean<?> declaringBean)
    {
       if (!annotatedField.isAnnotationPresent(Produces.class))
       {

Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -9,7 +9,7 @@
 import org.jboss.testharness.impl.packaging.PackagingType;
 import org.jboss.webbeans.bean.EnterpriseBean;
 import org.jboss.webbeans.bean.NewEnterpriseBean;
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.WBAnnotated;
 import org.jboss.webbeans.literal.NewLiteral;
 import org.jboss.webbeans.test.AbstractWebBeansTest;
 import org.testng.annotations.Test;
@@ -54,8 +54,8 @@
    public void testNewBeanHasSameInjectedFieldsAsWrappedBean()
    {
       initNewBean();
-      Set<? extends AnnotatedItem<?, ?>> wrappedBeanInjectionPoints = wrappedEnterpriseBean.getAnnotatedInjectionPoints();
-      Set<? extends AnnotatedItem<?, ?>> newBeanInjectionPoints = newEnterpriseBean.getAnnotatedInjectionPoints();
+      Set<? extends WBAnnotated<?, ?>> wrappedBeanInjectionPoints = wrappedEnterpriseBean.getAnnotatedInjectionPoints();
+      Set<? extends WBAnnotated<?, ?>> newBeanInjectionPoints = newEnterpriseBean.getAnnotatedInjectionPoints();
       assert wrappedBeanInjectionPoints.equals(newBeanInjectionPoints);
    }
    

Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/ClassAnnotatedItemTest.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -9,8 +9,8 @@
 import javax.enterprise.inject.deployment.Production;
 
 import org.jboss.testharness.impl.packaging.Artifact;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.jlr.WBClassImpl;
 import org.jboss.webbeans.resources.ClassTransformer;
 import org.jboss.webbeans.test.AbstractWebBeansTest;
 import org.testng.annotations.Test;
@@ -24,7 +24,7 @@
    @Test
    public void testDeclaredAnnotations()
    {
-      AnnotatedClass<Order> annotatedElement = AnnotatedClassImpl.of(Order.class, transformer);
+      WBClass<Order> annotatedElement = WBClassImpl.of(Order.class, transformer);
       assert annotatedElement.getAnnotations().size() == 1;
       assert annotatedElement.getAnnotation(Production.class) != null;
       assert annotatedElement.getRawType().equals(Order.class);
@@ -33,7 +33,7 @@
    @Test
    public void testMetaAnnotations()
    {
-      AnnotatedClass<Order> annotatedElement = AnnotatedClassImpl.of(Order.class, transformer);
+      WBClass<Order> annotatedElement = WBClassImpl.of(Order.class, transformer);
       Set<Annotation> annotations = annotatedElement.getMetaAnnotations(DeploymentType.class);
       assert annotations.size() == 1;
       Iterator<Annotation> it = annotations.iterator();
@@ -44,10 +44,10 @@
    @Test
    public void testEmpty()
    {
-      AnnotatedClass<Order> annotatedElement = AnnotatedClassImpl.of(Order.class, transformer);
+      WBClass<Order> annotatedElement = WBClassImpl.of(Order.class, transformer);
       assert annotatedElement.getAnnotation(Stereotype.class) == null;
       assert annotatedElement.getMetaAnnotations(Stereotype.class).size() == 0;
-      AnnotatedClass<Antelope> classWithNoAnnotations = AnnotatedClassImpl.of(Antelope.class, transformer);
+      WBClass<Antelope> classWithNoAnnotations = WBClassImpl.of(Antelope.class, transformer);
       assert classWithNoAnnotations.getAnnotations().size() == 0;
    }
    

Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/newsimple/NewSimpleBeanTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/newsimple/NewSimpleBeanTest.java	2009-06-12 22:30:21 UTC (rev 2827)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/newsimple/NewSimpleBeanTest.java	2009-06-12 22:38:33 UTC (rev 2828)
@@ -7,7 +7,7 @@
 import org.jboss.testharness.impl.packaging.Artifact;
 import org.jboss.webbeans.bean.NewSimpleBean;
 import org.jboss.webbeans.bean.SimpleBean;
-import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.WBAnnotated;
 import org.jboss.webbeans.literal.NewLiteral;
 import org.jboss.webbeans.test.AbstractWebBeansTest;
 import org.testng.annotations.Test;
@@ -63,8 +63,8 @@
    public void testNewBeanHasSameInjectedFieldsAsWrappedBean()
    {
       initNewBean();
-      Set<? extends AnnotatedItem<?, ?>> wrappedBeanInjectionPoints = wrappedSimpleBean.getAnnotatedInjectionPoints();
-      Set<? extends AnnotatedItem<?, ?>> newBeanInjectionPoints = newSimpleBean.getAnnotatedInjectionPoints();
+      Set<? extends WBAnnotated<?, ?>> wrappedBeanInjectionPoints = wrappedSimpleBean.getAnnotatedInjectionPoints();
+      Set<? extends WBAnnotated<?, ?>> newBeanInjectionPoints = newSimpleBean.getAnnotatedInjectionPoints();
       assert wrappedBeanInjectionPoints.equals(newBeanInjectionPoints);
    }
    




More information about the weld-commits mailing list