[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...

Gavin King gavin.king at jboss.com
Fri Jul 21 14:56:07 EDT 2006


  User: gavin   
  Date: 06/07/21 14:56:07

  Modified:    src/main/org/jboss/seam/util   Reflections.java Strings.java
  Log:
  improve java reflection's stupid messages
  
  Revision  Changes    Path
  1.6       +19 -1     jboss-seam/src/main/org/jboss/seam/util/Reflections.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Reflections.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Reflections.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- Reflections.java	2 Jul 2006 20:31:52 -0000	1.5
  +++ Reflections.java	21 Jul 2006 18:56:07 -0000	1.6
  @@ -1,4 +1,4 @@
  -//$Id: Reflections.java,v 1.5 2006/07/02 20:31:52 gavin Exp $
  +//$Id: Reflections.java,v 1.6 2006/07/21 18:56:07 gavin Exp $
   package org.jboss.seam.util;
   
   import java.beans.Introspector;
  @@ -15,6 +15,14 @@
         {
            return method.invoke( target, args );
         }
  +      catch (IllegalArgumentException iae)
  +      {
  +         throw new IllegalArgumentException( 
  +               "Could not invoke method by reflection: " + toString(method) + 
  +               " with parameters: (" + Strings.toClassNameString(", ", args) + ')', 
  +               iae
  +            );
  +      }
         catch (InvocationTargetException ite)
         {
            if ( ite.getCause() instanceof Exception )
  @@ -48,6 +56,16 @@
         }
      }
      
  +   private static String toString(Method method)
  +   {
  +      return Strings.unqualify( method.getClass().getName() ) + 
  +            '.' + 
  +            method.getName() + 
  +            '(' + 
  +            Strings.toString( ", ", method.getParameterTypes() ) + 
  +            ')';
  +   }
  +   
      public static Class classForName(String name) throws ClassNotFoundException
      {
         try 
  
  
  
  1.11      +137 -121  jboss-seam/src/main/org/jboss/seam/util/Strings.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Strings.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Strings.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -b -r1.10 -r1.11
  --- Strings.java	15 Apr 2006 21:57:37 -0000	1.10
  +++ Strings.java	21 Jul 2006 18:56:07 -0000	1.11
  @@ -15,7 +15,7 @@
   
   /**
    * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  - * @version $Revision: 1.10 $
  + * @version $Revision: 1.11 $
    */
   public class Strings
   {
  @@ -87,23 +87,39 @@
      public static String toString(String sep, Object... objects)
      {
         StringBuilder builder = new StringBuilder();
  -      for (int i=0; i<objects.length; i++)
  +      for (Object object: objects)
         {
  -         builder.append( objects[i].toString() );
  -         if (i<objects.length-1) builder.append(sep);
  +         builder.append(sep).append(object);
         }
  -      return builder.toString();
  +      return builder.substring(2);
      }
      
  -   public static String toString(Class... classes)
  +   public static String toClassNameString(String sep, Object... objects)
      {
         StringBuilder builder = new StringBuilder();
  -      for (int i=0; i<classes.length; i++)
  +      for (Object object: objects)
  +      {
  +         builder.append(sep);
  +         if (object==null)
         {
  -         builder.append( classes[i].getName() );
  -         if (i<classes.length-1) builder.append(" ");
  +            builder.append("null");
         }
  -      return builder.toString();
  +         else
  +         {
  +            builder.append( object.getClass().getName() );
  +         }
  +      }
  +      return builder.substring(2);
  +   }
  +   
  +   public static String toString(String sep, Class... classes)
  +   {
  +      StringBuilder builder = new StringBuilder();
  +      for (Class clazz: classes)
  +      {
  +         builder.append(sep).append( clazz.getName() );
  +      }
  +      return builder.substring(2);
      }
      
      public static String toString(InputStream in) throws IOException {
  
  
  



More information about the jboss-cvs-commits mailing list