1   /***************************************************************************************
2    * Copyright (c) Jonas Bonér, Alexandre Vasseur. All rights reserved.                 *
3    * http://aspectwerkz.codehaus.org                                                    *
4    * ---------------------------------------------------------------------------------- *
5    * The software in this package is published under the terms of the LGPL license      *
6    * a copy of which has been included with this distribution in the license.txt file.  *
7    **************************************************************************************/
8   package test.adviseonintroducedinterface;
9   
10  import org.codehaus.aspectwerkz.joinpoint.JoinPoint;
11  
12  /***
13   * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér</a>
14   */
15  public class Aspect {
16      
17      /***
18       * @Before 
19       *      (execution(void test.adviseonintroducedinterface.Intf1+.m1())
20       *      ||
21       *      execution(void test.adviseonintroducedinterface.Intf2+.m2())
22       *      ) && !within(test.adviseonintroducedinterface.Aspect$Mixin)
23       */
24      public void before(JoinPoint jp) {
25          Test.log("before ");
26      }
27      
28      
29      /***
30       * @Implements within(test.adviseonintroducedinterface.Target)
31       */
32      Intf1 marker;
33      
34      /***
35       * @Introduce within(test.adviseonintroducedinterface.Target)
36       */
37      public static class Mixin implements Intf2 {
38          public void m2() {
39              Test.log("m2 ");
40          }
41      }
42  }