Class FileSystemEventManager

java.lang.Object
ghidra.framework.store.FileSystemEventManager
All Implemented Interfaces:
FileSystemListener

public class FileSystemEventManager extends Object implements FileSystemListener
FileSystemListenerList maintains a list of FileSystemListener's. This class, acting as a FileSystemListener, simply relays each callback to all FileSystemListener's within its list. Employs either a synchronous and asynchronous notification mechanism. Once disposed event dispatching will discontinue.
  • Constructor Details

    • FileSystemEventManager

      public FileSystemEventManager(boolean enableAsynchronousDispatching)
      Constructor
      Parameters:
      enableAsynchronousDispatching - if true a separate dispatch thread will be used to notify listeners. If false, blocking notification will be performed. Events are immediately discarded in the absence of any listener(s).
  • Method Details

    • isAsynchronous

      public boolean isAsynchronous()
      Return true if asynchornous event processing is enabled.
      Returns:
      true if asynchornous event processing is enabled, else false
    • dispose

      public void dispose()
      Discontinue event dispatching and terminate dispatch thread if it exists.
    • add

      public void add(FileSystemListener listener)
      Add a listener to this list.
      Parameters:
      listener - the listener
    • remove

      public void remove(FileSystemListener listener)
      Remove a listener from this list.
      Parameters:
      listener - the listener
    • itemMoved

      public void itemMoved(String parentPath, String name, String newParentPath, String newName)
      Description copied from interface: FileSystemListener
      Notification that an item was moved.
      Specified by:
      itemMoved in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder that used to contain the item.
      name - the name of the item that was moved.
      newParentPath - the path of the folder that the item was moved to.
      newName - the new name of the item.
    • itemRenamed

      public void itemRenamed(String parentPath, String itemName, String newName)
      Description copied from interface: FileSystemListener
      Notification that an item was renamed.
      Specified by:
      itemRenamed in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder that contains the renamed item
      itemName - the old name of the item.
      newName - the new name of the item.
    • itemDeleted

      public void itemDeleted(String parentPath, String itemName)
      Description copied from interface: FileSystemListener
      Notification that a folder item was deleted.
      Specified by:
      itemDeleted in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder that contained the deleted item.
      itemName - the name of the item that was deleted.
    • folderRenamed

      public void folderRenamed(String parentPath, String folderName, String newFolderName)
      Description copied from interface: FileSystemListener
      Notification that a folder was renamed.
      Specified by:
      folderRenamed in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder containing the folder that was renamed.
      folderName - the old name of the folder.
      newFolderName - the new name of the folder.
    • folderMoved

      public void folderMoved(String parentPath, String folderName, String newParentPath)
      Description copied from interface: FileSystemListener
      Notification that a folder was moved.
      Specified by:
      folderMoved in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder that used to contain the moved folder.
      folderName - the name of the folder that was moved.
      newParentPath - the path of the folder that now contains the moved folder.
    • folderDeleted

      public void folderDeleted(String parentPath, String folderName)
      Description copied from interface: FileSystemListener
      Notification that a folder was deleted.
      Specified by:
      folderDeleted in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder that contained the deleted folder.
      folderName - the name of the folder that was deleted.
    • itemCreated

      public void itemCreated(String parentPath, String itemName)
      Description copied from interface: FileSystemListener
      Notification that a new folder item was created.
      Specified by:
      itemCreated in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder that contains the new item.
      itemName - the name of the new item.
    • folderCreated

      public void folderCreated(String parentPath, String folderName)
      Description copied from interface: FileSystemListener
      Notification that a new folder was created.
      Specified by:
      folderCreated in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder that contains the new folder
      folderName - the name of the new folder
    • itemChanged

      public void itemChanged(String parentPath, String itemName)
      Description copied from interface: FileSystemListener
      Notfication that an item's state has changed.
      Specified by:
      itemChanged in interface FileSystemListener
      Parameters:
      parentPath - the path of the folder containing the item.
      itemName - the name of the item that has changed.
    • syncronize

      public void syncronize()
      Description copied from interface: FileSystemListener
      Perform a full refresh / synchronization
      Specified by:
      syncronize in interface FileSystemListener
    • flushEvents

      public boolean flushEvents(long timeout, TimeUnit unit)
      Blocks until all current events have been processed.

      Note: clients should only use this method when isAsynchronous() returns true, since this class cannot track when non-threaded events have finished broadcasting to listeners. In a synchronous use case, any test that needs to know when client events have been processed must use some other mechanism to know when event processing is finished.

      Parameters:
      timeout - the maximum time to wait
      unit - the time unit of the time argument
      Returns:
      true if the events were processed in the given timeout. A false value will be returned if either a timeout occured