aspect CallerCrossRefsCount { //Count backwards edges (caller) in the callgraph (for testing) syn lazy int Program.countCallerEdgesInSourcefiles() { int count = 0; for(Iterator iter = compilationUnitIterator(); iter.hasNext(); ) { CompilationUnit cu = (CompilationUnit)iter.next(); if(cu.fromSource()) count += cu.countCallerEdges(); } return count; } syn lazy int Program.countCallerEdgesInImportedfiles() { int count = 0; for(Iterator iter = compilationUnitIterator(); iter.hasNext(); ) { CompilationUnit cu = (CompilationUnit)iter.next(); if(!cu.fromSource()) count += cu.countCallerEdges(); } return count; } syn int ASTNode.countCallerEdges() { int count = 0; for (int i=0;i