package Ġcn . net discovery . http . core . storage . cookie Ċ Ċ import Ġcn . net discovery . http . core . HttpClient Ċ import Ġjava . io .* Ċ import Ġjava . net . Http Cookie Ċ import Ġjava . net . URI Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ FileName : Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġcn . net discovery . http . core . storage . cookie . Cookie File Store Ċ Ġ* Ġ@ author : ĠT ony ĠSh en Ċ Ġ* Ġ@ date : Ġ 2 0 2 0 - 1 0 - 0 3 Ġ 1 4 : 1 1 Ċ Ġ* Ġ@ version : ĠV 1 . 0 Ġ< æııè¿° å½ĵåīį çīĪæľ¬ åĬŁèĥ½ > Ċ Ġ*/ Ċ object ĠCookie File Store Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġsave Cookie ( cookies : ĠList < Http Cookie > ?, Ġsave File : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Cookie ( cookies , ĠFile ( save File )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġsave Cookie ( client : ĠHttpClient , Ġsave File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcookies Ġ= Ġclient . getClient Cookie Handler ()?. get Cookie Store ()?. cookies ĊĠĠĠĠĠĠĠ Ġsave Cookie ( cookies , Ġsave File ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġsave Cookie ( client : ĠHttpClient , Ġsave File : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcookies Ġ= Ġclient . getClient Cookie Handler ()?. get Cookie Store ()?. cookies ĊĠĠĠĠĠĠĠ Ġsave Cookie ( cookies , Ġsave File ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġsave Cookie ( cookies : ĠList < Http Cookie > ?, Ġsave File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ ĠObject OutputStream ( File OutputStream ( save File )). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġcookies ?. map Ġ{ ĠCookie To . of ( it ) Ġ} Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write Object ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġrestore Cookie ( save File : ĠFile ): ĠList < Http Cookie >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( save File . exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject InputStream ( FileInputStream ( save File )). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġit . read Object () Ġas ĠList < Cookie To > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġto . map Ġ{ Ġit . to Http Cookie () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġrestore Cookie ( save File : ĠString ): ĠList < Http Cookie >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( save File ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( file . exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrestore Cookie ( file ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġrestore Cookie ( client : ĠHttpClient , Ġsave File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( save File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Ġ= Ġclient . getClient Cookie Handler ()?. get Cookie Store () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrestore Cookie ( save File )?. forEach Ġ{ Ġcookie Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore ?. add ( URI ( client . get BaseUrl ()), Ġcookie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestore Cookie ( client : ĠHttpClient , Ġsave File : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( save File ) ĊĠĠĠĠĠĠĠ Ġif Ġ( file . exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrestore Cookie ( client , Ġfile ) ĊĠĠĠ Ġ} Ċ }