1 22 package org.jboss.aop.instrument; 23 24 import javassist.CannotCompileException; 25 import javassist.CtClass; 26 import javassist.CtConstructor; 27 import javassist.CtMethod; 28 import javassist.Modifier; 29 import javassist.NotFoundException; 30 31 import org.jboss.aop.AspectManager; 32 33 39 public class NonOptimizedConstructorExecutionTransformer extends ConstructorExecutionTransformer 40 { 41 42 public NonOptimizedConstructorExecutionTransformer(Instrumentor instrumentor) 43 { 44 super(instrumentor); 45 } 46 47 protected void createWrapper(ConstructorTransformation trans) throws CannotCompileException, NotFoundException 48 { 49 String code = null; 50 String args = "(Object[])null"; 51 if (trans.getConstructor().getParameterTypes().length > 0) 52 { 53 args = "$args"; 54 } 55 56 String infoName = getConstructorInfoFieldName(trans.getSimpleName(), trans.getIndex()); 57 58 code = 59 "{ " + 60 " " + constructorInfoFromWeakReference("info", infoName) + 61 " org.jboss.aop.advice.Interceptor[] interceptors = info.getInterceptors(); " + 62 " if (interceptors != (org.jboss.aop.advice.Interceptor[])null) " + 63 " { " + 64 " return ($r)" + Instrumentor.HELPER_FIELD_NAME + ".invokeNew(" + args + ", (int)" + (trans.getIndex()) + "); " + 65 " } " + 66 " return new " + trans.getClazz().getName() + "($$); " + 67 "}"; 68 codifier.addPendingCode(trans.getWrapperMethod(), code); 71 } 72 73 74 75 } 76 | Popular Tags |