// ĠCopyright Ġ 2 0 0 0 - 2 0 1 8 Ġ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 Ġgit 4 idea . log Ċ Ċ import Ġcom . intellij . openapi . vcs . Remote FilePath Ċ import Ġcom . intellij . openapi . vcs . vfs . Abstract V cs Virtual File Ċ import Ġcom . intellij . openapi . vcs . vfs . V cs FileSystem Ċ import Ġcom . intellij . openapi . vcs . vfs . V cs Virtual File Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . vcs . log . V cs Commit Metadata Ċ import Ġgit 4 idea . Git File Revision Ċ import Ġgit 4 idea . Git Revision Number Ċ import Ġgit 4 idea . index . Git Index Util Ċ import Ġgit 4 idea . repo . Git Repository Ċ Ċ class ĠGit Directory Virtual File ( ĊĠ Ġprivate Ġval Ġrepo : ĠGit Repository , ĊĠ Ġparent : ĠVirtual File ?, ĊĠ Ġname : ĠString , ĊĠ Ġprivate Ġval Ġcommit : ĠV cs Commit Metadata Ċ ) Ġ: ĠAbstract V cs Virtual File ( parent , Ġname , ĠV cs FileSystem . getInstance ()) Ġ{ ĊĠ Ġoverride Ġfun Ġis Directory (): ĠBoolean Ġ= Ġtrue ĊĊĠ Ġoverride Ġfun Ġcontents To ByteArray (): ĠByteArray Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġcached Children Ġby Ġlazy Ġ{ ĊĠĠĠ Ġval Ġgit Revision Number Ġ= ĠGit Revision Number ( commit . id . asString ()) ĊĠĠĠ Ġval Ġremote Path Ġ= Ġif Ġ( path . isEmpty ()) Ġ"." Ġelse Ġpath Ġ+ Ġ"/" ĊĊĠĠĠ Ġval Ġtree Ġ= ĠGit Index Util . list Tree ( repo , ĠlistOf ( Remote FilePath ( remote Path , Ġtrue )), Ġgit Revision Number ) ĊĠĠĠ Ġval Ġresult Ġ= Ġtree . map Ġ{ ĊĠĠĠĠĠ Ġwhen ( it ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠGit Index Util . St aged Directory Ġ-> ĠGit Directory Virtual File ( repo , Ġthis , Ġit . path . name , Ġcommit ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠV cs Virtual File ( this , Ġit . path . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGit File Revision ( repo . project , ĠRemote FilePath ( it . path . path , Ġfalse ), Ġgit Revision Number ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV cs FileSystem . getInstance ()) ĊĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠ Ġresult . to Typed Array < Virtual File >() ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Children (): ĠArray < Virtual File > Ġ= Ġcached Children ĊĊĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġother File Ġ= Ġother Ġas ? ĠGit Directory Virtual File Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġrepo Ġ== Ġother File . repo Ġ&& Ġpath Ġ== Ġother File . path Ġ&& Ġcommit . id Ġ== Ġother File . commit . id ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġrepo . hashCode () Ġ* Ġ 3 1 Ġ* Ġ 3 1 Ġ+ Ġpath . hashCode () Ġ* Ġ 3 1 Ġ+ Ġcommit . id . hashCode () ĊĠ Ġ} Ċ } Ċ