aboutsummaryrefslogtreecommitdiffstats
path: root/tests/multiIncremental/PR124399/inc1/edu/ucsd/aosd/MyApplication.aj
blob: 32aa992fa96710f463fc2503305834ac2a92e4ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package edu.ucsd.aosd;

import java.io.PrintStream;

public class MyApplication
{
    // main
    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println("got: " + arg);
            System.out.printf("got: %s\n", arg);
        }
    }
}

aspect Printing {
    pointcut printlnCalls(PrintStream ps, String out):
        call(* PrintStream+.println(String)) && target(ps) && args(out);
    Object around(PrintStream ps, String out):
        printlnCalls(ps, out) && !adviceexecution() {
        return proceed(ps, out);
    }

    pointcut printfCalls(PrintStream ps, String fmt, Object[] objs):
        call(* PrintStream+.printf(String, Object...))
        && target(ps) && args(fmt, objs);
}