Beispiel #1
0
 /** Removes the index for a given path. This is a no-op if the index did not exist. */
 public synchronized void removeIndex(IPath containerPath) {
   if (VERBOSE) Util.verbose("removing index " + containerPath); // $NON-NLS-1$
   IPath indexLocation = computeIndexLocation(containerPath);
   Index index = getIndex(indexLocation);
   File indexFile = null;
   if (index != null) {
     index.monitor = null;
     indexFile = index.getIndexFile();
   }
   if (indexFile == null)
     indexFile =
         new File(
             indexLocation.toOSString()); // index is not cached yet, but still want to delete the
   // file
   if (indexFile.exists()) indexFile.delete();
   this.indexes.remove(indexLocation);
   updateIndexState(indexLocation, null);
 }
Beispiel #2
0
 public void saveIndex(Index index) throws IOException {
   // must have permission to write from the write monitor
   if (index.hasChanged()) {
     if (VERBOSE) Util.verbose("-> saving index " + index.getIndexFile()); // $NON-NLS-1$
     index.save();
   }
   synchronized (this) {
     IPath containerPath = new Path(index.containerPath);
     if (this.jobEnd > this.jobStart) {
       for (int i = this.jobEnd; i > this.jobStart; i--) { // skip the current job
         IJob job = this.awaitingJobs[i];
         if (job instanceof IndexRequest)
           if (((IndexRequest) job).containerPath.equals(containerPath)) return;
       }
     }
     IPath indexLocation = computeIndexLocation(containerPath);
     updateIndexState(indexLocation, SAVED_STATE);
   }
 }