コード例 #1
0
 public ASTReader(
     IJavaProject iJavaProject, SystemObject existingSystemObject, IProgressMonitor monitor) {
   Set<ICompilationUnit> changedCompilationUnits = new LinkedHashSet<ICompilationUnit>();
   Set<ICompilationUnit> addedCompilationUnits = new LinkedHashSet<ICompilationUnit>();
   Set<ICompilationUnit> removedCompilationUnits = new LinkedHashSet<ICompilationUnit>();
   CompilationUnitCache instance = CompilationUnitCache.getInstance();
   for (ICompilationUnit changedCompilationUnit : instance.getChangedCompilationUnits()) {
     if (changedCompilationUnit.getJavaProject().equals(iJavaProject))
       changedCompilationUnits.add(changedCompilationUnit);
   }
   for (ICompilationUnit addedCompilationUnit : instance.getAddedCompilationUnits()) {
     if (addedCompilationUnit.getJavaProject().equals(iJavaProject))
       addedCompilationUnits.add(addedCompilationUnit);
   }
   for (ICompilationUnit removedCompilationUnit : instance.getRemovedCompilationUnits()) {
     if (removedCompilationUnit.getJavaProject().equals(iJavaProject))
       removedCompilationUnits.add(removedCompilationUnit);
   }
   if (monitor != null)
     monitor.beginTask(
         "Parsing changed/added Compilation Units",
         changedCompilationUnits.size() + addedCompilationUnits.size());
   systemObject = existingSystemObject;
   examinedProject = iJavaProject;
   for (ICompilationUnit removedCompilationUnit : removedCompilationUnits) {
     IFile removedCompilationUnitFile = (IFile) removedCompilationUnit.getResource();
     systemObject.removeClasses(removedCompilationUnitFile);
   }
   for (ICompilationUnit changedCompilationUnit : changedCompilationUnits) {
     List<ClassObject> changedClassObjects = parseAST(changedCompilationUnit);
     for (ClassObject changedClassObject : changedClassObjects) {
       systemObject.replaceClass(changedClassObject);
     }
     if (monitor != null) monitor.worked(1);
   }
   for (ICompilationUnit addedCompilationUnit : addedCompilationUnits) {
     List<ClassObject> addedClassObjects = parseAST(addedCompilationUnit);
     for (ClassObject addedClassObject : addedClassObjects) {
       systemObject.addClass(addedClassObject);
     }
     if (monitor != null) monitor.worked(1);
   }
   instance.clearAffectedCompilationUnits();
   if (monitor != null) monitor.done();
 }