/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 ĠNet flix , ĠInc . Ċ Ġ* Ċ Ġ* Ġ Ġ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 Ġio . r socket . android . plugins Ċ Ċ import Ġio . r socket . android . Dup lex Connection Ċ import Ġio . r socket . android . R Socket Ċ import Ġjava . util . ArrayList Ċ Ċ internal Ġclass ĠInter ceptor Registry Ġ: ĠInter ceptor Options Ġ{ ĊĠĠĠ Ġprivate Ġval Ġconnections Ġ= ĠArrayList < Dup lex Connection Interceptor >() ĊĠĠĠ Ġprivate Ġval Ġrequest ers Ġ= ĠArrayList < R Socket Interceptor >() ĊĠĠĠ Ġprivate Ġval Ġhandlers Ġ= ĠArrayList < R Socket Interceptor >() ĊĊĠĠĠ Ġconstructor () ĊĊĠĠĠ Ġconstructor ( interceptor Registry : ĠInter ceptor Registry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . connections . addAll ( interceptor Registry . connections ) ĊĠĠĠĠĠĠĠ Ġthis . request ers . addAll ( interceptor Registry . request ers ) ĊĠĠĠĠĠĠĠ Ġthis . handlers . addAll ( interceptor Registry . handlers ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy With ( action : Ġ( Interceptor Registry ) Ġ-> ĠUnit ): ĠInter ceptor Registry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcopy Ġ= ĠInter ceptor Registry ( this ) ĊĠĠĠĠĠĠĠ Ġaction ( copy ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconnection ( interceptor : ĠD up lex Connection Interceptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnections . add ( interceptor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconnection First ( interceptor : ĠD up lex Connection Interceptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnections . add ( 0 , Ġinterceptor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrequest er ( interceptor : ĠR Socket Interceptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest ers . add ( interceptor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandler ( interceptor : ĠR Socket Interceptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandlers . add ( interceptor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġintercept Request er ( r Socket : ĠR Socket ): ĠR Socket Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrs Ġ= Ġr Socket ĊĠĠĠĠĠĠĠ Ġfor Ġ( interceptor Ġin Ġrequest ers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrs Ġ= Ġinterceptor ( rs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrs ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġintercept Handler ( r Socket : ĠR Socket ): ĠR Socket Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrs Ġ= Ġr Socket ĊĠĠĠĠĠĠĠ Ġfor Ġ( interceptor Ġin Ġhandlers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrs Ġ= Ġinterceptor ( rs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrs ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġintercept Connection ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠD up lex Connection Interceptor . Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection : ĠD up lex Connection ): ĠD up lex Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġconn Ġ= Ġconnection ĊĠĠĠĠĠĠĠ Ġfor Ġ( interceptor Ġin Ġconnections ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconn Ġ= Ġinterceptor ( type , Ġconn ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġconn ĊĠĠĠ Ġ} Ċ } Ċ