12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package symbols;
-
- strictfp aspect A issingleton() {
-
- /** objects */
- pointcut instanceof_C(): this(C);
- pointcut hasaspect_A(): if(A.hasAspect());
-
- /** lexical extents */
- pointcut within_C(): within(C);
- pointcut withinall_C(): within(C+);
- pointcut withincode_C(): withincode(void C.*(..));
-
- /** control flow */
- pointcut cflow_C(): cflow(withincode_C());
- pointcut cflowtop_C(): cflow(withincode_C() && !cflowbelow(withincode_C()));
-
- /** methods and constructors */
- pointcut calls_C(): call(int C.*(..));
- pointcut receptions_C(): call(int C.*(..));
- pointcut executions_C(): execution(* C.*(..,float,..));
- //pointcut callsto_C(): callsto(call(void C.*()));
-
- /** exception handlers */
- pointcut handlers_Thr(): handler(java.lang.Throwable);
- pointcut handlers_Err(): handler(java.lang.Error);
- pointcut handlers_Exc(): handler(java.lang.Exception);
- pointcut handlers_Rt(): handler(java.lang.RuntimeException);
-
- /** fields */
- pointcut gets_f(): get(float C.*);
- pointcut sets_f(): set(float C.*);
-
- /** Advices */
- //before(): call(void C.*()) { }
- before(): this(C) && call(String Object.toString()) { }
- before(): execution(C.new()) { }
- after(): call(void C.*()) { }
- after() returning (int x): call(int C.*(..)) { }
- after() throwing (RuntimeException e): call(void C.MethV()) {
- throw new RuntimeException("test");
- }
- void around() : call(void C.MethV()) { proceed(); }
-
- /** Introductions */
- public double symbols.C.intrD;
- private void C.intrMethV() { intrD += 1; }
-
- }
|