package Ġcom . fasterxml . jackson . module . kotlin Ċ Ċ import Ġcom . fasterxml . jackson . core . Json Parser Ċ import Ġcom . fasterxml . jackson . databind .* Ċ import Ġcom . fasterxml . jackson . databind . de ser . Deserial izers Ċ import Ġcom . fasterxml . jackson . databind . de ser . std . Std Deserializer ĊĊ Ċ object ĠSequence Deserializer Ġ: ĠStd Deserializer < Sequence < *> >( Sequence :: class . java ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( p : ĠJson Parser , Ġctxt : ĠDeserial ization Context ): ĠSequence < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġctxt . readValue ( p , ĠList :: class . java ). as Sequence () ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠRegex Deserializer : ĠStd Deserializer < Regex >( Regex :: class . java ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( p : ĠJson Parser , Ġctxt : ĠDeserial ization Context ): ĠRegex Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġctxt . read Tree ( p ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( node . is Text ual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRegex ( node . as Text ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( node . isObject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= Ġnode . get (" pattern "). as Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġif Ġ( node . has (" options ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Node Ġ= Ġnode . get (" options ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! options Node . isArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Expected Ġan Ġarray Ġof Ġstrings Ġfor ĠRegex Options , Ġbut Ġtype Ġwas Ġ${ node . nodeType }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Node . elements (). as Sequence (). map Ġ{ ĠRegex Option . valueOf ( it . as Text ()) Ġ}. toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Set () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRegex ( pattern , Ġoptions ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Expected Ġa Ġstring Ġor Ġan Ġobject Ġto Ġdeserialize Ġa ĠRegex , Ġbut Ġtype Ġwas Ġ${ node . nodeType }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠKotlin Deserial izers : ĠDeserial izers . Base () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġfind Bean Deserializer ( type : ĠJava Type , Ġconfig : ĠDeserial ization Config ?, Ġbean Desc : ĠBean Description ?): ĠValue Deserializer < *> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( type . is Interface Ġ&& Ġtype . raw Class Ġ== ĠSequence :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSequence Deserializer ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( type . raw Class Ġ== ĠRegex :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRegex Deserializer ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Deserializer For ( config : ĠDeserial ization Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Type : ĠClass < *> ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue Type Ġ== ĠSequence :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġvalue Type Ġ== ĠRegex :: class . java ; ĊĠĠĠ Ġ} Ċ } Ċ