package Ġcom . vaadin . example . search Ċ Ċ import Ġcom . vaadin . example . utils . Config Ċ Ċ import Ġjava . io . File Ċ import Ġjava . util . Arrays Ċ import Ġjava . util . Collections Ċ import Ġjava . util . regex . Pattern Ċ import Ġjava . util . stream . Collectors Ċ Ċ /** Ċ Ġ* ĠÐļ Ð»Ð°ÑģÑģ ĠÐ´Ð»Ñı ĠÐ¿Ð¾ Ð¸Ñģ ÐºÐ° ĠÐ² Ñħ Ð¾Ð¶ Ð´ ÐµÐ½Ð¸Ð¹ ĠÑĤÐµÐº ÑģÑĤ Ð° ĠÐ² ĠÑĦÐ°Ð¹ Ð»Ð° Ñħ Ċ Ġ*/ Ċ class ĠSearch er Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐ¡ Ð¿Ð¸Ñģ Ð¾Ðº ĠÑĦÐ°Ð¹Ð» Ð¾Ð² ĠÐ´Ð»Ñı ĠÐ¿Ð¾ Ð¸Ñģ ÐºÐ° ĊĠĠĠĠ Ġ* Ġ@ return ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº ĠÑĦÐ°Ð¹Ð» Ð¾Ð² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġfile List For Search : ĠList < File > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder : ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Ġ= ĠFile ( config [" app . root "] Ġ+ Ġ" md ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder . walk () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġfolder . list Files () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( files Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . stream ( files ). filter Ġ{ Ġf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! f . isDirectory Ġ&& ĠP ATTERN . matcher ( f . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. matches () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. collect ( Collectors . toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐŁ Ð¾Ð» ÑĥÑĩ Ð¸ÑĤÑĮ ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº ĠÑĦÐ°Ð¹Ð» Ð¾Ð² , ĠÑĥ Ð´ Ð¾Ð² Ð» ÐµÑĤ Ð² Ð¾ÑĢ Ñı Ñİ ÑīÐ¸ Ñħ ĠÑĥ ÑģÐ» Ð¾Ð² Ð¸ Ñİ ĠÐ¿Ð¾ Ð¸Ñģ ÐºÐ° ĊĠĠĠĠ Ġ* Ġ@ param Ġsearch Text ĠÑĤÐµÐº ÑģÑĤ ĠÐ´Ð»Ñı ĠÐ¿Ð¾ Ð¸Ñģ ÐºÐ° ĊĠĠĠĠ Ġ* Ġ@ return ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº ĠÐ¸Ð¼ ÐµÐ½ ĠÑĦÐ°Ð¹Ð» Ð¾Ð² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Matches Filename s ( search Text : ĠString ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfile List For Search . stream (). filter Ġ{ Ġf Ġ-> Ġfile Math ches ( f , Ġsearch Text ) Ġ}. map < String >( Ġ{ Ġit . getName () Ġ}). collect ( Collectors . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐŁ ÑĢÐ¾Ð² ÐµÑĢ ÐºÐ° ĠÑĦÐ°Ð¹ Ð»Ð° ĠÐ½Ð° ĠÑģÐ¾ Ð¾ÑĤ Ð²ÐµÑĤ ÑģÑĤÐ² Ð¸Ðµ ĠÑĥ ÑģÐ» Ð¾Ð² Ð¸ Ñİ ĠÐ¿Ð¾ Ð¸Ñģ ÐºÐ° ĊĠĠĠĠ Ġ* Ġ@ param Ġfile ĠÑĦÐ°Ð¹Ð» ĊĠĠĠĠ Ġ* Ġ@ param Ġsearch Text ĠÑĤÐµÐº ÑģÑĤ ĠÐ´Ð»Ñı ĠÐ¿Ð¾ Ð¸Ñģ ÐºÐ° ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue ĠÐµÑģÐ»Ð¸ ĠÑĦÐ°Ð¹Ð» ĠÑĥ Ð´ Ð¾Ð² Ð» ÐµÑĤ Ð² Ð¾ÑĢ Ñı ÐµÑĤ ĠÑĥ ÑģÐ» Ð¾Ð² Ð¸ Ñİ ĠÐ¿Ð¾ Ð¸Ñģ ÐºÐ° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfile Math ches ( file : ĠFile , Ġsearch Text : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpattern String Ġ= ĠMd Processor . getResource Pattern ( file ) ĊĠĠĠĠĠĠĠ Ġif Ġ( pattern String Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= ĠPattern . compile ( pattern String , ĠPattern . CASE _ INS ENS ITIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpattern . matcher ( search Text ). matches () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconfig Ġ= ĠConfig . instance ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠP ATTERN Ġ= ĠPattern . compile (" .* \\. md ") ĊĠĠĠ Ġ} Ċ } Ċ