// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 Ġ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 . model . search . impl Ċ Ċ import Ġcom . intellij . model . search . Leaf Occurrence Mapper Ċ import Ġcom . intellij . model . search . Search Context Ċ import Ġcom . intellij . psi . impl . search . Word Request Info Impl Ċ import Ġcom . intellij . psi . impl . search . run Search Ċ import Ġcom . intellij . psi . search . Global Search Scope Ċ import Ġcom . intellij . psi . search . Local Search Scope Ċ import Ġcom . intellij . psi . search . Search Scope Ċ import Ġcom . intellij . util . Processor Ċ Ċ internal Ġclass ĠSearch Word Query < R >( ĊĠ Ġprivate Ġval Ġmy Parameters : ĠSearch Word QueryBuilder Impl . Parameters , ĊĠ Ġprivate Ġval Ġmapper : ĠLeaf Occurrence Mapper < R > Ċ ) Ġ: ĠAbstract De comp osable Query < R >() Ġ{ ĊĊĠ Ġoverride Ġfun Ġprocess Results ( consumer : ĠProcessor < in ĠR >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġrun Search ( my Parameters . project , Ġthis , Ġconsumer ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġde compose (): ĠRequests < R > Ġ{ ĊĠĠĠ Ġval Ġsearch Scope Ġ= Ġmy Parameters . search Scope ĊĠĠĠ Ġif Ġ(! m akes Sense To Search ( search Scope )) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠRequests . empty () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠRequests ( word Requests Ġ= ĠlistOf ( ĊĠĠĠĠĠ ĠWord Request ( ĊĠĠĠĠĠĠĠ ĠWord Request Info Impl ( ĊĠĠĠĠĠĠĠĠĠ Ġmy Parameters . word , ĊĠĠĠĠĠĠĠĠĠ Ġsearch Scope , ĊĠĠĠĠĠĠĠĠĠ Ġmy Parameters . case Sensitive , ĊĠĠĠĠĠĠĠĠĠ ĠSearch Context . mask ( my Parameters . search Contexts ), ĊĠĠĠĠĠĠĠĠĠ Ġmy Parameters . container Name ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġmy Parameters . injection , ĊĠĠĠĠĠĠĠ Ġx Value Transform ( mapper :: map Occurrence ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ)) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġmakes Sense To Search ( search Scope : ĠSearch Scope ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( search Scope Ġis ĠLocal Search Scope ) Ġ{ ĊĠĠĠĠĠ Ġsearch Scope . scope . isNotEmpty () ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠ Ġsearch Scope Ġ!== ĠGlobal Search Scope . EMPTY _ SCOPE ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ