package Ġio . pl ast ique . core . client Ċ Ċ import Ġokhttp 3 . Request Ċ Ċ interface ĠAccess Token Appender Ġ{ ĊĠĠĠ Ġfun Ġget AccessToken ( request : ĠRequest ): ĠString ? ĊĊĠĠĠ Ġfun Ġappend ( accessToken : ĠString , Ġrequest : ĠRequest , Ġbuilder : ĠRequest . Builder ) Ċ } Ċ Ċ class ĠHeader AccessToken Appender Ġ: ĠAccess Token Appender Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget AccessToken ( request : ĠRequest ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest . header ( HttpHeaders . AUTHORIZATION )?. let Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype And Credentials Ġ= Ġvalue . split (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type And Credentials . size Ġ!= Ġ 2 Ġ|| Ġtype And Credentials [ 0 ] Ġ!= Ġ" Bearer ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unsupported ĠAuthorization Ġheader : Ġ'$ value '") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype And Credentials [ 1 ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġappend ( accessToken : ĠString , Ġrequest : ĠRequest , Ġbuilder : ĠRequest . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . header ( HttpHeaders . AUTHORIZATION , Ġ" Bearer Ġ$ accessToken ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUrl AccessToken Appender Ġ: ĠAccess Token Appender Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget AccessToken ( request : ĠRequest ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest . url . query Parameter (" access _ token ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġappend ( accessToken : ĠString , Ġrequest : ĠRequest , Ġbuilder : ĠRequest . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġrequest . url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set QueryParameter (" access _ token ", ĠaccessToken ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġbuilder . url ( url ) ĊĠĠĠ Ġ} Ċ } Ċ