// ĠCopyright Ġ 2 0 0 0 - 2 0 1 9 Ġ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 . jetbrains . change Reminder . predict Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . registry . Registry Ċ import Ġcom . intellij . openapi . vcs . FilePath Ċ import Ġcom . intellij . openapi . vcs . changes . Change Ċ import Ġcom . intellij . openapi . vcs . changes . Changes Util Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . vcs . log . data . V cs Log Data Ċ import Ġcom . jetbrains . change Reminder . get Git Root Files Ċ import Ġcom . jetbrains . change Reminder . repository . Commit Ċ import Ġcom . jetbrains . change Reminder . repository . Files History Provider Ċ Ċ internal Ġclass ĠPrediction Request ( private Ġval Ġproject : ĠProject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġdata Manager : ĠV cs Log Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġfiles History Provider : ĠFiles History Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchanges : ĠCollection < Change >) Ġ{ ĊĠ Ġprivate Ġval Ġchange List Files Ġ= Ġchanges . map Ġ{ ĠChanges Util . get FilePath ( it ) Ġ} ĊĊĠ Ġprivate Ġfun Ġget Predict ed Files ( files : ĠCollection < FilePath >, Ġroot : ĠVirtual File ): ĠCollection < FilePath > Ġ= ĊĠĠĠ ĠPrediction Provider ( min Prob Ġ= ĠRegistry . doubleValue (" vcs . change Reminder . prediction . threshold ")) ĊĠĠĠĠĠ Ġ. predict Forgot ten Files ( Commit (- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Manager . currentUser [ root ]?. name Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange List Files . toSet ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles History Provider . get Files History ( root , Ġfiles )) ĊĊĠ Ġprivate Ġfun Ġget Predict ed Files ( root Files : ĠMap < Virtual File , ĠCollection < FilePath >> ): ĠCollection < FilePath > Ġ= ĊĠĠĠ Ġroot Files . map NotNull Ġ{ Ġ( root , Ġfiles ) Ġ-> ĊĠĠĠĠĠ Ġif Ġ( data Manager . index . is Indexed ( root )) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Predict ed Files ( files , Ġroot ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. flatten () ĊĊĠ Ġfun Ġcalculate (): ĠCollection < FilePath > Ġ{ ĊĠĠĠ Ġval Ġroot Files Ġ= Ġget Git Root Files ( project , Ġchange List Files ) ĊĠĠĠ Ġreturn Ġget Predict ed Files ( root Files ) ĊĠ Ġ} Ċ }