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 bound to the remote perspective
14 *
15 * @author neil.avery
16 */
17 public class RemoteTracer implements Trace {
18
19 Pointcut pointcut = new RegexPointCut("(.*)");
20 private TracingInterceptor interceptor;
21
22 public RemoteTracer(boolean enableLogging) {
23 this.interceptor = new TracingInterceptor(enableLogging);
24 }
25
26 public void advise(AspectComponent componentInstance) {
27 pointcut.advise(Perspective.REMOTE, componentInstance, interceptor);
28 }
29
30 public MethodInterceptor getInterceptor() {
31 return interceptor;
32 }
33
34 public void replaceInterceptor(MethodInterceptor interceptor) {
35 this.interceptor = (TracingInterceptor) interceptor;
36 }
37
38
39
40
41 public boolean isEnabled() {
42 return this.interceptor.isEnabled();
43 }
44
45
46
47
48 public void setEnabled(boolean enabled) {
49 this.interceptor.setEnabled(enabled);
50 }
51 public void enableTracing() {
52 setEnabled(true);
53 }
54 public void disableTracing() {
55 setEnabled(false);
56 }
57
58 }