1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.onami.autobind.aop.example.interceptor;
17
18 import java.lang.reflect.Method;
19
20 import javax.interceptor.Interceptor;
21
22 import org.aopalliance.intercept.MethodInterceptor;
23 import org.aopalliance.intercept.MethodInvocation;
24 import org.apache.onami.autobind.aop.ClassMatcher;
25 import org.apache.onami.autobind.aop.Intercept;
26 import org.apache.onami.autobind.aop.MethodMatcher;
27
28 import com.google.inject.matcher.Matcher;
29 import com.google.inject.matcher.Matchers;
30
31
32 @Interceptor
33 public class AnnotatedInheritedMethodInterceptor implements MethodInterceptor {
34
35 @Override
36 public Object invoke(MethodInvocation invocation) throws Throwable {
37 System.out.println(AnnotatedInheritedMethodInterceptor.class.getSimpleName()
38 + " - Trying to invoke: " + invocation.getMethod().getName());
39 return invocation.proceed();
40 }
41
42 @ClassMatcher
43 public Matcher<? super Class<?>> getClassMatcher() {
44 return Matchers.any();
45 }
46
47 @MethodMatcher
48 public Matcher<? super Method> getMethodMatcher() {
49 return Matchers.annotatedWith(Intercept.class);
50 }
51
52 }