1 | /** |
2 | * |
3 | */ |
4 | package net.sf.madmap; |
5 | |
6 | import java.lang.reflect.Method; |
7 | |
8 | import org.springframework.aop.*; |
9 | |
10 | /** |
11 | * @author ecaspole |
12 | * |
13 | */ |
14 | public class Tracer implements MethodBeforeAdvice, AfterReturningAdvice { |
15 | int _depth = 0; |
16 | |
17 | public Tracer() {} |
18 | |
19 | public void before( Method m, Object[] args, Object target ) { |
20 | _depth++; |
21 | for (int i=0; i<_depth; i++) { |
22 | System.out.print(" "); |
23 | } |
24 | System.out.println("--> " + m.getName()); |
25 | } |
26 | |
27 | public void afterReturning( Object retVal, Method m, Object[] args, Object target ) { |
28 | for (int i=0; i<_depth; i++) { |
29 | System.out.print(" "); |
30 | } |
31 | System.out.println("<-- " + m.getName()); |
32 | _depth--; |
33 | } |
34 | } |