public DataflowAnalysis<LockCount> createAnalysis(MethodGen methodGen, CFG cfg) throws DataflowAnalysisException {
public AbstractDataflowAnalysis<LockCount> createAnalysis(MethodGen methodGen, CFG cfg) throws DataflowAnalysisException {
	public static void main(String[] argv) {		try {			if (argv.length != 1) {				System.out.println("edu.umd.cs.daveho.ba.ThisLockCountAnalysis <filename>");				System.exit(1);			}			DataflowTestDriver<LockCount> driver = new DataflowTestDriver<LockCount>() {				public DataflowAnalysis<LockCount> createAnalysis(MethodGen methodGen, CFG cfg) throws DataflowAnalysisException {					// Perform the analysis to propagate "this" value references,					// since ThisLockCountAnalysis depends on it.					Dataflow<ThisValueFrame> tvaDataflow = new Dataflow<ThisValueFrame>(cfg, new ThisValueAnalysis(methodGen));					tvaDataflow.execute();					// Now we can create ThisLockCountAnalysis.					return new ThisLockCountAnalysis(methodGen, tvaDataflow);				}			};			driver.execute(argv[0]);		} catch (Exception e) {			e.printStackTrace();		}	}