View Javadoc

1   /*
2    * Created on 30-Jul-2003
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  	 * @see org.neo.swarm.interceptor.logging.Trace#isEnabled()
40  	 */
41  	public boolean isEnabled() {
42  		return this.interceptor.isEnabled();
43  	}
44  
45  	/*
46  	 * @see org.neo.swarm.interceptor.logging.Trace#setEnabled(boolean)
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  }