Javadoc
Sorts file system actions according to their natural order to prevent scenarios
in which a non-empty directory is deleted, ...
Sorting necessary:
1. Delete file/symlink actions must happen first
2. New folder actions must happen after delete file/symlink actions, and must be sorted by path, shortest first (within new actions)
3. New file/symlink actions must happen after new folder actions
4. Rename file/symlink actions must happen after new folder actions
5. Delete folder actions must happen last, sorted by path, longest first (within delete actions)
a. except if the deleted folder has a name clash with another action (rename/new)
in that case, it must happen before the other action
No sorting necessary:
- Change file/symlink actions can happen anytime
- Set attributes actions can happen anytime
Cannot happen:
- Rename folder
- Change folder
TODO [medium] NewSymlinkFileSystemAction --> NewFile (has no content)