package Ġcom . and rew ed st rom . sus pect device filter Ċ Ċ import Ġcom . google . common . hash . B loom Filter Ċ import Ġcom . google . common . hash . Fun nel s Ċ import Ġjava . io . Serializable Ċ import Ġjava . nio . charset . Charset Ċ Ċ /** Ċ Ġ* ĠAn Ġimplementation Ġof Ġ[ Sus pect Device Filter ] Ġusing Ġa ĠB loom ĠFilter Ġas Ġits Ġbacking Ġstore . Ċ Ġ* Ċ Ġ* ĠIt Ġis Ġvery Ġmemory Ġefficient . ĠAt Ġfull Ġcapacity Ġit Ġwill Ġbe Ġless Ġthan Ġ 1 5 % Ġthe Ġsize Ġof Ġa Ġna ive Ġhash map - based Ġimplementation Ċ Ġ* Ċ Ġ* Ġ@ property Ġexpected Insert ions Ġthe Ġmaximum Ġnumber Ġof Ġsuspect Ġdevices Ġthat Ġwill Ġbe Ġadded Ġto Ġthis Ġfilter . ĠAdding Ġmore Ċ Ġ* Ġdevices Ġthan Ġthis Ġis Ġallowed , Ġbut Ġwill Ġcause Ġthe Ġfalse Ġpositive Ġratio Ġto Ġri se Ġabove Ġ[ ACCEPT ABLE _ FALSE _ POSITIVE _ PERCENT AGE ]. Ċ Ġ*/ Ċ @ Suppress (" Un stable Api Usage ") Ċ class ĠS us pect Device Filter Impl ( val Ġexpected Insert ions : ĠInt Ġ= ĠDEFAULT _ EXPECTED _ INSERT IONS ) Ġ: ĊĠĠĠ ĠS us pect Device Filter , ĠSerializable Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġb loom Filter Ġ= ĠB loom Filter . create ( ĊĠĠĠĠĠĠĠ ĠF unnel s . string Fun nel ( Charset . default Charset ()), ĊĠĠĠĠĠĠĠ Ġexpected Insert ions , ĊĠĠĠĠĠĠĠ ĠAC CEPT ABLE _ FALSE _ POSITIVE _ PERCENT AGE ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġdevice Is Sus pect ( deviceId : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġb loom Filter . m ight Contain ( deviceId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmark Device As Sus pect ( deviceId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġb loom Filter . put ( deviceId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠserialVersionUID Ġ= Ġ- 9 1 L ĊĠĠĠ Ġ} Ċ }