View Javadoc

1   /*
2    * Created on 30-Jul-2003
3    */
4   package org.neo.swarm.interceptor.sync;
5   
6   import org.neo.swarm.core.aop.Aspect;
7   import org.neo.swarm.core.aop.AspectComponent;
8   import org.neo.swarm.core.aop.silc.comp.Invocation;
9   import org.neo.swarm.core.aop.silc.comp.MethodInterceptor;
10  import org.neo.swarm.core.aop.silc.comp.Perspective;
11  import org.neo.swarm.core.aop.silc.comp.Pointcut;
12  import org.neo.swarm.core.aop.silc.comp.RegexPointCut;
13  
14  /***
15   * A do-nothing interceptor that does zippo. It only applies to methods starting with doStuff
16   * 
17   * @author neil.avery
18   */
19  public class SyncConnector implements Aspect {
20  	Pointcut pointcut = new RegexPointCut("(.*).doStuff(.*)");
21  	private MethodInterceptor interceptor;
22  
23  	public SyncConnector(MethodInterceptor interceptor) {
24  		this.interceptor = interceptor;
25  	}
26  
27  	public void advise(AspectComponent componentInstance) {
28  		pointcut.advise(Perspective.DEFAULT, componentInstance, interceptor);
29  	}
30  
31  	public MethodInterceptor getInterceptor() {
32  		return interceptor;
33  	}
34  
35  	public void replaceInterceptor(MethodInterceptor interceptor) {
36  		this.interceptor = interceptor;
37  	}
38  
39  	public Object invoke(Invocation invocation) throws Throwable {
40  		return invocation.proceed();
41  	}
42  }