private void scan(Method method, MethodGen mg, CFG cfg) {
private void scan(CallGraphNode node) throws CFGBuilderException { Method method = node.getMethod(); CFG cfg = classContext.getCFG(method);
	private void scan(Method method, MethodGen mg, CFG cfg) {		if (method.isSynchronized())			hasSynchronization = true;		Iterator<BasicBlock> i = cfg.blockIterator();		while (i.hasNext()) {			BasicBlock block = i.next();			Iterator<InstructionHandle> j = block.instructionIterator();			while (j.hasNext()) {				InstructionHandle handle = j.next();				Instruction ins = handle.getInstruction();				if (ins instanceof InvokeInstruction) {					InvokeInstruction inv = (InvokeInstruction) ins;					Method called = isSelfCall(inv, mg);					if (called != null) {						CallSite callSite = new CallSite(method, block, handle);						// Map call site to self-called method						selfCallToMethodMap.put(callSite, called);						// Map method to call site						Set<CallSite> callSiteSet = getCallSites(called);						callSiteSet.add(callSite);					}				} else if (ins instanceof MONITORENTER || ins instanceof MONITOREXIT) {					hasSynchronization = true;				}			}		}	}