ClassInfo classInfo = analysisCache.getClassAnalysis(ClassInfo.class, descriptor); System.out.println(" ** class:" + classInfo.getClassDescriptor()); System.out.println(" ** superclass:" + classInfo.getSuperclassDescriptor()); System.out.println(" ** access flags:" + classInfo.getAccessFlags());
pass.createDetectors(bugReporter); Detector2[] detectorList = pass.getDetectorList();  for (ClassDescriptor classDescriptor : appClassList) { if (DEBUG) { System.out.println("Class " + classDescriptor); } for (Detector2 detector : detectorList) { if (DEBUG) { System.out.println("Applying " + detector.getDetectorClassName() + " to " + classDescriptor); } try { detector.visitClass(classDescriptor); } catch (CheckedAnalysisException e) { logRecoverableException(classDescriptor, detector, e); } catch (AnalysisException e) { logRecoverableException(classDescriptor, detector, e); } } }
	private void analyzeApplication() throws CheckedAnalysisException {		// FIXME: for the moment, we're not building an execution plan or supporting multiple passes				for (ClassDescriptor descriptor : appClassList) {			System.out.println("App class: " + descriptor);						ClassData classData = analysisCache.getClassAnalysis(ClassData.class, descriptor);			System.out.println(" ** contains " + classData.getData().length + " bytes of data");						ClassInfo classInfo = analysisCache.getClassAnalysis(ClassInfo.class, descriptor);			System.out.println(" ** class:" + classInfo.getClassDescriptor());			System.out.println(" ** superclass:" + classInfo.getSuperclassDescriptor());			System.out.println(" ** access flags:" + classInfo.getAccessFlags());		}	}