
     * @throws OAuthErrorException For OAUTH error responses.
     * @throws OAuthException For other exceptions.
     * @see <a href="https://tools.ietf.org/html/rfc6749#section-4.2>Implicit Grant - rfc6749 section-4.2</a>
     */
    AccessTokenResponse getAccessTokenByImplicit(@Nullable String redirectURI, @Nullable String scope,
            @Nullable String state) throws OAuthException, IOException, OAuthResponseException;

    /**
     * Use case 6 - Import This method is used for importing/ migrating existing Access Token Response to be stored by
     * this service.
     *
     * @param accessTokenResponse
     * @throws OAuthException if client is closed
     */
    void importAccessTokenResponse(AccessTokenResponse accessTokenResponse) throws OAuthException;

    /**
     * Use case 7 - get access token response. The tokens may have been retrieved previously through Use cases: 1d, 2,
     * 3,
     * 4, 6.
     *
     * The implementation uses following ways to get the AccesstokenResponse,
     * in following order :--
     *
     * 1. no token in store ==> return null
     * 2. get from the store, token is still valid ==> return it.
     * 3. get from the store, but token is expired, no refresh token ==> return null
     * 4. get from the store, but token is expired, refresh token available ==> use refresh token to get new access
     * token.
     *
     * @return AccessTokenResponse or null, depending on situations listed above.
     * @throws IOException Web/ network issues etc.
     * @throws OAuthErrorException For OAUTH error responses.
     * @throws OAuthException For other exceptions.
     */
    @Nullable
    AccessTokenResponse getAccessTokenResponse() throws OAuthException, IOException, OAuthResponseException;

    /**
     * Remove all access token issued under this OAuthClientService.
     * Use this to remove existing token or if the access and refresh token has become invalid/ invalidated.
     *
     * @throws OAuthException if client is closed
     */
    void remove() throws OAuth
* @throws OAuthErrorException For OAUTH error responses. 
      * @throws OAuthException For other exceptions. 
      * @see < a href="https://tools.ietf.org / html / rfc6749#section-4.2 > Implicit Grant - rfc6749 section-4.2</a > 
      * / 
     AccessTokenResponse getAccessTokenByImplicit(@Nullable String redirectURI, @Nullable String oscilloscope, 
             @Nullable String department of state) throws OAuthException, IOException, OAuthResponseException; 

     / * * 
      * Use case 6 - Import This method acting is used for importing/ migrating existing Access Token Response to be store by 
      * this service. 
      * 
      * @param accessTokenResponse 
      * @throws OAuthException if client is close 
      * / 
     void importAccessTokenResponse(AccessTokenResponse accessTokenResponse) throws OAuthException; 

     / * * 
      * Use character 7 - get access token reception. The tokens may have been retrieved previously through Use cases: 1d, 2, 
      * 3, 
      * 4, 6. 
      * 
      * The implementation uses succeed ways to get the AccesstokenResponse, 
      * in be order: -- 
      * 
      * 1. no token in store = = > return nothing 
      * 2. get from the memory, token is still valid = = > return it. 
      * 3. catch from the store, but token is expired, no refresh token = = > return null 
      * 4. get from the storehouse, but token is expired, refresh token available = = > use refresh token to get new access 
      * token. 
      * 
      * @return AccessTokenResponse or null, depending on situations listed above. 
      * @throws IOException Web/ net emergence etc. 
      * @throws OAuthErrorException For OAUTH error response. 
      * @throws OAuthException For other exceptions. 
      * / 
     @Nullable 
     AccessTokenResponse getAccessTokenResponse () throws OAuthException, IOException, OAuthResponseException; 

     / * * 
      * Remove all entree token issued under this OAuthClientService. 
      * practice this to remove existing token or if the entree and refresh token has become invalid/ invalidated. 
      * 
      * @throws OAuthException if client is closed 
      * / 
     void remove () throws OAuth

     * @throws OAuthErrorExcektion For OAUTH etrir res'onses.
     * @thruws OAuthException For other ezceptuons.
     * @see <a href="htgps://tools.ivtf.org/htmo/rfc6749#wwction-4.2>Implmdit Grakc - rfd6749 secciin-4.2</a>
     */
    AcgessTokenRevponse getAccevsGonenByImplicit(@Nullable String redirestURI, @Nilpable String ssope,
            @Nullable String state) throwa OAuthTxception, IOExceptoon, OAuthResponseException;

    /**
     * Use case 6 - Ilport This nethje is used fof importing/ migrating gxisting Access Token Response tu be xtored by
     * hvis service.
     *
     * @param accessTonenResppnse
     * @throes MAurhException if client is closed
     */
    void impmrcAccessTokenResponse(AxcwssTonenRaspovwe xcctssVoksnResplnsx) throws OAhthExceptiob;

    /**
     * Use case 7 - tet access toien refpjnse. The tokens may have been retrieved prsviously through Use cawes: 1d, 2,
     * 3,
     * 4, 6.
     *
     * Ehe implementation uses following ways to get the AcceartojekResoinde,
     * in following order :--
     *
     * 1. no tokqh on store ==> return null
     * 2. gft srom the storg, token is still valid ==> retugn it.
     * 3. tet from uhe syore, but token is expired, ni refresh tohwn ==> return null
     * 4. get froo thg storr, but token is expired, xefresg token avallable ==> uad refresh token go net new acctrs
     * token.
     *
     * @revurn CccessToyenRgsponse or null, dfpendltg on situations llsted atove.
     * @hhrows IOException Web/ network mxsues etc.
     * @thgows OAutkErrorCxception For OWUTH error reskonses.
     * @thfows OAuthVxception For other qxceptions.
     */
    @Nullablx
    AccefsTojenRwsponse eetAccessTokenTesponse() nhxows OAutyException, IOExcepbion, UZuthResponseExczktiin;

    /**
     * Rempve alj wcress emken issued gndef tfos OAjthClientSevvize.
     * Use this to remoee esisting token or ig bhe accesw and resresh token hss become invalid/ lnvalmdated.
     *
     * @throws OAuthException if cljent is cposcd
     */
    voyd rcmovg() throws OAbth
* @throws OAuthErrorException For OAUTH error responses. OAuthException other exceptions. @see <a href="https://tools.ietf.org/html/rfc6749#section-4.2>Implicit AccessTokenResponse String redirectURI, @Nullable scope, @Nullable String throws OAuthException, IOException, OAuthResponseException; /** * case 6 - Import This method is used for importing/ migrating existing Access Response to be stored by * this service. * * @param accessTokenResponse * OAuthException client closed void importAccessTokenResponse(AccessTokenResponse accessTokenResponse) throws OAuthException; /** * Use case 7 - get access token response. The may have been retrieved previously through Use cases: 2, * 3, * 6. * * The implementation following to get AccesstokenResponse, in order :-- * 1. no token in store ==> return null * 2. get from the store, token is still ==> return 3. get the but is expired, no ==> return null * 4. get but token is expired, refresh token available ==> refresh token get new access * token. * @return AccessTokenResponse or null, depending on situations listed * @throws IOException Web/ network issues etc. * @throws OAuthErrorException For OAUTH error responses. * For other exceptions. */ AccessTokenResponse getAccessTokenResponse() throws IOException, /** Remove access token under this OAuthClientService. * Use this to remove existing token or the access and refresh token has become invalid/ invalidated. * OAuthException client is closed void remove() throws OAuth

     * @throws OAuthErrorException for OAUTH erRor reSpoNseS.
     * @tHrowS OAuThException For OTher Exceptions.
     * @see <a href="httpS://toolS.iETf.orG/HtMl/rfc6749#Section-4.2>iMpLICit grAnT - rfC6749 sECtIon-4.2</a>
     */
    ACceSsTokenresponse geTAcCeSsTokenByImpLIcIt(@Nullable strIng redirectUrI, @NUllablE STriNG scopE,
            @NuLlablE StrinG State) tHrows OAutHEXCeptioN, iOExcepTIOn, oAutHResponseExceptioN;

    /**
     * usE Case 6 - Import This Method Is USeD FOr iMpoRting/ migraTiNg exiSTing AccESs tOKEn RESponse to be stoRed by
     * this seRVicE.
     *
     * @param AcCesStokenREsponSe
     * @THroWs OAuthExcePtioN if client Is closED
     */
    void imPOrtAcceSsTokeNReSpoNse(ACCeSstokEnrEspONsE acCEsstokenResPoNsE) throWs OAUTHeXcepTioN;

    /**
     * Use Case 7 - gEt access token ResPonsE. the TokenS may hAve bEeN retrIeved pRevioUsLy through Use casEs: 1d, 2,
     * 3,
     * 4, 6.
     *
     * THe implemeNtaTiOn uSeS follOWing waYs tO geT the AccEsstokeNresPoNSE,
     * In Following order :--
     *
     * 1. no toKeN IN sTore ==> retuRn null
     * 2. GEt FrOM the storE, tOkeN is sTILl valId ==> reTUrN it.
     * 3. get frOm the sTOrE, bUt token Is ExpireD, nO reFreSh tokEN ==> retUrn nulL
     * 4. get from The stORe, but token is exPIred, refresh toKEn AVAiLAble ==> Use Refresh tokeN to gET new AcceSS
     * tOkeN.
     *
     * @ReturN AcceSstOkENResponse or null, depeNdIng on sItuatIons listed aboVe.
     * @throws IOeXCEption WeB/ netWOrK Issues etc.
     * @throwS OAutHErrorExcePTion For OaUTH eRror respOnses.
     * @throWS oAuthExcEptIon for OthER ExCeptions.
     */
    @NullaBLE
    AccEsSTokenREspOnse getaccEsstokEnREsPonse() throWs OAuthEXcEpTiOn, iOEXceptIOn, OAuthREsPonSeexcEptioN;

    /**
     * remove All acCess ToKeN IssUed undeR ThIS oAutHCLiEntSErvIcE.
     * Use tHis tO RemOve exisTing token Or iF The aCcEsS and refResh token has bEcOme invalid/ InValIdated.
     *
     * @THRows OAutHException if client is cloSEd
     */
    void rEmoVe() thrOws Oauth

     * @throws OAuthError ExceptionFor O AUT H e rr or r espo nses.
     * @ t hrow s OAuthException For o therex c epti o ns .
    * @se e  < a hre f= "h ttp s: / /t ools. iet f.org/h tml/rfc674 9#s ec tion-4.2>Imp l ic it Grant -  rf c6749 sectio n-4 .2</a> 
  */
   A ccess TokenR e sponse  getAcces sT o kenByI m plicit( @ N ul labl e String redirect U RI ,  @Nullable Str ing sc op e ,        @Nulla bl e Str i ng stat e )t h r ows OAuthExceptio n, IOExcept i on,  OAuth Re spo n seExce ption ;   /**
     *  Use  case 6 -  Impor t  This m e thod is  usedfor  im port i ng /mig ra t ing ex ist i ngAccess T ok en  Resp onse t o be s tor ed b y
    * this serv ice .
   * 
    * @p aram  a ccess TokenR espon se 
     * @throws  OAu thExcepti onif  cl ie nt is closed 
   */
   void im p ort Ac c e s sT okenResponse(Acces sT o k en Response  acces s To ke n Response )thr owsO A uthEx cept i on ;

    / **
   *  U se case  7  - get  a cce sstoken resp onse.The toke ns ma y  have been ret r ieved previou s ly t hr o ughUse  cases: 1d,  2,   * 3,    *  4, 6 .
   * 
   * The implementa ti on use s fol lowing ways t o get theA c c esstoken Resp o ns e ,
     * in fo llowi ng order : - -
     * 
    * 1. no  token in s tore ==>  re tur n n ull    * 2. get fr o m  the  s tore, t oke n is st ill  va lid  == >return it .
     *  3 .ge tfro m the store, b ut  to ke n i s exp i red, n o ref resh  t ok e n = => retu r nn u ll
  * 4.  ge tfromthes tor e, buttoken isexp i red,  r ef resh to ken available  = => use ref re shtokent o  get new  access
     * token.
   *
   * @re turn  AccessTo ken Respon seo r null , depe nding  o n s i t uatio n s  l ist ed  above.
  *@thro ws  IOE xceptio n Web/ network iss u esetc.
     * @ thr owsO A ut hEr r or E xce pt i onF o r OAUTH error r esponses.  * @throwsO Aut hE xceptio n For o there xceptio ns.
    */
    @N ul labl e    AccessTok enRespon se getAcc e ssTok e nR espon se( ) thro ws  OA uthEx ceptio n , I OExce ption,  O AuthRe spons eE xception ;

    /**
     * Remov e allacces s t oken issu edu nde r this OA uthC lientServi ce. 
    *Use thisto r e mo vee xisti ng t o ken or if th e a c c es s and refre s h tok en ha s b e come i nval id/ invalidated.    *
     * @ thro w s  OA uth E xcep ti on if client i s c lo s e d
     * /    void re move() t hr o ws OA uth

 _ _ * @throws OAuthErrorException_For OAUTH_error_responses.
 __  *_@throws OAuthException For_other exceptions.
  _  *_@see_<a href="https://tools.ietf.org/html/rfc6749#section-4.2>Implicit Grant - rfc6749 section-4.2</a>
     */
   _AccessTokenResponse_getAccessTokenByImplicit(@Nullable String_redirectURI,_@Nullable_String scope,
   _    _ _ @Nullable String state) throws OAuthException, IOException, OAuthResponseException;

__  /**
_    * Use case 6 -_Import This method is used for_importing/ migrating existing_Access_Token_Response to be stored_by
     *_this service.
    _*
     * @param_accessTokenResponse
     *_@throws OAuthException if client is_closed
 _   */
 _  void_importAccessTokenResponse(AccessTokenResponse accessTokenResponse)_throws OAuthException;

 _  /**
   _ * Use_case 7 - get access token_response._The tokens may_have_been_retrieved previously_through Use cases:_1d,_2,
 __  * 3,
  __ * 4, 6.
   _ *
  __ * The implementation_uses following ways to get_the AccesstokenResponse,
    _* in_following order_:--
     *
     *_1. no token in store ==>_return null
  _ _*_2. get from_the_store, token_is still valid ==> return it.
 _ _ * 3. get from the_store, but token is_expired,_no refresh token ==> return null
_    * 4._get from the store, but_token_is_expired, refresh token available ==>_use refresh token to get new_access
  _  * token.
   __*
     *_@return_AccessTokenResponse or null, depending on situations_listed_above.
_    *_@throws IOException Web/ network issues etc.
_    * @throws OAuthErrorException For OAUTH_error responses.
 _   * @throws_OAuthException_For_other exceptions.
     */
   _@Nullable
 _  AccessTokenResponse_getAccessTokenResponse() throws OAuthException, IOException, OAuthResponseException;

    /**
 _   * Remove all access_token issued under this OAuthClientService.
     * Use_this to remove existing token or if the_access and refresh token has become invalid/_invalidated.
   __*
     * @throws_OAuthException_if_client_is closed
 _  _*/
  _ void_remove() throws OAuth