package Ġorg . jac oco . core . internal . analysis Ċ Ċ import Ġorg . jac oco . core . internal . analysis . filter . Filters Ċ import Ġorg . jac oco . core . internal . analysis . filter . I Filter Ċ import Ġorg . jac oco . core . internal . analysis . filter . I Filter Context Ċ import Ġorg . jac oco . core . internal . analysis . filter . I Filter Output Ċ import Ġorg . jac oco . core . internal . flow . Method Prob es Visitor Ċ import Ġorg . jac oco . core . internal . instr . Instr Support Ċ import Ġorg . object web . asm . Method Visitor Ċ import Ġorg . object web . asm . tree . Method Node Ċ Ċ internal Ġopen Ġclass ĠFiltering Class Analyzer ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcoverage : ĠClass Coverage Impl , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġprob es : ĠBoolean Array ?, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstring Pool : ĠString Pool , ĊĠĠĠĠĠĠĠ Ġcustom Filter : ĠI Filter Ċ ) Ġ: ĠClass Analyzer ( coverage , Ġprob es , Ġstring Pool ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfilter : ĠI Filter ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . filter Ġ= Ġcreate Filters ( custom Filter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Filters ( custom Filter : ĠI Filter ): ĠI Filter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠI Filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġall Filters Ġ= ĠFilters . all () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfilter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Node : ĠMethod Node , Ġcontext : ĠI Filter Context , Ġoutput : ĠI Filter Output ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Filters . filter ( method Node , Ġcontext , Ġoutput ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Filter . filter ( method Node , Ġcontext , Ġoutput ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Method ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccess : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdesc : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexceptions : ĠArray < String >? ĊĠĠĠ Ġ): ĠMethod Prob es Visitor Ġ{ ĊĠĠĠĠĠĠĠ ĠIn str Support . assertNot Instrument ed ( name , Ġcoverage . name ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠInstructions Builder ( prob es ) ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠMethod Analyzer ( builder ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccept ( method Node : ĠMethod Node , Ġmethod Visitor : ĠMethod Visitor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . accept ( method Node , Ġmethod Visitor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Method Coverage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring Pool [ name ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring Pool [ desc ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring Pool [ signature ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Node ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Method Coverage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdesc : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġic c : ĠInstructions Builder , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Node : ĠMethod Node ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Coverage Calculator Ġ= ĠMethod Coverage Calculator ( icc . instructions ) ĊĠĠĠĠĠĠĠ Ġfilter . filter ( method Node , Ġthis , Ġmethod Coverage Calculator ) ĊĊĠĠĠĠĠĠĠ ĠMethod Coverage Impl ( name , Ġdesc , Ġsignature ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Coverage Calculator . calculate ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contains Code ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoverage . add Method ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ