1
2
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 }