]> source.dussan.org Git - javassist.git/commitdiff
reformatting.
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Thu, 16 Feb 2006 14:42:22 +0000 (14:42 +0000)
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Thu, 16 Feb 2006 14:42:22 +0000 (14:42 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@248 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/CtClassType.java
src/main/javassist/expr/NewExpr.java
src/main/javassist/util/proxy/ProxyFactory.java

index 3902a3bd86a52448218a597f0489eb0413fdd26c..d48306762e731b1e4d36e774f83bbbae0867c87b 100644 (file)
@@ -422,7 +422,9 @@ class CtClassType extends CtClass {
     }
 
     static Object[][] toAnnotationType(ClassPool cp, ParameterAnnotationsAttribute a1,
-                                     ParameterAnnotationsAttribute a2) throws ClassNotFoundException {
+                                       ParameterAnnotationsAttribute a2)
+        throws ClassNotFoundException
+    {
         int numParameters = 0;
         if (a1 != null) 
             numParameters = a1.numParameters();
@@ -454,6 +456,7 @@ class CtClassType extends CtClass {
                 anno2 = a2.getAnnotations()[i];
                 size2 = anno2.length;
             }
+
             result[i] = new Object[size1 + size2];
             for (int j = 0; j < size1; ++j)
                result[i][j] = anno1[j].toAnnotationType(cl, cp);
index 835485f59340b8ca1b146a915fd3a264828b191d..19018d3dd853ff08ad16cdc962450316193ba4c8 100644 (file)
@@ -95,8 +95,7 @@ public class NewExpr extends Expr {
      * 
      * @return the signature
      */
-    public String getSignature()
-    {
+    public String getSignature() {
         ConstPool constPool = getConstPool();
         int methodIndex = iterator.u16bitAt(currentPos + 1);   // constructor
         return constPool.getMethodrefType(methodIndex);
@@ -146,7 +145,7 @@ public class NewExpr extends Expr {
             throw new CannotCompileException(
                         "sorry, cannot edit NEW followed by no DUP");
     }
-    
+
     /**
      * Replaces the <tt>new</tt> expression with the bytecode derived from
      * the given source text.
index 89cb98cd5dd7cdb4e60231d9b188b0373e5f1799..9d56dc7fdca631e16df9299a1d134c4e60c057bd 100644 (file)
@@ -16,6 +16,7 @@
 package javassist.util.proxy;
 
 import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Member;
@@ -185,6 +186,21 @@ public class ProxyFactory {
             // return Thread.currentThread().getContextClassLoader();
     }
 
+    /**
+     * Creates a proxy class and returns an instance of that class.
+     *
+     * @param paramTypes    parameter types for a constructor.
+     * @param args          arguments passed to a constructor.
+     */
+    public Object create(Class[] paramTypes, Object[] args)
+        throws NoSuchMethodException, IllegalArgumentException,
+               InstantiationException, IllegalAccessException, InvocationTargetException
+    {
+        Class c = createClass();
+        Constructor cons = c.getConstructor(paramTypes);
+        return cons.newInstance(args);
+    }
+
     /**
      * Sets the default invocation handler.  This invocation handler is shared
      * among all the instances of a proxy class unless another is explicitly