package Ġorg . d 7 z . light . db . j edis . structs . set Ċ Ċ import Ġorg . d 7 z . light . db . api . error . Destroy Exception Ċ import Ġorg . d 7 z . light . db . api . struct . Light Set Ċ import Ġorg . d 7 z . light . db . api . struct . Set Context Ċ import Ġorg . d 7 z . light . db . j edis . Light J edis Pool Ċ import Ġorg . d 7 z . objects . format . api . IData Cover t Ċ import Ġjava . util . Optional Ċ import Ġkotlin . reflect . K Class Ċ Ċ class ĠJ ed isSet Context ( ĊĠĠĠ Ġprivate Ġval Ġname : ĠString , ĊĠĠĠ Ġprivate Ġval Ġpool : ĠLight J edis Pool , ĊĠĠĠ Ġprivate Ġval Ġdata Cover t : ĠI Data Cover t , Ċ ) Ġ: ĠSet Context Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠAny > Ġget ( key : ĠString , Ġwrap : ĠK Class < V >): ĠOptional < out ĠLight Set < V >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( exists ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOptional . of ( J edis Light Set ("$ name :$ key ", Ġwrap , Ġpool , Ġdata Cover t )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠAny > Ġget OrCreate ( key : ĠString , Ġwrap : ĠK Class < V >, Ġcreate : Ġ() Ġ-> ĠV ): ĠLight Set < V > Ġ= Ġpool . session Ġ{ ĊĠĠĠĠĠĠĠ Ġit . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġredis . call (' EXISTS ', KEYS [ 1 ]) Ġ== Ġ 1 Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġredis . call (' S ADD ', KEYS [ 1 ], ARGV [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , Ġ"$ name :$ key ", Ġdata Cover t . format ( create (), Ġwrap ) ĊĠĠĠĠĠĠĠ Ġ) Ġ// Ġå¦Ĥæŀľ æķ°æį® ä¸įåŃĺåľ¨ åĪĻ æ³¨ åħ¥ ĊĠĠĠĠĠĠĠ ĠJ edis Light Set ("$ name :$ key ", Ġwrap , Ġpool , Ġdata Cover t ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexists ( key : ĠString ) Ġ= Ġpool . session Ġ{ ĊĠĠĠĠĠĠĠ Ġit . exists ("$ name :$ key ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Timeout ( key : ĠString ) Ġ= Ġpool . session Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġexpire Time Ġ= Ġit . ttl ("$ name :$ key ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 2 L Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠDestroy Exception (" key Ġ'$ key ' Ġnot Ġfound .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 L Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpire Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetTimeout ( key : ĠString , Ġsecond : ĠLong ) Ġ= Ġpool . session Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( second Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . persist ("$ name :$ key ") Ġ== Ġ 1 L ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . expire ("$ name :$ key ", Ġsecond ) Ġ== Ġ 1 L ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ