Example #1
0
 // ============================================================
 // <T>执行监视器的逻辑。</T>
 //
 // @return 处理结果
 // ============================================================
 @Override
 public boolean onExecute() {
   // 检查文件集合
   if (_files.isEmpty()) {
     return false;
   }
   // 检查变更的文件
   FFileInfos removes = null;
   int count = _files.count();
   for (int n = 0; n < count; n++) {
     FFileInfo info = _files.value(n);
     if (onFilter(info)) {
       if (info.exists()) {
         if (info.storeTest(_storeInterval)) {
           // 响应存储的文件
           try {
             doFileSave(info);
           } catch (Exception e) {
             _logger.error(e, "File save event error (file={1})", info.fileName());
           }
           info.stored();
         } else if (info.isModified()) {
           // 响应变更的文件
           try {
             doFileChange(info);
           } catch (Exception e) {
             _logger.error(e, "File change event error (file={1})", info.fileName());
           }
           info.refresh();
         }
       } else {
         // 响应被删除的文件
         try {
           doFileRemove(info);
         } catch (Exception e) {
           _logger.error(e, "File remove event error (file={1})", info.fileName());
         }
         if (null == removes) {
           removes = new FFileInfos();
         }
         removes.push(info);
       }
     }
   }
   // 移除文件集合
   if (null != removes) {
     for (FFileInfo info : removes.values()) {
       _files.remove(info.fileName());
     }
   }
   return true;
 }
Example #2
0
 // ============================================================
 // <T>存储所有变更的文件。</T>
 // ============================================================
 public synchronized void storeAll() {
   // 检查变更的文件
   if (!_files.isEmpty()) {
     int count = _files.count();
     for (int n = 0; n < count; n++) {
       FFileInfo info = _files.value(n);
       if (onFilter(info)) {
         if (info.exists() && info.storeTest(0)) {
           // 响应存储的文件
           try {
             doFileSave(info);
           } catch (Exception e) {
             _logger.error(e, "File save event error (file={1})", info.fileName());
           }
           info.stored();
         }
       }
     }
   }
 }