[jboss-cvs] JBossAS SVN: r85902 - projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 16 07:36:23 EDT 2009


Author: stalep
Date: 2009-03-16 07:36:23 -0400 (Mon, 16 Mar 2009)
New Revision: 85902

Modified:
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
   projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistUtil.java
Log:
[JBREFLECT-49]
fixed bug in JavassistUtil. tests are passing now.

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2009-03-16 11:36:12 UTC (rev 85901)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2009-03-16 11:36:23 UTC (rev 85902)
@@ -37,11 +37,17 @@
 import org.jboss.reflect.plugins.TypeInfoAttachments;
 import org.jboss.reflect.plugins.ValueConvertor;
 import org.jboss.reflect.spi.AnnotationValue;
+import org.jboss.reflect.spi.Body;
 import org.jboss.reflect.spi.ClassInfo;
 import org.jboss.reflect.spi.ConstructorInfo;
 import org.jboss.reflect.spi.FieldInfo;
 import org.jboss.reflect.spi.InterfaceInfo;
 import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.reflect.spi.ModifierInfo;
+import org.jboss.reflect.spi.MutableClassInfo;
+import org.jboss.reflect.spi.MutableConstructorInfo;
+import org.jboss.reflect.spi.MutableFieldInfo;
+import org.jboss.reflect.spi.MutableMethodInfo;
 import org.jboss.reflect.spi.PackageInfo;
 import org.jboss.reflect.spi.TypeInfo;
 import org.jboss.reflect.spi.TypeInfoFactory;
@@ -53,7 +59,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision$
  */
-public class JavassistTypeInfo extends JavassistInheritableAnnotationHolder implements ClassInfo, InterfaceInfo
+public class JavassistTypeInfo extends JavassistInheritableAnnotationHolder implements MutableClassInfo, InterfaceInfo
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = -5072033691434335775L;
@@ -157,6 +163,9 @@
    @Deprecated
    public Class<? extends Object> getType()
    {
+      if(clazz == null)
+         clazz = JavassistUtil.ctClassToClass(ctClass);
+      
       return clazz;
    }
 
@@ -707,4 +716,127 @@
    {
       return ctClass;
    }
+
+   
+   public void addConstructor(MutableConstructorInfo mci)
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   public void addField(MutableFieldInfo mfi)
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   public void addMethod(MutableMethodInfo mmi)
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   public MutableConstructorInfo createMutableConstructor(Body body)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableConstructorInfo createMutableConstructor(ModifierInfo modifier, String[] parameters,
+         String[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableConstructorInfo createMutableConstructor(ModifierInfo modifier, ClassInfo[] parameters,
+         ClassInfo[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableConstructorInfo createMutableConstructor(ModifierInfo modifier, Body body, String[] parameters,
+         String[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableConstructorInfo createMutableConstructor(ModifierInfo modifier, Body body, ClassInfo[] parameters,
+         ClassInfo[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableFieldInfo createMutableField(ModifierInfo modifier, String type)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableFieldInfo createMutableField(ModifierInfo modifier, ClassInfo type)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableMethodInfo createMutableMethod(Body body)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableMethodInfo createMutableMethod(ModifierInfo modifier, String name, String[] parameters,
+         String[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableMethodInfo createMutableMethod(ModifierInfo modifier, String name, ClassInfo[] parameters,
+         ClassInfo[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableMethodInfo createMutableMethod(ModifierInfo modifier, String name, Body body, String[] parameters,
+         String[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public MutableMethodInfo createMutableMethod(ModifierInfo modifier, String name, Body body, ClassInfo[] parameters,
+         ClassInfo[] exceptions)
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   public void removeConstructor(MutableConstructorInfo mci)
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   public void removeField(MutableFieldInfo mfi)
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   public void removeMethod(MutableMethodInfo mmi)
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   public byte[] toByteCode()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
 }

Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistUtil.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistUtil.java	2009-03-16 11:36:12 UTC (rev 85901)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/javassist/JavassistUtil.java	2009-03-16 11:36:23 UTC (rev 85902)
@@ -28,6 +28,7 @@
 import javassist.ClassPool;
 import javassist.CtClass;
 import javassist.CtPrimitiveType;
+import javassist.NotFoundException;
 
 /**
  * A JavassistUtil.
@@ -65,6 +66,8 @@
 
       loadAndDisplayClass("int");
       loadAndDisplayClass("byte[][][]");
+      loadAndDisplayClass("java.lang.String[][]");
+      loadAndDisplayClass("java.lang.String[][][]");
       loadAndDisplayClass("org.jboss.reflect.plugins.javassist.JavassistUtil[]");
    }
    
@@ -84,16 +87,20 @@
       return ctClassToClass(pool.get(name));
    }
 
-   public static Class<?> ctClassToClass(CtClass ct) throws Exception
+   public static Class<?> ctClassToClass(CtClass ct)
    {
+      try
+      {
       if (ct.isArray())
       {
          int dim = 0;
-         while (ct.getComponentType() != null)
-         {
-            dim++;
-            ct = ct.getComponentType();
-         }
+        
+            while (ct.getComponentType() != null)
+            {
+               dim++;
+               ct = ct.getComponentType();
+            }
+        
          if (ct.isPrimitive())
          {
             StringBuilder sb = new StringBuilder();
@@ -114,13 +121,27 @@
          }
          else
          {
-            return Array.newInstance(ctClassToClass(ct), dim).getClass();
+            return Array.newInstance(ctClassToClass(ct), new int[dim]).getClass();
          }
       }
       else
       {
-         return loader.loadClass(ct.getName());
+         
+            return loader.loadClass(ct.getName());
+         
+         
       }
+      }
+      catch (NotFoundException e)
+      {
+         e.printStackTrace();
+         return null;
+      }
+      catch (ClassNotFoundException e)
+      {
+         e.printStackTrace();
+         return null;
+      }
    }
 
 }




More information about the jboss-cvs-commits mailing list