// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . test Framework . assertions Ċ Ċ import Ġcom . intellij . test Framework . Use ful TestCase Ċ import Ġcom . intellij . util . io . delete Ċ import Ġcom . intellij . util . io . directory Stream IfExists Ċ import Ġcom . intellij . util . io . isFile Ċ import Ġcom . intellij . util . io . is Hidden Ċ import Ġorg . junit . rules . External Resource Ċ import Ġjava . nio . file . Path Ċ Ċ class ĠCleanup Snapshots ( private Ġval Ġdir : ĠPath ) Ġ: ĠExternal Resource () Ġ{ ĊĠ Ġprivate Ġval Ġused Paths Ġ= ĠHashSet < Path >() ĊĊĠ Ġprivate Ġval Ġlistener Ġ= Ġobject Ġ: ĠSnapshot File Usage Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġbefore Match ( file : ĠPath ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( file . startsWith ( dir )) Ġ{ ĊĠĠĠĠĠĠĠ Ġused Paths . add ( file ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġbefore () Ġ{ ĊĠĠĠ Ġif Ġ(! Use ful TestCase . IS _ UNDER _ TEAM C ITY ) Ġ{ ĊĠĠĠĠĠ Ġsnapshot File Usage Listeners . add ( listener ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġafter () Ġ{ ĊĠĠĠ Ġdir . directory Stream IfExists Ġ{ ĊĠĠĠĠĠ Ġfor Ġ( file Ġin Ġit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! used Paths . contains ( file ) Ġ&& Ġ! file . is Hidden () Ġ&& Ġfile . isFile ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfile . delete ( false ) ĊĠĠĠĠĠĠĠĠĠ Ġprintln (" Remove Ġoutdated Ġsnapshot Ġ${ dir . rel ativ ize ( file )} ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġsnapshot File Usage Listeners . remove ( listener ) ĊĠ Ġ} Ċ }