[weld-commits] Weld SVN: r6908 - in core/trunk/impl/src/main: java/org/jboss/weld/bean/builtin and 7 other directories.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Thu Aug 5 09:15:55 EDT 2010


Author: pete.muir at jboss.org
Date: 2010-08-05 09:15:53 -0400 (Thu, 05 Aug 2010)
New Revision: 6908

Added:
   core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Formats.java
Removed:
   core/trunk/impl/src/main/java/org/jboss/weld/util/Names.java
Modified:
   core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/DisposalMethod.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/InterceptorImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/NewManagedBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/NewSessionBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerMethod.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractFacade.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/BeanManagerBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/EventBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InjectionPointBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorFactoryBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/PrincipalBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/UserTransactionBean.java
   core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/Validator.java
   core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java
   core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java
   core/trunk/impl/src/main/resources/org/jboss/weld/messages/validator_en.properties
Log:
WELD-542

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/DecoratorImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -37,10 +37,7 @@
 import javax.enterprise.inject.spi.Decorator;
 import javax.inject.Inject;
 
-import org.jboss.weld.bean.proxy.AbstractDecoratorMethodHandler;
 import org.jboss.weld.bean.proxy.DecoratorProxyFactory;
-import org.jboss.weld.bean.proxy.ProxyFactory;
-import org.jboss.weld.bean.proxy.TargetBeanInstance;
 import org.jboss.weld.bootstrap.BeanDeployerEnvironment;
 import org.jboss.weld.exceptions.DefinitionException;
 import org.jboss.weld.injection.MethodInjectionPoint;
@@ -50,11 +47,11 @@
 import org.jboss.weld.introspector.WeldClass;
 import org.jboss.weld.introspector.WeldConstructor;
 import org.jboss.weld.introspector.WeldMethod;
-import org.jboss.weld.introspector.jlr.WeldClassImpl;
 import org.jboss.weld.introspector.jlr.WeldConstructorImpl;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.resources.ClassTransformer;
 import org.jboss.weld.util.Decorators;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.Reflections;
 
 public class DecoratorImpl<T> extends ManagedBean<T> implements WeldDecorator<T>
@@ -284,4 +281,10 @@
    {
       return decoratedMethodSignatures;
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Decorator [" + getBeanClass().toString() + "] decorates [" + Formats.formatTypes(getDecoratedTypes()) + "] with delegate type [" + Formats.formatType(getDelegateType()) + "] and delegate qualifiers [" + Formats.formatAnnotations(getDelegateQualifiers()) + "]";
+   }
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/DisposalMethod.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/DisposalMethod.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/DisposalMethod.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -268,5 +268,11 @@
    {
       return Collections.emptySet();
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Disposer method [" + getDisposesParameter().getDeclaringCallable() + "]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/InterceptorImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/InterceptorImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/InterceptorImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -37,6 +37,7 @@
 import org.jboss.weld.introspector.WeldClass;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.util.Beans;
+import org.jboss.weld.util.reflection.Formats;
 
 /**
  * @author Marius Bogoevici
@@ -114,4 +115,9 @@
       // Lifecycle callbacks not supported
    }
    
+   @Override
+   public String toString()
+   {
+      return "Interceptor [" + getBeanClass() + " intercepts " +  Formats.formatAnnotations(getInterceptorBindings()) + "]";
+   }
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/ManagedBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -69,6 +69,7 @@
 import org.jboss.weld.serialization.spi.helpers.SerializableContextual;
 import org.jboss.weld.util.AnnotatedTypes;
 import org.jboss.weld.util.Beans;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.Reflections;
 import org.slf4j.cal10n.LocLogger;
 import org.slf4j.ext.XLogger;
@@ -595,5 +596,11 @@
       }
       return instance;
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Managed Bean [" + getBeanClass().toString() + "] with qualifiers [" + Formats.formatAnnotations(getQualifiers()) + "]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/NewManagedBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/NewManagedBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/NewManagedBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -124,4 +124,10 @@
       return false;
    }
    
+   @Override
+   public String toString()
+   {
+      return "@New " + super.toString();
+   }
+   
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/NewSessionBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/NewSessionBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/NewSessionBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -131,4 +131,10 @@
    {
       // No - op
    }
+   
+   @Override
+   public String toString()
+   {
+      return "@New " + super.toString();
+   }
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -35,6 +35,7 @@
 import org.jboss.weld.introspector.WeldField;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.util.AnnotatedTypes;
+import org.jboss.weld.util.reflection.Formats;
 import org.slf4j.cal10n.LocLogger;
 
 /**
@@ -198,5 +199,11 @@
    {
       return false;
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Producer Field [" + Formats.formatType(getWeldAnnotated().getBaseType()) + "] with qualifiers [" + Formats.formatAnnotations(getQualifiers()) + "] declared as [" + getWeldAnnotated() + "]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerMethod.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerMethod.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerMethod.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -41,6 +41,7 @@
 import org.jboss.weld.introspector.WeldParameter;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.util.AnnotatedTypes;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.SecureReflections;
 
 /**
@@ -299,5 +300,11 @@
    {
       return id;
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Producer Method [" + Formats.formatType(getWeldAnnotated().getBaseType()) + "] with qualifiers [" + Formats.formatAnnotations(getQualifiers()) + "] declared as [" + getWeldAnnotated() + "]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/SessionBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -76,6 +76,7 @@
 import org.jboss.weld.serialization.spi.helpers.SerializableContextual;
 import org.jboss.weld.util.AnnotatedTypes;
 import org.jboss.weld.util.Beans;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.HierarchyDiscovery;
 import org.jboss.weld.util.reflection.SecureReflections;
 
@@ -469,5 +470,11 @@
          getBeanManager().getServices().get(EjbServices.class).registerInterceptors(getEjbDescriptor().delegate(), new InterceptorBindingsAdapter(model));
       }
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Session bean [" + getBeanClass() + " with qualifiers [" + Formats.formatAnnotations(getQualifiers()) + "]; local interfaces are [" + Formats.formatBusinessInterfaceDescriptors(getEjbDescriptor().getLocalBusinessInterfaces()) +"]";
+   }
 }
 

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractFacade.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractFacade.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractFacade.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -84,20 +84,8 @@
    {
       return injectionPoint;
    }
-   
 
-   /**
-    * Gets a string representation
-    * 
-    * @return A string representation
-    */
    @Override
-   public String toString()
-   {
-      return "Abstract facade implmentation";
-   }
-
-   @Override
    public boolean equals(Object obj)
    {
       if (obj instanceof AbstractFacade<?, ?>)

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/BeanManagerBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/BeanManagerBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/BeanManagerBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -59,7 +59,7 @@
    @Override
    public String toString()
    {
-      return "Built-in javax.inject.manager.Manager bean";
+      return "Built-in Bean [javax.enterprise.inject.spi.BeanManager] with qualifiers [@Default]";
    }
    
    

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/EventBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/EventBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/EventBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -76,7 +76,7 @@
    @Override
    public String toString()
    {
-      return "Built-in implicit javax.event.Event bean";
+      return "Implicit Bean [javax.enterprise.event.Event] with qualifiers [@Default]";
    }
    
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ExtensionBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -86,5 +86,11 @@
    {
       return ApplicationScoped.class;
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Extension Bean [" + getType().toString() + "] with qualifiers [@Default]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InjectionPointBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InjectionPointBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InjectionPointBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -76,7 +76,7 @@
    @Override
    public String toString()
    {
-      return "Built-in javax.inject.manager.InjectionPoint bean";
+      return "Implicit Bean [javax.enterprise.inject.spi.InjectionPoint] with qualifiers [@Default]";
    }
    
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -76,7 +76,7 @@
    @Override
    public String toString()
    {
-      return "Built-in implicit javax.inject.Instance bean";
+      return "Implicit Bean [javax.enterprise.inject.Instance] with qualifiers [@Default]";
    }
    
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/InstanceImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -41,7 +41,7 @@
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.resolution.ResolvableBuilder;
 import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Names;
+import org.jboss.weld.util.reflection.Formats;
 
 /**
  * Helper implementation for Instance for getting instances
@@ -92,7 +92,7 @@
    @Override
    public String toString()
    {
-      return new StringBuilder().append(Names.toString(getQualifiers())).append(" Instance<").append(getType()).append(">").toString();
+      return Formats.formatAnnotations(getQualifiers()) + " Instance<" + Formats.formatType(getType()) + ">";
    }
    
    private Set<Bean<?>> getBeans()

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -54,17 +54,17 @@
          }
       }
       
-      @Override
-      public String toString()
-      {
-         return "Built-in Validator bean";
-      }
-      
    }
    
    public DefaultValidatorBean(BeanManagerImpl manager)
    {
       super(Validator.class, new ValidatorCallable(manager), manager);
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Built-in Bean [javax.validator.Validator] with qualifiers [@Default]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorFactoryBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorFactoryBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/DefaultValidatorFactoryBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -53,17 +53,17 @@
          }
       }
       
-      @Override
-      public String toString()
-      {
-         return "Built-in ValidatorFactory bean";
-      }
-      
    }
    
    public DefaultValidatorFactoryBean(BeanManagerImpl beanManager)
    {
       super(ValidatorFactory.class, new ValidatorFactoryCallable(beanManager), beanManager);
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Built-in Bean [javax.validator.ValidatorFactory] with qualifiers [@Default]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/EEResourceProducerField.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -56,7 +56,7 @@
       private transient T                instance;
       private final CreationalContext<T> creationalContext;
 
-      public EEResourceCallable(BeanManagerImpl beanManager, ProducerField<?, T> producerField, CreationalContext<T> creationalContext)
+      private EEResourceCallable(BeanManagerImpl beanManager, ProducerField<?, T> producerField, CreationalContext<T> creationalContext)
       {
          super(beanManager);
          this.beanId = producerField.getId();
@@ -86,7 +86,7 @@
       @Override
       public String toString()
       {
-         return beanId;
+         return instance == null ? "null" : instance.toString();
       }
 
    }
@@ -157,5 +157,11 @@
    {
       return true;
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Resource " + super.toString();
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/PrincipalBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/PrincipalBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/PrincipalBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -52,12 +52,6 @@
             throw new IllegalStateException(SECURITY_SERVICES_NOT_AVAILABLE);
          }
       }
-      
-      @Override
-      public String toString()
-      {
-         return "Built-in Principal bean";
-      }
 
    }
 
@@ -65,5 +59,11 @@
    {
       super(Principal.class, new PrincipalCallable(beanManager), beanManager);
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Built-in Bean [java.security.Principal] with qualifiers [@Default]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/UserTransactionBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/UserTransactionBean.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/ee/UserTransactionBean.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -53,17 +53,17 @@
          }
       }
       
-      @Override
-      public String toString()
-      {
-         return "Built-in UserTransaction bean";
-      }
-      
    }
    
    public UserTransactionBean(BeanManagerImpl beanManager)
    {
       super(UserTransaction.class, new UserTransactionCallable(beanManager), beanManager);
    }
+   
+   @Override
+   public String toString()
+   {
+      return "Built-in Bean [javax.transaction.UserTransaction] with qualifiers [@Default]";
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/Validator.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/Validator.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/Validator.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -59,7 +59,6 @@
 import java.lang.reflect.TypeVariable;
 import java.lang.reflect.WildcardType;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -103,8 +102,8 @@
 import org.jboss.weld.metadata.cache.MetaAnnotationStore;
 import org.jboss.weld.serialization.spi.helpers.SerializableContextual;
 import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Names;
 import org.jboss.weld.util.Proxies;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.Reflections;
 import org.slf4j.cal10n.LocLogger;
 
@@ -289,11 +288,11 @@
       Set<?> resolvedBeans = beanManager.getBeanResolver().resolve(beanManager.getBeans(ij));
       if (!isInjectionPointSatisfied(ij, resolvedBeans, beanManager))
       {
-         throw new DeploymentException(INJECTION_POINT_HAS_UNSATISFIED_DEPENDENCIES, ij, Names.toString(bindings), Names.toString(ij.getType()));
+         throw new DeploymentException(INJECTION_POINT_HAS_UNSATISFIED_DEPENDENCIES, ij, Formats.formatAnnotations(bindings), Formats.formatType(ij.getType()));
       }
       if (resolvedBeans.size() > 1 && !ij.isDelegate())
       {
-         throw new DeploymentException(INJECTION_POINT_HAS_AMBIGUOUS_DEPENDENCIES, ij, Arrays.toString(bindings) + "; Possible dependencies: " + resolvedBeans);
+         throw new DeploymentException(INJECTION_POINT_HAS_AMBIGUOUS_DEPENDENCIES, ij, Formats.formatAnnotations(bindings), Formats.formatType(ij.getType()), resolvedBeans);
       }
       // Account for the case this is disabled decorator
       if (!resolvedBeans.isEmpty())

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -94,8 +94,8 @@
 import org.jboss.weld.servlet.ServletApiAbstraction;
 import org.jboss.weld.servlet.api.ServletServices;
 import org.jboss.weld.transaction.spi.TransactionServices;
-import org.jboss.weld.util.Names;
 import org.jboss.weld.util.collections.Arrays2;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.serviceProvider.DefaultServiceLoaderFactory;
 import org.jboss.weld.util.serviceProvider.ServiceLoaderFactory;
 import org.jboss.weld.ws.WSApiAbstraction;
@@ -225,7 +225,7 @@
 
    static
    {
-      loggerFactory().getLogger(VERSION).info(VersionMessage.VERSION, Names.version(WeldBootstrap.class.getPackage()));
+      loggerFactory().getLogger(VERSION).info(VersionMessage.VERSION, Formats.version(WeldBootstrap.class.getPackage()));
    }
 
    // The Bean manager

Modified: core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/event/EventImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -37,8 +37,8 @@
 import org.jboss.weld.literal.DefaultLiteral;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.util.Beans;
-import org.jboss.weld.util.Names;
 import org.jboss.weld.util.Observers;
+import org.jboss.weld.util.reflection.Formats;
 
 /**
  * Implementation of the Event interface
@@ -86,7 +86,7 @@
    @Override
    public String toString()
    {
-      return new StringBuilder().append(Names.toString(getQualifiers())).append(" Event<").append(getType()).append(">").toString();
+      return Formats.formatAnnotations(getQualifiers()) + " Event<" + Formats.formatType(getType()) + ">";
    }
 
    public void fire(T event)

Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -47,9 +47,9 @@
 import org.jboss.weld.introspector.WeldField;
 import org.jboss.weld.introspector.WeldMethod;
 import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Names;
 import org.jboss.weld.util.collections.ArraySetSupplier;
 import org.jboss.weld.util.collections.ImmutableArraySet;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.HierarchyDiscovery;
 import org.jboss.weld.util.reflection.Reflections;
 import org.jboss.weld.util.reflection.SecureReflections;
@@ -579,7 +579,7 @@
    @Override
    public String toString()
    {
-      return Names.toString(this);
+      return Formats.formatModifiers(getJavaClass().getModifiers()) + Formats.formatAnnotations(getAnnotations()) + " class " + getName() + Formats.formatActualTypeArguments(getActualTypeArguments());
    }
 
    public String getSimpleName()

Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldConstructorImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -40,7 +40,7 @@
 import org.jboss.weld.logging.messages.ReflectionMessage;
 import org.jboss.weld.manager.BeanManagerImpl;
 import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Names;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.HierarchyDiscovery;
 import org.jboss.weld.util.reflection.Reflections;
 import org.jboss.weld.util.reflection.SecureReflections;
@@ -293,7 +293,7 @@
    @Override
    public String toString()
    {
-      return Names.toString(this);
+      return "[constructor] " + Formats.addSpaceIfNeeded(Formats.formatAnnotations(getAnnotations())) + Formats.addSpaceIfNeeded(Formats.formatModifiers(getJavaMember().getModifiers())) + getDeclaringType().getName() + Formats.formatAsFormalParameterList(getWeldParameters());
    }
 
    public ConstructorSignature getSignature()

Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldFieldImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -30,7 +30,7 @@
 import org.jboss.weld.introspector.WeldClass;
 import org.jboss.weld.introspector.WeldField;
 import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Names;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.HierarchyDiscovery;
 import org.jboss.weld.util.reflection.SecureReflections;
 
@@ -133,7 +133,7 @@
    @Override
    public String toString()
    {
-      return Names.toString(this);
+      return "[field] " + Formats.addSpaceIfNeeded(Formats.formatAnnotations(getAnnotations())) + Formats.addSpaceIfNeeded(Formats.formatModifiers(getJavaMember().getModifiers())) + getDeclaringType().getName() + "." + getName();
    }
    
    public boolean isGeneric()

Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldMethodImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -37,7 +37,7 @@
 import org.jboss.weld.introspector.WeldParameter;
 import org.jboss.weld.logging.messages.ReflectionMessage;
 import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Names;
+import org.jboss.weld.util.reflection.Formats;
 import org.jboss.weld.util.reflection.HierarchyDiscovery;
 import org.jboss.weld.util.reflection.Reflections;
 import org.jboss.weld.util.reflection.SecureReflections;
@@ -214,7 +214,7 @@
    @Override
    public String toString()
    {
-      return Names.toString(this);
+      return "[method] " + Formats.addSpaceIfNeeded(Formats.formatAnnotations(method.getAnnotations())) + Formats.addSpaceIfNeeded(Formats.formatModifiers(getJavaMember().getModifiers())) + getDeclaringType().getName() + "." + getName() + Formats.formatAsFormalParameterList(getWeldParameters());
    }
 
    public MethodSignature getSignature()

Modified: core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldParameterImpl.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -30,7 +30,6 @@
 import org.jboss.weld.introspector.WeldClass;
 import org.jboss.weld.introspector.WeldParameter;
 import org.jboss.weld.resources.ClassTransformer;
-import org.jboss.weld.util.Names;
 import org.jboss.weld.util.reflection.HierarchyDiscovery;
 
 /**
@@ -140,7 +139,7 @@
    @Override
    public String toString()
    {
-      return Names.toString(this);
+      return "[parameter " + (getPosition() + 1) + "] of "+ getDeclaringWeldCallable().toString();
    }
 
    public AnnotatedCallable<X> getDeclaringCallable()

Deleted: core/trunk/impl/src/main/java/org/jboss/weld/util/Names.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Names.java	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Names.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -1,332 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat, Inc., 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.weld.util;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Member;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.jboss.weld.introspector.WeldCallable;
-import org.jboss.weld.introspector.WeldClass;
-import org.jboss.weld.introspector.WeldConstructor;
-import org.jboss.weld.introspector.WeldField;
-import org.jboss.weld.introspector.WeldMethod;
-import org.jboss.weld.introspector.WeldParameter;
-import org.jboss.weld.util.reflection.Reflections;
-
-/**
- * Utility class to produce friendly names e.g. for debugging
- * 
- * @author Pete Muir
- * @author Nicklas Karlsson
- * 
- */
-public class Names
-{
-   // Pattern for recognizing strings with leading capital letter
-   private static Pattern CAPITAL_LETTERS = Pattern.compile("\\p{Upper}{1}\\p{Lower}*");
-
-   /**
-    * Gets a string representation of the scope type annotation
-    * 
-    * @param scopeType The scope type
-    * @return A string representation
-    */
-   public static String scopeTypeToString(Class<? extends Annotation> scopeType)
-   {
-      StringBuilder result = new StringBuilder();
-      if (scopeType != null)
-      {
-         String scopeName = scopeType.getSimpleName();
-         Matcher matcher = CAPITAL_LETTERS.matcher(scopeName);
-         int i = 0;
-         while (matcher.find())
-         {
-            String name = matcher.group();
-            if (i > 0)
-            {
-               name = name.toLowerCase();
-            }
-            result.append(name).append(" ");
-            i++;
-         }
-      }
-      return result.toString();
-   }
-   
-   public static String toString(Type baseType)
-   {
-      return new StringBuilder().append(Reflections.getRawType(baseType).getSimpleName()).append(toString(Reflections.getActualTypeArguments(baseType))).toString();
-      
-   }
-   
-   public static String toString(WeldClass<?> clazz)
-   {
-      return new StringBuilder().append(modifiersToString(clazz.getJavaClass().getModifiers())).append(toString(clazz.getAnnotations())).append(" class ").append(clazz.getName()).append(toString(clazz.getActualTypeArguments())).toString().trim();
-   }
-
-   public static String toString(WeldField<?, ?> field)
-   {
-      return new StringBuilder().append("[field] ").append(addSpaceIfNeeded(toString(field.getAnnotations()))).append(addSpaceIfNeeded(modifiersToString(field.getJavaMember().getModifiers()))).append(field.getDeclaringType().getName()).append(".").append(field.getName()).toString().trim();
-   }
-   
-   public static String toString(WeldCallable<?, ?, ? extends Member> callable)
-   {
-      if (callable instanceof WeldMethod<?, ?>)
-      {
-         return toString((WeldMethod<?, ?>) callable);
-      }
-      else if (callable instanceof WeldConstructor<?>)
-      {
-         return toString((WeldConstructor<?>) callable);
-      }
-      else
-      {
-         throw new IllegalArgumentException("Unable to produce a toString representation of classes of type " + callable.getClass().getName());
-      }
-   }
-   
-   public static String toString(WeldMethod<?, ?> method)
-   {
-      return new StringBuilder().append("[method] ").append(addSpaceIfNeeded(toString(method.getAnnotations()))).append(addSpaceIfNeeded(modifiersToString(method.getJavaMember().getModifiers()))).append(method.getDeclaringType().getName()).append(".").append(method.getName()).append(parametersToTypeString(method.getWeldParameters())).toString().trim();
-   }
-   
-   public static String toString(WeldConstructor<?> constructor)
-   {
-      return new StringBuilder().append("[constructor] ").append(addSpaceIfNeeded(toString(constructor.getAnnotations()))).append(addSpaceIfNeeded(modifiersToString(constructor.getJavaMember().getModifiers()))).append(constructor.getDeclaringType().getName()).append(parametersToTypeString(constructor.getWeldParameters())).toString().trim();
-   }
-   
-   private static String addSpaceIfNeeded(String string)
-   {
-      if (string.length() > 0)
-      {
-         return new StringBuilder().append(string).append(" ").toString();
-      }
-      else
-      {
-         return string;
-      }
-   }
-   
-   
-   private static String parametersToTypeString(Iterable<? extends WeldParameter<?, ?>> parameters)
-   {
-      StringBuilder stringBuilder = new StringBuilder();
-      stringBuilder.append("(");
-      int i = 0;
-      for (WeldParameter<?, ?> parameter : parameters)
-      {
-         if (i > 0)
-         {
-            stringBuilder.append(", ");
-         }
-         stringBuilder.append(toString(parameter.getBaseType()));
-         i++;
-      }
-      return stringBuilder.append(")").toString();
-   }
-
-   public static String toString(WeldParameter<?, ?> parameter)
-   {
-      return new StringBuilder().append("[parameter ").append(parameter.getPosition() + 1).append("] of ").append(toString(parameter.getDeclaringWeldCallable())).toString();
-   }
-
-   private static String modifiersToString(int modifiers)
-   {
-      return iterableToString(parseModifiers(modifiers), " ");
-   }
-
-   private static String iterableToString(Iterable<?> items, String delimiter)
-   {
-      StringBuilder stringBuilder = new StringBuilder();
-      int i = 0;
-      for (Object item : items)
-      {
-         if (i > 0)
-         {
-            stringBuilder.append(delimiter);
-         }
-         stringBuilder.append(item);
-         i++;
-      }
-      return stringBuilder.toString();
-   }
-
-   /**
-    * Parses a reflection modifier to a list of string
-    * 
-    * @param modifier The modifier to parse
-    * @return The resulting string list
-    */
-   private static List<String> parseModifiers(int modifier)
-   {
-      List<String> modifiers = new ArrayList<String>();
-      if (Modifier.isPrivate(modifier))
-      {
-         modifiers.add("private");
-      }
-      if (Modifier.isProtected(modifier))
-      {
-         modifiers.add("protected");
-      }
-      if (Modifier.isPublic(modifier))
-      {
-         modifiers.add("public");
-      }
-      if (Modifier.isAbstract(modifier))
-      {
-         modifiers.add("abstract");
-      }
-      if (Modifier.isFinal(modifier))
-      {
-         modifiers.add("final");
-      }
-      if (Modifier.isNative(modifier))
-      {
-         modifiers.add("native");
-      }
-      if (Modifier.isStatic(modifier))
-      {
-         modifiers.add("static");
-      }
-      if (Modifier.isStrict(modifier))
-      {
-         modifiers.add("strict");
-      }
-      if (Modifier.isSynchronized(modifier))
-      {
-         modifiers.add("synchronized");
-      }
-      if (Modifier.isTransient(modifier))
-      {
-         modifiers.add("transient");
-      }
-      if (Modifier.isVolatile(modifier))
-      {
-         modifiers.add("volatile");
-      }
-      if (Modifier.isInterface(modifier))
-      {
-         modifiers.add("interface");
-      }
-      return modifiers;
-   }
-
-   public static String toString(Type[] actualTypeArguments)
-   {
-      if (actualTypeArguments.length == 0)
-      {
-         return "";
-      }
-      StringBuilder buffer = new StringBuilder();
-      int i = 0;
-      buffer.append("<");
-      for (Type type : actualTypeArguments)
-      {
-         if (i > 0)
-         {
-            buffer.append(", ");
-         }
-         if (type instanceof Class<?>)
-         {
-            buffer.append(((Class<?>) type).getSimpleName());
-         }
-         else
-         {
-            buffer.append(type.toString());
-         }
-         i++;
-      }
-      buffer.append(">");
-      return buffer.toString();
-   }
-
-   public static String toString(Iterable<Annotation> annotations)
-   {
-      StringBuilder builder = new StringBuilder();
-      for (Annotation annotation : annotations)
-      {
-         builder.append(" ");
-         builder.append("@").append(annotation.annotationType().getSimpleName());
-      }
-      return builder.toString().trim();
-   }
-
-   /**
-    * Gets a string representation from an array of annotations
-    * 
-    * @param annotations The annotations
-    * @return The string representation
-    */
-   public static String toString(Annotation[] annotations)
-   {
-      return toString(Arrays.asList(annotations));
-   }
-
-   public static String version(Package pkg)
-   {
-      if (pkg == null)
-      {
-         throw new IllegalArgumentException("Package can not be null");
-      }
-      else
-      {
-         return version(pkg.getImplementationVersion());
-      }
-   }
-
-   public static String version(String version)
-   {
-      if (version != null)
-      {
-         StringBuilder builder = new StringBuilder();
-         if (version.indexOf(".") > 0)
-         {
-            builder.append(version.substring(0, version.indexOf("."))).append(".");
-            version = version.substring(version.indexOf(".") + 1);
-         }
-         if (version.indexOf(".") > 0)
-         {
-            builder.append(version.substring(0, version.indexOf("."))).append(".");
-            version = version.substring(version.indexOf(".") + 1);
-         }
-         if (version.indexOf("-") > 0)
-         {
-            builder.append(version.substring(0, version.indexOf("-"))).append(" (");
-            builder.append(version.substring(version.indexOf("-") + 1)).append(")");
-         }
-         else if (version.indexOf(".") > 0)
-         {
-            builder.append(version.substring(0, version.indexOf("."))).append(" (");
-            builder.append(version.substring(version.indexOf(".") + 1)).append(")");
-         }
-         else
-         {
-            builder.append(version);
-         }
-         return builder.toString();
-      }
-      return "SNAPSHOT";
-   }
-
-}

Copied: core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Formats.java (from rev 6906, core/trunk/impl/src/main/java/org/jboss/weld/util/Names.java)
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Formats.java	                        (rev 0)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/reflection/Formats.java	2010-08-05 13:15:53 UTC (rev 6908)
@@ -0,0 +1,343 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat, Inc., 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.weld.util.reflection;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.weld.ejb.spi.BusinessInterfaceDescriptor;
+import org.jboss.weld.introspector.WeldParameter;
+
+/**
+ * Utility class to produce friendly names e.g. for debugging
+ * 
+ * @author Pete Muir
+ * @author Nicklas Karlsson
+ * 
+ */
+public class Formats
+{
+
+   /**
+    * A transformation from one object to a String.
+    * 
+    * @param <F> the type of the function input
+    */
+   private interface Function<F>
+   {
+      /**
+       * Applies the function to an object of type {@code F}, resulting in an
+       * object of type String.
+       * 
+       * @param from the source object
+       * @param position the position in the list the object is at
+       * @return the resulting object
+       */
+      String apply(F from, int position);
+
+   }
+
+   private static final Function<?> SPACE_DELIMITER_FUNCTION = new Function<Object>()
+   {
+
+      public String apply(Object from, int position)
+      {
+         if (position > 0)
+         {
+            return " " + (from == null ? "null" : from.toString());
+         }
+         else
+         {
+            return from == null ? "null" : from.toString();
+         }
+      }
+   };
+
+   private static final Function<?> COMMA_DELIMITER_FUNCTION = new Function<Object>()
+   {
+
+      public String apply(Object from, int position)
+      {
+         if (position > 0)
+         {
+            return ", " + (from == null ? "null" : from.toString());
+         }
+         else
+         {
+            return from == null ? "null" : from.toString();
+         }
+      }
+   };
+   
+   private static final Function<Annotation> ANNOTATION_LIST_FUNCTION = new Function<Annotation>()
+   {
+      
+      public String apply(Annotation from, int position)
+      {
+         return spaceDelimiterFunction().apply("@" + from.annotationType().getSimpleName(), position);
+      }
+      
+   };
+
+   @SuppressWarnings("unchecked")
+   private static <T> Function<T> spaceDelimiterFunction()
+   {
+      return (Function<T>) SPACE_DELIMITER_FUNCTION;
+   }
+
+   @SuppressWarnings("unchecked")
+   private static <T> Function<T> commaDelimiterFunction()
+   {
+      return (Function<T>) COMMA_DELIMITER_FUNCTION;
+   }
+
+   public static String formatType(Type baseType)
+   {
+      return Reflections.getRawType(baseType).getSimpleName() + formatActualTypeArguments(Reflections.getActualTypeArguments(baseType));
+   }
+
+   public static String formatTypes(Iterable<? extends Type> baseTypes)
+   {
+      return formatIterable(baseTypes, new Function<Type>()
+      {
+
+         public String apply(Type from, int position)
+         {
+            return commaDelimiterFunction().apply(formatType(from), position);
+         }
+
+      });
+   }
+   
+   public static String formatBusinessInterfaceDescriptors(Iterable<? extends BusinessInterfaceDescriptor<?>> businessInterfaceDescriptors)
+   {
+      return formatIterable(businessInterfaceDescriptors, new Function<BusinessInterfaceDescriptor<?>>()
+      {
+
+         public String apply(BusinessInterfaceDescriptor<?> from, int position)
+         {
+            return commaDelimiterFunction().apply(formatType(from.getInterface()), position);
+         }
+
+      });
+   }
+
+   public static String addSpaceIfNeeded(String string)
+   {
+      if (string.length() > 0)
+      {
+         return string + " ";
+      }
+      else
+      {
+         return string;
+      }
+   }
+
+   public static String formatAsFormalParameterList(Iterable<? extends WeldParameter<?, ?>> parameters)
+   {
+      return "(" + formatIterable(parameters, new Function<WeldParameter<?, ?>>()
+      {
+
+         public String apply(WeldParameter<?, ?> from, int position)
+         {
+            return commaDelimiterFunction().apply(formatType(from.getBaseType()), position);
+         }
+
+      }) + ")";
+   }
+
+   public static String formatModifiers(int modifiers)
+   {
+      return formatIterable(parseModifiers(modifiers), spaceDelimiterFunction());
+   }
+
+   private static <F> String formatIterable(Iterable<? extends F> items, Function<F> function)
+   {
+      StringBuilder stringBuilder = new StringBuilder();
+      int i = 0;
+      for (F item : items)
+      {
+         stringBuilder.append(function.apply(item, i));
+         i++;
+      }
+      return stringBuilder.toString();
+   }
+
+   private static <F> String formatIterable(F[] items, Function<F> function)
+   {
+      StringBuilder stringBuilder = new StringBuilder();
+      int i = 0;
+      for (F item : items)
+      {
+         stringBuilder.append(function.apply(item, i));
+         i++;
+      }
+      return stringBuilder.toString();
+   }
+
+   /**
+    * Parses a reflection modifier to a list of string
+    * 
+    * @param modifiers The modifier to parse
+    * @return The resulting string list
+    */
+   private static List<String> parseModifiers(int modifiers)
+   {
+      List<String> result = new ArrayList<String>();
+      if (Modifier.isPrivate(modifiers))
+      {
+         result.add("private");
+      }
+      if (Modifier.isProtected(modifiers))
+      {
+         result.add("protected");
+      }
+      if (Modifier.isPublic(modifiers))
+      {
+         result.add("public");
+      }
+      if (Modifier.isAbstract(modifiers))
+      {
+         result.add("abstract");
+      }
+      if (Modifier.isFinal(modifiers))
+      {
+         result.add("final");
+      }
+      if (Modifier.isNative(modifiers))
+      {
+         result.add("native");
+      }
+      if (Modifier.isStatic(modifiers))
+      {
+         result.add("static");
+      }
+      if (Modifier.isStrict(modifiers))
+      {
+         result.add("strict");
+      }
+      if (Modifier.isSynchronized(modifiers))
+      {
+         result.add("synchronized");
+      }
+      if (Modifier.isTransient(modifiers))
+      {
+         result.add("transient");
+      }
+      if (Modifier.isVolatile(modifiers))
+      {
+         result.add("volatile");
+      }
+      if (Modifier.isInterface(modifiers))
+      {
+         result.add("interface");
+      }
+      return result;
+   }
+
+   public static String formatActualTypeArguments(Type[] actualTypeArguments)
+   {
+      return wrapIfNeccessary(formatIterable(actualTypeArguments, new Function<Type>()
+      {
+
+         public String apply(Type from, int position)
+         {
+            return commaDelimiterFunction().apply(formatType(from), position);
+         }
+         
+      }), "<", ">");
+   }
+   
+   public static String wrapIfNeccessary(String string, String prepend, String append)
+   {
+      if (string != null && string.length() > 0)
+      {
+         return prepend + string + append;
+      }
+      else
+      {
+         return string;
+      }
+   }
+
+   public static String formatAnnotations(Iterable<Annotation> annotations)
+   {
+      return formatIterable(annotations, ANNOTATION_LIST_FUNCTION);
+   }
+
+   /**
+    * Gets a string representation from an array of annotations
+    * 
+    * @param annotations The annotations
+    * @return The string representation
+    */
+   public static String formatAnnotations(Annotation[] annotations)
+   {
+      return formatIterable(annotations, ANNOTATION_LIST_FUNCTION);
+   }
+
+   public static String version(Package pkg)
+   {
+      if (pkg == null)
+      {
+         throw new IllegalArgumentException("Package can not be null");
+      }
+      else
+      {
+         return version(pkg.getImplementationVersion());
+      }
+   }
+
+   public static String version(String version)
+   {
+      if (version != null)
+      {
+         StringBuilder builder = new StringBuilder();
+         if (version.indexOf(".") > 0)
+         {
+            builder.append(version.substring(0, version.indexOf("."))).append(".");
+            version = version.substring(version.indexOf(".") + 1);
+         }
+         if (version.indexOf(".") > 0)
+         {
+            builder.append(version.substring(0, version.indexOf("."))).append(".");
+            version = version.substring(version.indexOf(".") + 1);
+         }
+         if (version.indexOf("-") > 0)
+         {
+            builder.append(version.substring(0, version.indexOf("-"))).append(" (");
+            builder.append(version.substring(version.indexOf("-") + 1)).append(")");
+         }
+         else if (version.indexOf(".") > 0)
+         {
+            builder.append(version.substring(0, version.indexOf("."))).append(" (");
+            builder.append(version.substring(version.indexOf(".") + 1)).append(")");
+         }
+         else
+         {
+            builder.append(version);
+         }
+         return builder.toString();
+      }
+      return "SNAPSHOT";
+   }
+
+}

Modified: core/trunk/impl/src/main/resources/org/jboss/weld/messages/validator_en.properties
===================================================================
--- core/trunk/impl/src/main/resources/org/jboss/weld/messages/validator_en.properties	2010-08-05 09:18:23 UTC (rev 6907)
+++ core/trunk/impl/src/main/resources/org/jboss/weld/messages/validator_en.properties	2010-08-05 13:15:53 UTC (rev 6908)
@@ -6,7 +6,7 @@
 INJECTION_INTO_NON_DEPENDENT_BEAN=Cannot inject {0} in a non @Dependent scoped bean
 INJECTION_POINT_WITH_TYPE_VARIABLE=Cannot declare an injection point with a type variable: {0}
 INJECTION_POINT_HAS_UNSATISFIED_DEPENDENCIES=Unsatisfied dependencies for type [{2}] with qualifiers [{1}] at injection point [{0}]
-INJECTION_POINT_HAS_AMBIGUOUS_DEPENDENCIES=Injection point has ambiguous dependencies. Injection point: {0}; Qualifiers: {1}
+INJECTION_POINT_HAS_AMBIGUOUS_DEPENDENCIES=Ambiguous dependencies for type [{2}] with qualifiers [{1}] at injection point [{0}]. Possible dependencies [{3}]
 INJECTION_POINT_HAS_NON_PROXYABLE_DEPENDENCIES=The injection point {0} has non-proxyable dependencies
 INJECTION_POINT_HAS_NULLABLE_DEPENDENCIES=Injection point {0} has nullable dependencies
 NON_SERIALIZABLE_BEAN_INJECTED_INTO_PASSIVATING_BEAN=The bean {0} declares passivating scope but the producer returned a non-serializable bean for injection:  {1}



More information about the weld-commits mailing list