/* Ċ Ġ* ĠCopyright Ġ 2 0 1 4 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġjet brains . mps . logic . reactor . core Ċ Ċ import Ġjet brains . mps . logic . reactor . program . Rule Ċ import Ġjet brains . mps . logic . reactor . util . Profiler Ċ Ċ import Ġjava . util . Bit Set Ċ Ċ /** Ċ Ġ* ĠProvides Ġfunctionality Ġrelevant Ġto Ġfinding Ġmatch (- es ) Ġfor Ġa Ġrule . Ċ Ġ* Ċ Ġ* Ġ@ author ĠF edor ĠIs ak ov Ċ Ġ*/ Ċ interface ĠRule Matching Probe Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġrule Ġfor Ġwhich Ġthis Ġprobe Ġis Ġcreated . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrule (): ĠRule ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġall Ġun consumed Ġ( see Ġ[ consume ]) Ġrule Ġmatches ĊĠĠĠĠ Ġ* Ġrelevant Ġfor Ġthe Ġlast Ġexpanded Ġ( see Ġ[ expand ]) Ġ[ Occurrence ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠReturns Ġup - to - date Ġresult Ġonly Ġif Ġcalled Ġafter Ġ[ expand ]. ĊĠĠĠĠ Ġ* ĠShould n 't Ġbe Ġre lied Ġupon Ġif Ġcalled Ġafter Ġe . g . Ġ[ consume ] Ġor Ġ[ contract ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġmatches (): ĠCollection < Rule Match Ex > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStates Ġwhether Ġthis Ġprobe Ġhas Ġany Ġstate ĊĠĠĠĠ Ġ* Ġimportant Ġfor Ġrule Ġmatching Ġalgorithm . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhas Occ urrences (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTell s Ġthe Ġprobe Ġthat Ġ[ rule Match ] Ġis Ġconsumed . ĊĠĠĠĠ Ġ* ĠAl ters Ġbehavior Ġof Ġ[ matches ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconsume ( rule Match : ĠRule Match Ex ): ĠRule Matching Probe ĊĊĠĠĠ Ġfun Ġexpand ( occ : ĠOcc urrence ): ĠRule Matching Probe ĊĊĠĠĠ Ġfun Ġexpand ( occ : ĠOcc urrence , Ġmask : ĠBit Set , Ġprofiler : ĠProfiler ? Ġ= Ġnull ): ĠRule Matching Probe ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTell s Ġthe Ġprobe Ġthat Ġ[ occ ] Ġcan 't Ġbe Ġused Ġfor Ġfinding Ġmatches . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcontract ( occ : ĠOcc urrence ): ĠRule Matching Probe Ċ }