// Ġ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 . intellij . internal . statistic . collect ors . f us Ċ Ċ import Ġcom . intellij . internal . statistic . event Log . validator . Validation Result Type Ċ import Ġcom . intellij . internal . statistic . event Log . validator . rules . Event Context Ċ import Ġcom . intellij . internal . statistic . event Log . validator . rules . impl . Custom White List Rule Ċ import Ġcom . intellij . internal . statistic . utils . Plugin Type Ċ import Ġcom . intellij . internal . statistic . utils . get Plugin Info Ċ Ċ internal Ġclass ĠMethod Name Rule Validator Ġ: ĠCustom White List Rule () Ġ{ ĊĠ Ġoverride Ġfun Ġaccept Rule Id ( rule Id : ĠString ?): ĠBoolean Ġ= Ġ" method _ name " Ġ== Ġrule Id ĊĊĠ Ġoverride Ġfun Ġdo Validate ( data : ĠString , Ġcontext : ĠEvent Context ): ĠValidation Result Type Ġ{ ĊĠĠĠ Ġif Ġ( is Third Party Value ( data )) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠValidation Result Type . ACCEPT ED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlast Dot Index Ġ= Ġdata . lastIndexOf (".") ĊĠĠĠ Ġif Ġ( last Dot Index Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠValidation Result Type . RE JECT ED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠclassName Ġ= Ġdata . substring ( 0 , Ġlast Dot Index ) ĊĠĠĠ Ġval Ġinfo Ġ= Ġget Plugin Info ( className ) ĊĊĠĠĠ Ġif Ġ( info . type Ġ=== ĠPlugin Type . UNKNOWN ) Ġ{ ĊĠĠĠĠĠ Ġ// Ġif Ġwe Ġcan 't Ġdetect Ġa Ġplugin Ġthen Ġprobably Ġit 's Ġnot Ġa Ġclass Ġname ĊĠĠĠĠĠ Ġreturn ĠValidation Result Type . RE JECT ED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġif Ġ( info . is Safe To Report ()) ĠValidation Result Type . ACCEPT ED Ġelse ĠValidation Result Type . TH IRD _ PAR TY ĊĠ Ġ} Ċ }