1
2
3
4 package org.neo.swarm.interceptor.logging;
5
6 import org.neo.swarm.core.aop.AspectComponent;
7 import org.neo.swarm.core.aop.silc.comp.MethodInterceptor;
8 import org.neo.swarm.core.aop.silc.comp.Perspective;
9 import org.neo.swarm.core.aop.silc.comp.Pointcut;
10 import org.neo.swarm.core.aop.silc.comp.RegexPointCut;
11
12 /***
13 * Handle Tracer
14 *
15 * @author neil.avery
16 */
17 public class Tracer implements Trace {
18
19 Pointcut pointcut1 = new RegexPointCut("(.*enableTracing)");
20 Pointcut pointcut2 = new RegexPointCut("(.*disableTracing)");
21 private TracingInterceptor interceptor;
22
23 public Tracer(boolean enabled) {
24 this.interceptor = new TracingInterceptor(enabled);
25 }
26
27 public void advise(AspectComponent componentInstance) {
28 pointcut1.advise(Perspective.DEFAULT, componentInstance, interceptor);
29 pointcut2.advise(Perspective.DEFAULT, componentInstance, interceptor);
30 }
31
32 public MethodInterceptor getInterceptor() {
33 return interceptor;
34 }
35
36 public void replaceInterceptor(MethodInterceptor interceptor) {
37
38
39
40 }
41
42
43
44
45
46 public boolean isEnabled() {
47 return interceptor.isEnabled();
48 }
49
50
51
52
53
54 public void setEnabled(boolean enabled) {
55 interceptor.setEnabled(enabled);
56 }
57
58 public void enableTracing() {
59 setEnabled(true);
60 }
61 public void disableTracing() {
62 setEnabled(false);
63 }
64 }