public SyncWatchEventProcessor(long syncAccountId) { _syncAccountId = syncAccountId; SyncFileModelListener syncFileModelListener = new SyncFileModelListener() { @Override public void onRemove(SyncFile syncFile) { _dependentSyncWatchEventsMaps.remove(syncFile.getFilePathName()); _pendingTypePKSyncFileIds.remove(syncFile.getTypePK()); } @Override public void onUpdate(SyncFile syncFile, Map<String, Object> originalValues) { if ((syncFile.getSyncAccountId() != _syncAccountId) || (syncFile.getTypePK() == 0) || (!originalValues.containsKey("state") && !originalValues.containsKey("typePK"))) { return; } List<SyncWatchEvent> syncWatchEvents = _dependentSyncWatchEventsMaps.remove(syncFile.getFilePathName()); if (syncWatchEvents == null) { return; } if (syncFile.getTypePK() > 0) { _pendingTypePKSyncFileIds.remove(syncFile.getSyncFileId()); } for (SyncWatchEvent syncWatchEvent : syncWatchEvents) { try { if (_logger.isDebugEnabled()) { _logger.debug( "Processing queued event {} {}", syncWatchEvent.getFilePathName(), syncWatchEvent.getEventType()); } processSyncWatchEvent(syncWatchEvent); } catch (Exception e) { _logger.error(e.getMessage(), e); } } } }; SyncFileService.registerModelListener(syncFileModelListener); }
public static SyncFilePersistence getSyncFilePersistence() { if (_syncFilePersistence != null) { return _syncFilePersistence; } try { _syncFilePersistence = new SyncFilePersistence(); registerModelListener(new SyncFileModelListener()); return _syncFilePersistence; } catch (SQLException sqle) { if (_logger.isDebugEnabled()) { _logger.debug(sqle.getMessage(), sqle); } return null; } }