void cancelAndRebaseDiscardedDirectory ( final Directory pDiscardedParent ) { pDiscardedParent . cancelKey ( ) ; dirs . remove ( pDiscardedParent . getPath ( ) ) ; final List < Directory > toBeConvertedIntoRoot = new LinkedList <> ( ) ; cancelDiscardedDirectories ( pDiscardedParent , toBeConvertedIntoRoot ) ; toBeConvertedIntoRoot . forEach ( d -> { final Directory root = d . toRootDirectory ( ) ; rebaseDirectSubDirectories ( root ) ; dirs . replace ( d . getPath ( ) , root ) ; } ) ; }
Cancels the watch - key of the discarded directory specified . Additionally cancels and removes any sub - directory which was not a root itself sometime in the past . Any sub - directory which was a root directory in the past will be converted back to a root - directory .