1 29 30 package com.caucho.aop; 31 32 import java.io.IOException; 33 34 import com.caucho.util.L10N; 35 36 import com.caucho.java.JavaWriter; 37 38 import com.caucho.java.gen.FilterCallChain; 39 import com.caucho.java.gen.CallChain; 40 41 44 public class AopCallChain extends FilterCallChain { 45 private static final L10N L = new L10N(AopCallChain.class); 46 47 private AopVarComponent _aopVar; 48 49 public AopCallChain(CallChain next, AopVarComponent var) 50 { 51 super(next); 52 53 _aopVar = var; 54 } 55 56 64 public void generateCall(JavaWriter out, String retVar, 65 String var, String []args) 66 throws IOException 67 { 68 String fieldName = _aopVar.getFieldName(); 69 70 out.print(fieldName + " invocation"); 71 out.print(" = new " + fieldName + "(this"); 72 73 for (int i = 0; i < args.length; i++) { 74 out.print(", "); 75 out.print(args[i]); 76 } 77 out.println(");"); 78 79 out.println("try {"); 80 out.pushDepth(); 81 82 out.println("Object result = invocation._interceptor.invoke(invocation);"); 83 84 out.popDepth(); 85 out.println("} catch (Throwable e) {"); 86 out.println(" throw new RuntimeException(e);"); 87 out.println("}"); 88 } 89 } 90 | Popular Tags |