Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] (no subject)

I wanted some clarifications regarding your code.
What does this statement do? "call(* *(..)) && !within(CallGraph)"
I guess this statement checks for any function call but not within the given aspect CallGraph. But still, could you please throw light on the syntax used in the statement?
Thank You

On Mon, Oct 17, 2011 at 11:05 PM, Andy Clement <andrew.clement@xxxxxxxxx> wrote:

I don't have a complete solution for you to pick up and use but this
aspect kind of does it:

aspect CallGraph {
 int indent =0;
 before(): call(* *(..)) && !within(CallGraph) {
    for (int i=0;i<indent;i++) { System.out.print("  ");}
    System.out.println("> "+thisJoinPointStaticPart);
 after(): call(* *(..))&& !within(CallGraph)  {

public class Code {
public static void main(String []argv) {
 new Code().foo();
 new Code().bar();

 public void foo() {
 public void bar() {
 public void boo() {
   System.out.println("Hello World");

Running it gives:
$ java Code
> call(void
 > call(void
   > call(void
     > call(void
Hello World
> call(void
 > call(void
   > call(void
Hello World


On 15 October 2011 07:19, Shambhavi Joshi <shambhavi.jj@xxxxxxxxx> wrote:
> Hello
> I want to design a code for generating a run-time call graph for a
> Java program using AspectJ.
> Can anybody tell me how to go about it?? please its urgent.
> Is there any algorithm available, if yes, then please provide /suggest
> me the same.
> Please do reply ASAP
> Shambhavi
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
aspectj-users mailing list

Shambhavi Joshi

Back to the top